Nội dung bài viết
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. =))))