Đã bao giờ bạn nghĩ là bạn đang duplicate code ở khắp nơi trong postman, và hiện tại bạn chưa tìm được cách để xử lý vấn đề ấy. Bài này sẽ đưa ra 1 cách giúp bạn xử lý vấn đề đó.
Q: Tôi có 1 số common tests, được áp dụng cho các trường hợp giống nhau, có cách nào để tôi không phải copy-patse code vào từng mục [Tests] của từng request không? Ví dụ: tôi muốn check tất cả các request mà sử dụng token sai đều trả về mã code 401 và error_message là “Not logged in or Invalid user session”
A: Okie, mình có 1 cách như sau, bạn save cái code đó vào thành 1 variable trong environment rồi bạn chỉ cần gọi cái code đó ở chỗ nào bạn cần.
Cách mình làm như sau:
Nội dung
I. Sử dụng Pre-request của để save code common tests
Ở đây mình sẽ sử dụng Pre-request của folder to nhất, vì để đảm bảo rằng code được save to environment trước khi run bất kỳ request nào.
pm.environment.set("testNotLoggedin", function testNotLoggedin() {
let jsonData = pm.response.json();
pm.test("Error not loggedin", function () {
pm.expect(jsonData.error).to.eql("Not logged in or Invalid user session");
});
pm.test("Status code is 401", function () {
pm.response.to.have.status(401);
});
} + '; testNotLoggedin();');
II. Sử dụng code đó ở nơi nào mình muốn
eval(pm.environment.get("testNotLoggedin"));
- Cái function
eval
dùng để run cái script.
III. Reuse script mà có sử dụng parameters
Tab Pre-request
pm.environment.set("abc", function print(text1, text2){
console.log(text1)
console.log(text2)
} + "");
Tab Test
let script = pm.environment.get("abc");
eval((script + "print('name', 'age')"))
IV. Tổng kết
Bài này, mình chỉ lấy ví dụ 1 trường hợp reuse code cho phần test, bạn có thể sử dụng cách này để áp dụng linh hoạt trong nhiều tình huống khác nhau. Hi vọng có ích cho các bạn.
Nguồn:
https://giangtester.com/api-testing-voi-postman-phan-15-reuse-test-script/