Cách viết test mình đã có nhắc đến ở bài 9, nay mình chỉ nhắc lại và bổ sung 1 số thứ nho nhỏ.
Nội dung bài viết
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}`); })