Chào các bạn đã đến với chủ để tiếp theo của mình. Hôm nay, chúng ta sẽ tìm hiểu về cách viết test script để verify response trả về trong Postman. Thông thường chúng ta chỉ sử dụng postman để test manual, nghĩa là chúng ta sẽ send từng request, sau đó sẽ kiểm tra từng kết quả một. Với project không có nhiều api thì chúng ta có thể làm cách này. Nhưng nếu project có nhiều api, việc thực hiện regression mỗi ngày thì sẽ tốn khá nhiều thời gian.
Vì vậy trong bài này, mình sẽ hướng dẫn các bạn cách viết test script để đẩy nhanh được tốc độ test Api và kiểm tra kết quả tự động theo mong muốn của mình. Việc viết test sẽ giúp bạn phát hiện ra được những lỗi sai cũng như kết quả trả về khác với mong muốn ban đầu. Đây là một bước đầu tiên để triển khai kiểm thử tự động API trên Postman sau này.
Phần này mình sẽ giới thiệu 2 tính năng cực hay giúp các bạn đẩy nhanh được tốc độ test API:
- Check tự động kết quả trả về của từng field với 1, 2 dòng code, rất dễ, không cần biết code cũng làm được.
- Lưu giá trị của Response thành biến trong Environment để tiếp tục truyền vào param của API tiếp theo.
Postman cung cấp feature Tests để chúng ta có thể thoải mái viết script ở đây. Nhưng nó chỉ hỗ trợ ngôn ngữ Javascript thuần và cũng không có chế độ debug đâu. Cũng hơi khó khăn đấy.
Nhưng bù lại, Postman đã cung cấp sẵn những cú pháp script cho chúng ta mà không cần phải suy nghĩ nhiều. Chúng ta chỉ cần select vào những keyword phía bên phải, nó sẽ tự động generate code ra cho mình nhé. Ok, mình sẽ đi vào ví dụ cụ thể nhé.
Ví dụ 1: mình có Api user login, mình muốn verify rằng là sau khi login xong, user_id của mình có trả về đúng hay không?
Bước 1: Send api 1 lần để biết được cấu trúc Response của Api
Ta có thể thấy user_id nằm ở vị trí: root > data > user > profile > id và trong trường hợp này id của user là 401.
Bước 2: Bắt đầu code
var jsonData = pm.response.json();
pm.test("Check user_id", function () {
pm.expect(jsonData.data.user.profile.id).to.eql("401");
});
Giải thích:
- Ở line 1: mình sẽ get cái respose trả về và lưu vào biến “jsonData” -> cái này chính là root mình đã nói ở trên.
- Ở line 3: Mình sẽ verify xem user_id có bằng 401 không?
- Lưu ý: Bạn hãy cẩn thận kiểm tra kiểu data trả về là Integer, String hay Boolean để viết test script cho đúng nhé.
Bước 3: Sau khi viết xong Test script thì các bạn run Request lại 1 lần nữa rồi kiểm tra xem phần Test của mình có đúng không.
Ví dụ 2: mình có 1 API user login, sau khi login mình muốn lưu lại giá trị của token để làm data cho những API tiếp theo.
Quay lại với vụ trên, các bạn sẽ thấy vị trí của token là: root > data > token
Mình sẽ viết thêm 1 dòng code vào phía dưới 2 dòng code mình đã viết ở trên:
var jsonData = pm.response.json();
pm.test("Check user_id", function () {
pm.expect(jsonData.data.user.profile.id).to.eql("401");
});
pm.environment.set("token", jsonData.data.token);
Sau đó, mình sẽ run Api lại rồi kiểm tra trong Environment
Một số đoạn code cơ bản để verify response
1. Kiểm tra response code = 200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2. Kiểm tra status code name là “OK”
pm.test("Status code name has string OK", function () {
pm.response.to.have.status("OK");
});
3. Kiểm tra thời gian response trả về thấp hơn 500ms
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
4. Kiểm tra response code trả về là 200, 201 hoặc 202
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([200,201,202]);
});
5. Response có chứa Content-Type
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
6. Response body có chứa một nội dung mong muốn
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("Employee added successfully!");
});
Kết
Như vậy chúng ta đã tìm hiểu về cách viết test script để verify response trả về trong Postman. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.
Nguồn tham khảo: