Lượt đọc: 1711
Tiếp theo trong JMeter Series, ở bài này mình sẽ hướng dẫn cho các bạn cách sử dụng Jmeter Assertions để xác thực các phản hồi được trả về từ server.
NỘI DUNG CHÍNH
Assertions là gì ? Có bao nhiêu loại Assertions trong JMeter ?

JMeter Assertions được sử dụng để xác thực phản hồi của yêu cầu mà bạn đã gửi đến server, nếu kết quả mong đợi như kết quả thực tế thì xác thực thành công. Bạn có thể sử dụng Assertions để xác thực cho Sampler hoặc 1 phần nằm trong Sampler.
Có các loại Assertions sau đây:
1. Response Assertion: là assertion thường được dùng nhất, dùng để kiểm tra kết quả trả về từ text/body/code/message/header có chứa, khớp hay bằng một mẫu được chỉ định hay không. | |
2. JSON Assertion: thực thi các biểu thức JsonPath và xác thực tài liệu Json. | |
3. Size Assertion: kiểm tra xem mỗi phản hồi từ server chứa số byte dự kiến trong đó. Bạn có thể chỉ định kích thước bằng, lớn hơn, nhỏ hơn hoặc không bằng một số byte nhất định. | |
4. JSR233 Assertion: chạy logic code của riêng bạn bằng cách sử dụng script JSR223. | |
5. Xpath2 Assertion: kiểm tra tài liệu xml có well-formed (đúng cú pháp) hay không. Sử dụng “/” sẽ phù hợp với mọi tài liệu well-formed và là biểu thức XPath2 mặc định. Assertion cũng hỗ trợ các biểu thức boolean, chẳng hạn như “count (// * error) = 2”. | |
6. Binary Response Assertion: kiểm tra nhận dạng nhị phân của phản hồi. | |
7. Compare Assertion: được sử dụng để so sánh văn bản hoặc chuỗi biểu thức chính quy đã cho với nội dung phản hồi. | |
8. Duration Assertion: kiểm tra xem mỗi phản hồi từ server đã trôi qua trong khoảng thời gian nhất định. Bất kỳ phản hồi nào kéo dài hơn sẽ được đánh dấu là không thành công. | |
9. HTML Assertion: cho phép người dùng kiểm tra dữ liệu phản hồi có đáp ứng theo cú pháp HTML hay không. | |
10. JSON JMESPath Assertion: updating … | |
11. MD5Hex Assertion: cho phép kiểm tra băm MD5 của dữ liệu phản hồi. | |
12. SMIME Assertion: xác nhận SMIME kiểm tra xem phản hồi trả về từ Mail Reader Sampler đã được ký hay chưa. Một điều khoản thay thế (message chưa được ký) cũng có thể được chỉ định, bất kể assertion có thể xác minh chứng chỉ người ký hay không. | |
13. XML Assertion: Kiểm tra xem dữ liệu phản hồi từ server có chứa một tài liệu XML hợp lệ hay không. | |
14. XML Schema Assertion: cho phép xác thực một phản hồi XML dựa trên một lược đồ XML. | |
15. Xpath Assertion: kiểm tra phản hồi của một yêu cầu cụ thể sẽ xác thực xpath như đã định nghĩa, trong trường hợp Xpath tồn tại trong phản hồi thì Assertion đó là true, nếu Xpath không tồn tại thì Assertion đó là false. | |
16. BeanShell Assertion: Thực thi logic của riêng bạn bằng cách sử dụng tập lệnh Beanshell |
1. Response Assertion
Test plan cần thực hiện:
Vào trang https://phptravels.com/demo và sử dụng Response Assertion xác nhận kết quả trả về sử dụng các field:
Text Response, Response Code, Response Message, Response Headers, Request Headers, URL Sampled, Document (text), Ignore Status, Request Data
1.1. Test Response:
Step 1: Tạo test plan như sau
Test plan
_____Thread Group
__________HTTP Request
_______________Response Assertion
_____View Results Tree
_____Summary Report

Step 2: Tại Field to Test chọn Text Response, tại Patterns to Test nhấn Add và nhập “Application Test Drive“, “Application Test Drive” là text có hiển thị trên trang https://phptravels.com/demo, ở đây mình sử dụng Assertions để xác nhận text đã nhập tại Patterns to Test có được hiển thị trên trang web hay không.


Step 3: Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Response data – Response Body
HTTP Request hiển thị trạng thái Passed tức là server có trả về đúng kết quả cần xác nhận

Bây giờ thử trường hợp nhập text là “Docgihocgi.com” nhé


HTTP Request hiển thị trạng thái Failed tức là server không trả về đúng kết quả cần xác nhận.
OK! Tới đây thì các bạn đã hiểu phương thức hoạt động của Response Assertion rồi phải không nào.
Tương tự ta thực hiện test Assertions với các loại Field to Test khác.
1.2. Response Code:
Field to Test: Response Code
Patterns to Test: 200

Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Sampler result cho thấy Response code là 200 nên trạng thái là Passed.

1.3. Response Message:
Field to Test: Response Message
Patterns to Test: OK

Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Sampler result cho thấy Response message là OK nên trạng thái là Passed.

1.4. Response Headers:
Field to Test: Response Headers
Patterns to Test: Server: cloudflare

Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Response data (Response headers ) cho thấy có hiển thị mục Server: cloudflare nên trạng thái là Passed.

1.5. Request Headers:
Field to Test: Request Headers
Patterns to Test: Host: phptravels.com

Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Request (Request Headers ) cho thấy có hiển thị mục Host: phptravels.com nên trạng thái là Passed.

1.6. URL Sampled
Field to Test: URL Sampled
Patterns to Test: phptravels.com/demo

Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Request (Request Body) cho thấy có hiển thị url chứa https://phptravels.com/demo nên trạng thái là Passed.

1.7. Document (text)
Field to Test: Document (text)
Patterns to Test: <title>Demo Script Test drive – PHPTRAVELS</title>

Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Kiểm tra kết quả trả về từ server tại Response data (Response Body) cho thấy có hiển thị đoạn text <title>Demo Script Test drive – PHPTRAVELS</title> nên trạng thái là Passed.

2. JSON Assertion
Test plan cần thực hiện:
Xác thực kết quả trả về từ json document https://jsonplaceholder.typicode.com/users có user có name là “Leanne Graham” hay không.
Step 1: Tạo test plan như sau
Test plan
_____Thread Group
__________HTTP Request
_______________JSON Assertion
_____View Results Tree
_____Summary Report


Step 2: Kiểm tra JSON Path của name trong file Json
Nhấn Start > Chọn View Results Tree > Chọn JSON Path Tester > Chọn HTTP Request
Tại JSON Path Expression nhập “$.name” > Nhấn Test
Kết quả bên dưới là NO MATCH do JSON Path chưa đúng.
Tại JSON Path Expression nhập “$..name” > Nhấn Test
Kết quả bên dưới là MATCH và hiển thị list name có trong file.
Do đó JSON Path cần lấy là “$..name“


Step 3: Setting JSON Assertion
Assert JSON Path exists: $..name
Additionally assert value: Checked
Expected Value: “Leanne Graham“

Step 4: Start test
Nhấn Start > Chọn View Results Tree > Kết quả trả về từ file Json có chứa name “Leanne Graham” nên trạng thái của HTTP Request là Passed.

3. Size Assertion
Test plan cần thực hiện:
Xác thực kết quả trả về khi request từ file json https://jsonplaceholder.typicode.com/users có dung lượng bytes dự kiến là bao nhiêu
Step 1: Tạo test plan như sau
Test plan
_____Thread Group
__________HTTP Request
_______________Size Assertion
_____View Results Tree
_____Summary Report


Step 2: Setting tại mục Size to Assert, kết quả trả về có Size in bytes = 6000
Size in bytes: 6000
Type of Comparison: =

Step 3: Start test
Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Chọn Sampler result > Kết quả trả về Size in bytes:6776 không thỏa mãn nên trạng thái của HTTP Request là Failed.

Step 4: Setting tại mục Size to Assert, kết quả trả về có Size in bytes > 6000
Size in bytes: 6000
Type of Comparison: >


Step 5: Start test
Nhấn Start > Chọn View Results Tree > Chọn HTTP Request > Chọn Sampler result > Kết quả trả về Size in bytes:6774 thỏa mãn nên trạng thái của HTTP Request là Passed.
4. Xpath Assertion
Test plan cần thực hiện:
Xác thực kết quả trả về từ website https://jsonplaceholder.typicode.com/users có chứa đường dẫn Xpath //*[@id=”btnLogin”] hay không ?
Step 1: Tạo test plan như sau
Test plan
_____Thread Group
__________HTTP Request
_______________Xpath Assertion
_____View Results Tree
_____Summary Report

Step 2: Setting Xpath Assertion
Apply to: Main sample only
XML Parsing Options: Use Tidy (tolerant parser)
Xpath Assertion: //*[@id=”btnLogin”]

Cách lấy Xpath bất kì phần tử nào trên website:
Tại button LOGIN click phải chọn Inspec hoặc nhấn F12 để tìm ra đường dẫn Xpath của Element cần xác nhận, sau đó chọn Copy Xpath.


Bạn cũng có thể xác thực đường dẫn đã lấy bằng cách sử dụng Xpath Tester trên JMeter.

Step 3: Start test
Nhấn Start > Chọn View Results Tree > trạng thái của HTTP Request là Passed.

Lời kết
Vậy là qua bài viết bạn đã có thể sử dụng Assertion để kiểm tra kết quả trả về từ server có thỏa mãn với tiêu chí đề ra.
Hiện tại các hướng dẫn bao gồm Response Assertion, JSON Assertion, Size Assertion và Xpath Assertion, các loại assertion còn lại mình sẽ cập nhật trong thời gian sớm nhất.
Hẹn gặp lại các bạn trong các bài viết tiếp theo của JMeter Series.
Nếu có thắc mắc hoặc trao đổi vui lòng để lại bình luận bên dưới nhé !