Cách viết test mình đã có nhắc đến ở bài 14, nay mình chỉ nhắc lại và bổ sung 1 số thứ nho nhỏ.
I. Test trong postman
- Nếu bạn muốn lấy thông tin chung của response, bạn lấy từ object
pm.response
. Ví dụ:
pm.test("response is ok", () => {
// Check status code
pm.response.to.have.status(200);
// Lấy thông tin headers
pm.expect(pm.response.headers.get("Date")).to.eql("Fri, 26 Mar 2021 13:57:56 GMT");
// Xem thông tin object pm.response
console.log(pm.response);
});
- Nếu bạn muốn lấy thông tin của body trong
pm.response
, bạn cần phải biến body thành json object, thông qua functionjson()
pm.test("test body", () => {
// Biến body của response thành json object
const resData = pm.response.json();
// Check value của key "dataTest"
pm.expect(resData.data.dataTest).to.eql("This is expected to be sent back as part of response body.");
// Check type của value
pm.expect(resData.data.dataTest).to.be.a("string");
});
- Nếu muốn test các object của array, bạn cần 1 vòng
for
để có thể duyệt qua từng item của array. Bạn có thể dùng function của lodash_.each(array_name, function)
để thực hiện việc for-each, thay vì viết vòngfor
truyền thống.
pm.test("test array", () => {
const resData = pm.response.json();
const arrayData = resData.data;
_.each(arrayData, (item) => {
pm.expect(item.gender).to.be.oneOf(['male', 'female']);
})
});
II. Phần mở rộng
- Nếu bạn muốn skip test, bạn có thể dùng
pm.test.skip("skip test", () => {
})
- Nếu bạn muốn skip test theo điều kiện, ví dụ: json không có field
testData
// Khi lấy thông tin của 1 field không tồn tại, sẽ nhận được underfined
(pm.response.json().testData === undefined ? pm.test.skip : pm.test)("test skip if testData is undefined", () => {
});
- hoặc dùng
if-else
thông thường
if (pm.response.json().testData === undefined){
pm.test.skip("test skip if testData is undefined", () => {
return
})
} else {
pm.test("test testData", () => {
})
}
- Bạn có thể viết test vào phần Pre-request mà vẫn hoạt động như bình thường
- Khi debug bạn có thể dùng String interpolation thay vì dùng String + String
pm.test("check String interpolation", () => {
let var1 = 30;
let var2 = "Giang Nguyen";
console.log(`My name is ${var2} and age is ${var1}`);
})
Nguồn:
https://giangtester.com/api-testing-voi-postman-phan-20-cach-viet-assertion/