Tổng quan về cơ chế kiểm tra
Trong phiên bản 4.x, HttpRunner đã tích hợp sẵn một hệ thống đa dạng các phương thức để xác minh kết quả trả về từ máy chủ. Việc sử dụng các công cụ kiểm tra (validation) giúp đảm bảo dữ liệu nhận được khớp với các mong đợi đã định trước trong kịch bản kiểm thử.
Danh sách các phương thức断言
Dưới đây là bảng tổng hợp các từ khóa hỗ trợ sẵn cùng với các dạng viết tắt tương ứng mà người dùng có thể sử dụng trong file cấu hình:
| Từ khóa chính | Các dạng viết tắt | Chức năng |
|---|---|---|
| equal | "eq", "equals", "equal" | Kiểm tra sự bằng nhau |
| less_than | "lt", "less_than" | Kiểm tra giá trị nhỏ hơn |
| less_or_equals | "le", "less_or_equals" | Kiểm tra giá trị nhỏ hơn hoặc bằng |
| greater_than | "gt", "greater_than" | Kiểm tra giá trị lớn hơn |
| greater_or_equals | "ge", "greater_or_equals" | Kiểm tra giá trị lớn hơn hoặc bằng |
| not_equal | "ne", "not_equal" | Kiểm tra sự khác biệt |
| string_equals | "str_eq", "string_equals" | So sánh sau khi chuyển đổi sang chuỗi |
| length_equal | "len_eq", "length_equal" | So sánh độ dài bằng nhau |
| length_greater_than | "len_gt","length_greater_than" | Độ dài lớn hơn |
| length_greater_or_equals | "len_ge","length_greater_or_equals" | Độ dài lớn hơn hoặc bằng |
| length_less_than | "len_lt", "length_less_than" | Độ dài nhỏ hơn |
| length_less_or_equals | "len_le", "length_less_or_equals" | Độ dài nhỏ hơn hoặc bằng |
| contains | - | Giá trị kiểm tra chứa giá trị mong đợi |
| contained_by | - | Giá trị mong đợi chứa giá trị kiểm tra |
| type_match | - | Kiểm tra khớp kiểu dữ liệu |
| regex_match | - | Khớp biểu thức chính quy |
| startswith | - | Kiểm tra chuỗi bắt đầu bằng |
| endswith | - | Kiểm tra chuỗi kết thúc bằng |
Hai kiểu cú pháp khai báo
Khi định nghĩa phần validate, người dùng có thể lựa chọn giữa cú pháp ngắn gọn hoặc cú pháp chi tiết để phù hợp với độ phức tạp của kịch bản.
Kiểu 1: Cú pháp rút gọn
Phù hợp cho các kiểm tra nhanh, cú pháp này chỉ yêu cầu cặp giá trị kiểm tra và giá trị mong đợi.
validate:
- eq: [status_code, 200]
- eq: [body.data.token, "xyz_12345"]
- eq: [body.meta.source, "192.168.1.50"]
- eq: [headers."Content-Type", "application/json"]
Kiểu 2: Cú pháp chi tiết
Cho phép định nghĩa rõ ràng từng thành phần bao gồm điểm kiểm tra, phương thức断言, giá trị kỳ vọng và thông báo lỗi tùy chọn.
validate:
- check: status_code
assert: equal
expect: 200
message: Xác thực mã trạng thái HTTP
- check: body.data.id
assert: not_equal
expect: 0
message: ID người dùng không được bằng 0
Kịch bản kiểm thử mẫu
Ví dụ dưới đây minh họa một quy trình xác thực người dùng thông qua API, sử dụng các biến môi trường và nhiều lớp kiểm tra khác nhau.
config:
name: Kiem_tra_xac_thuc_nguoi_dung
teststeps:
-
name: goi_api_dang_nhap
variables:
user_id: developer_01
request:
method: POST
url: https://gateway.test-env.io/auth/access
json:
account: ${user_id}
credential: "secure_pass_99"
validate:
- eq: [status_code, 200]
- eq: [body.data.account, "developer_01"]
- eq: [body.data.status_msg, "Thanh cong"]
- eq: [headers."Content-Type", "application/json"]
Kiểm tra chứa ký tự (Contains)
Hàm contains và contained_by được sử dụng để kiểm tra mối quan hệ bao hàm giữa các giá trị. Trong đó:
check_value: Dữ liệu thực tế nhận được từ phản hồi.expect_value: Giá trị mong đợi, có thể là list, tuple, dict hoặc chuỗi ký tự.
config:
name: Kiem_tra_chua_ky_tu
teststeps:
-
name: goi_api_dang_nhap
variables:
user_id: developer_01
request:
method: POST
url: https://gateway.test-env.io/auth/access
json:
account: ${user_id}
credential: "secure_pass_99"
validate:
- eq: [status_code, 200]
- eq: [body.data.account, "developer_01"]
- contains: [body.data.token, "session_2024"]
- eq: [body.data.status_msg, "Thanh cong"]
- eq: [headers."Content-Type", "application/json"]