API Testing với Postman (Phần 26) – Quản lý loop và branching

I. Quản lý loop và branching

Như các bạn đã biết, chức năng runner trong postman có khả năng run nhiều request trong 1 lần chạy, nhưng những request này chỉ có thể run theo thứ tự từ trên xuống dưới mà không thể loop (lặp lại) 1 request nhiều lần hoặc branching (nhảy cóc) xuống 1 vị trí request khác không phải là kế tiếp.

LƯU Ý: chỉ dùng được chức năng này khi dùng Postman Runner

II. Solution

Để giải quyết vấn đề ấy, postman cung cấp 1 function

postman.setNextRequest("request_name"); //(postamn version cũ)
postman.execution.setNextRequest("request_name"); //(postamn version mới)
//request_name = tên request tiếp theo sẽ run

Nếu bạn muốn Runner stop trước khi run những request khác

postman.setNextRequest(null); //(postamn version cũ)

pm.execution.setNextRequest(null) //(postamn version mới)

III. Ví dụ 1

Bạn muốn lặp lại số lần theo độ dài của 1 array.

  • Request 1 tạo 1 array có độ dài là X
  • Request 2 sẽ được gọi X lần.

Request 1

//Save array vào biến trong environment
let ids = [1, 2, 3]
pm.environment.set("ids", JSON.stringify(ids));

Request 2

Pre-request Tab

//Lấy từng phần tử từ array, save vào biến 
//và update lại array vào environment

let ids = JSON.parse(pm.environment.get("ids"));
pm.environment.set("id", ids.shift())
pm.environment.set("ids", JSON.stringify(ids));

Tests Tab

//Kiểm tra xem array đã hết element chưa, nếu chưa thì lặp lại request
let ids = JSON.parse(pm.environment.get("ids"));
if (ids.length > 0) {
    postman.setNextRequest("Req2");
}

Kết quả là:

IV. Ví dụ 2

Bạn muốn run 1 request nhiều lần cho đến khi response trả lại chính xác cái gì bạn muốn thì mới dừng, mỗi lần run bạn sẽ thay đổi tham số, ví dụ tăng từ 0 –> 1 rồi lên 2 ….

Bạn có thể làm như sau:

Đặt biến cho cái tham số bạn muốn thay đổi qua mỗi lần run

Tab Pre-request

  • Mình lấy value của biến từ collection, nếu biến này ko tồn tại thì mình set giá trị ban đầu của nó = 0

Tab Post-Response

  • Lấy giá trị của biến
  • Kiểm tra response, nếu response thỏa mãn điều kiện thì stop pm.execution.setNextRequest(null) và xóa bỏ biến đó trong collection
  • Nếu response chưa đúng, thì tăng biến đó lên 1 và gọi lại chính request đó.

Kết quả: request run từ 0 đến 5 thì dừng

File mẫu để tiện làm theo: sample

V. Tổng kết

Hiện tại, mình chỉ viết 1 example cho phần loop và branching này nhưng bạn hoàn toàn có thể nghĩ ra nhiều TH mà dùng đến nó. Tất nhiên, phần này được coi là phần advance của postman vì nó “đụng” nhiều đến lập trình. Và nếu bạn sợ postman-script, sao không đăng ký khóa học Postman-script và bạn sẽ hết sợ hoặc ….sợ hơn. =))))

5 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments