Postman là một ứng dụng của Google Chrome, giúp bạn tạo, lưu, gửi request HTTP và kiểm tra độ chính xác của dữ liệu trả về. Nó hỗ trợ quy trình tạo API request và testing API response một cách tự động, hỗ trợ các tester tạo ra những luồng test hiệu quả.
Hầu hết các developers và testers đều đã quen thuộc với Postman. Tuy nhiên, nhiều người sử dụng Postman chỉ để kiểm tra các dữ liệu trả về từ các project mà họ đang làm việc. Có lẽ họ chưa nhận ra những tính năng mạnh mẽ mà Postman cung cấp như: Collections, Tests and Pre-request scripts. Bài viết này muốn đưa ra một cái nhìn tổng quát về các xử lý response mà Postman cung cấp.
Nội dung bài viết:
- Convert thành kiểu JSON
- Làm việc với dữ liệu trả về
- Làm việc với biến môi trường
1 Convert thành kiểu JSON
Postman hỗ trợ hai phương thức để chuyển đổi dữ liệu trả về thành dạng json. var jsonObject = xml2Json(responseBody); // convert xml thành json
var jsonData = JSON.parse(responseBody); // convert to json
2 Làm việc với dữ liệu trả về
Postman cung cấp nhiều cho bạn nhiều cách thức kiểm tra dữ liệu trả về có như mong muốn hay không.tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
Đầu tiên, bạn có thể kiểm tra response code trả về có phải mã code success hay không. Bạn cũng có thể kiểm tra response trả về với mã code error là 400.
tests["Status code name has string"] = responseCode.name.has("OK");
Hay kiểm tra bằng response code name, xem có success hay không.
tests["Response time is less than 200ms"] = responseTime < 200;
Bên cạnh đó, bạn có thể kiểm tra ràng buộc thời gian từ lúc gửi request đến lúc nhận được response.
RESPONSE |
{ "status": "OK", "data": { "site_id": 999, "expired": 3600, "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1" } } |
TEST |
var jsonData = JSON.parse(responseBody); |
RESULT | PASS |
GIẢI THÍCH | Trong dữ liệu response, có một key là status và value của nó là "OK", bạn dùng câu lệnh đó để check xem key status có dữ liệu đúng là "OK" không, nếu đúng thì trả về true, sai thì false |
tests["Body matches string"] = responseBody.has("tokens");
Check đoạn text "tokens" có xuất hiện trong dữ liệu response hay không.
tests["Body is correct"] = responseBody === "response_body_string";
Kiểm tra dữ liệu trả về có bằng với đoạn text mong muốn hay không.
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type") === 'application/json; charset=UTF-8';
Kiểm tra trong dữ liệu header được trả về, dữ liệu "Content-Type" có bằng với "application/json; charset=UTF-8" hay không.
tests["Valid Data1"] = tv4.validate(jsonData, schema);
RESPONSE |
{ "status": "OK", "data": { "site_id": 999, "expired": 3600, "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1" } } |
TEST |
var schema = { "status": "string", "data": { "site_id": "number", "expired": "number", "token": "string" } }; |
RESULT | PASS |
GIẢI THÍCH | Trong ví dụ này, tạo ra một object có cấu trúc giống cấu trúc của dữ liệu response, rồi thiết lập kiểu giá trị trả về mong muốn cho mỗi key. |
3 Làm việc với biến môi trường
Environment Variables
Environments cung cấp cho các tester khả năng tùy chỉnh giá trị của biến tùy vào yêu cầu sử dụng. Bằng cách này, bạn có thể dễ dàng thay đổi request qua các máy chủ khác nhau mà không cần thay đổi link request.- Để thêm biến môi trường, click vào icon Settings
- Chọn Manage Environment
- Chọn nút Add
- Thêm các cặp biến
Ví dụ, tạo một môi trường "My Env 01", có biến "main_url" với giá trị là "https://frontend.local". Tạo thêm một môi trường khác là "My Env 02", cũng có biến "main_url" nhưng với giá trị là "https://frontend.dev". Để sử dụng biến, bạn dùng cặp dấu ngoặc nhọn {{main_url}}.
Lưu ý là trong 1 thời điểm test, thỉ chỉ có 1 môi trường có thể được kích hoạt.
Vài phương thức làm việc với biến Environment:
postman.clearEnvironmentVariable("variable_key");
Xóa giá trị của biến
postman.setEnvironmentVariable("variable_key", "variable_value");
Phương thức trên dùng để thay đổi value của biến.
REQUEST |
{{main_url}}/api/token |
RESPONSE | { "status": "OK", "data": { "site_id": 999, "expired": 3600, "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1" } } |
TEST |
var jsonData = JSON.parse(responseBody); postman.setEnvironmentVariable("token", jsonData.data.token); |
GIẢI THÍCH | Trong dữ liệu response, có một key là status và value của nó là "OK", bạn dùng câu lệnh đó để check xem key status có dữ liệu đúng là "OK" không, nếu đúng thì trả về true, sai thì false. |
REQUEST |
{{main_url}}/api/active?token={{token}} |
RESPONSE |
{ "status": "OK", "data": { "member_id": 888888 } } |
TEST | |
GIẢI THÍCH |
Global Variables
Global Variables cung cấp một tập các biến sử dụng trong một phạm vi nhất định. Bạn sử dụng biến global giống với cách sử dụng biến môi trường.Postman cũng cung cấp cho bạn các phương thức để thao tác với biến global:
postman.clearGlobalVariable("variable_key");
Xóa giá trị của biến global.
postman.setGlobalVariable("variable_key", "variable_value");
Gán giá trị cho biến global