Assertions trong JMeter
Bài viết này sẽ giới thiệu đến các bạn khái niệm Assertion và các loại Assertions được sử dụng trong JMeter
Assertion là gì?
Assertion giúp xác nhận rằng những dữ liệu mà máy chủ đang được kiểm thử trả về có đúng với yêu cầu đặt ra hay không.
Các loại Assertions
Response Assertion
Response Assertion cho phép thêm các chuỗi pattern trong phản hồi từ máy chủ.
Ví dụ: bạn gửi request đến trang web http://www.google.com và nhận phản hồi từ máy chủ. Bạn có thể sử dụng Response Assertion để xác minh xem phản hồi của máy chủ có chứa chuỗi pattern mong đợi hay không (ví dụ: "OK").
Bài viết này được đăng tại [free tuts .net]
Duration Assertion
Duration Assertion xác nhận mỗi phản hồi của máy chủ trong một khoảng thời gian nhất định. Bất kỳ phản hồi nào mất nhiều thời gian hơn số mili giây đã cho (do người dùng chỉ định) sẽ được đánh dấu là phản hồi thất bại.
Ví dụ: một user request được gửi đến www.google.com bởi JMeter và nhận được phản hồi trong thời gian mong đợi là 5 ms thì Test Case này pass, nếu không nhận được phản hồi trong 5 ms sẽ là failed.
Size Assertion
Size Assertion kiểm tra rằng mỗi phản hồi của máy chủ chứa số byte mong đợi. Bạn có thể chỉ định size bằng, lớn hơn, nhỏ hơn hoặc so sánh với một số byte nhất định nào đó.
JMeter gửi user request đến www.google.com và nhận gói phản hồi có size nhỏ hơn dự kiến là 5000 bytes thì testcase pass. Nếu lớn hơn 5000 bytes sẽ là failed.
XML Assertion
XML Assertion kiểm tra rằng dữ liệu response data là dạng XML.
HTML Assertion
HTML Assertion cho phép người dùng kiểm tra cú pháp HTML trong dữ liệu phản hồi (response data). Nghĩa là dữ liệu phản hồi phải đáp ứng cú pháp HTML.
Sử dụng Response Assertion
Chúng ta đang sử dụng Response Assertion để so sánh gói phản hồi từ www.google.com khớp với chuỗi mong đợi .
Dưới đây là quá trình thực hiện:
Bảng điều khiển Response Assertion cho phép thêm các chuỗi Pattern để so sánh trong phản hồi từ server.
Bước 1. Thêm Response Assertion
Nhấp chuột phải vào Thread Group -> Add -> Assertions -> Response Assertion
Response Assertion hiển thị như hình dưới đây:
Bước 2. Thêm Pattern to test
Khi gửi yêu cầu đến máy chủ Google, có thể trả về một số response code (mã phản hồi) từ máy chủ như dưới đây:
- 404: Server error
- 200: Server OK
- 302: Web server chuyển hướng đến các trang khác. Điều này thường xuyên xảy ra khi bạn truy cập google.com từ bên ngoài Hoa Kỳ. Google chuyển hướng đến trang web cụ thể theo quốc gia. Như hình bên dưới, google.com chuyển hướng đến google.co.in cho người dùng Ấn Độ.
Giả sử bạn muốn xác minh rằng responses code của web server google.com có chứa pattern 302,
Trên Response Field To Test, chọn Response Code,
Trên Bảng Response Assertion, nhấp vào Add -> nhập 302 trong Pattern to Test.
Bước 3. Thêm Assertion Results
Nhấp chuột phải vào Add -> Listener -> Assertion Results
Bước 4. Chạy thử nghiệm
Nhấp vào Thread Group -> Assertion Result
Khi bạn đã sẵn sàng để chạy thử nghiệm, hãy nhấp vào nút Run trên thanh menu hoặc nhấn tổ hợp phím tắt Ctrl + R.
Kết quả kiểm thử sẽ hiển thị trên khung Assertion Results. Nếu mã phản hồi của máy chủ Google chứa mẫu 302, trường hợp kiểm thử này được passed. Bạn sẽ thấy thông báo hiển thị như sau:
Bây giờ trở lại Bảng Response Assertion, bạn thay đổi Pattern từ 302 thành 500.
Vì response code của máy chủ Google không chứa pattern này, bạn sẽ thấy trường hợp kiểm thử này Failed và hiển thị kết quả như sau:
Xử lý sự cố:
Nếu bạn gặp phải sự cố trong khi chạy các trường hợp kiểm thử trên, hãy làm như sau:
- Kiểm tra xem bạn đang kết nối với internet thông qua proxy. Nếu có, loại bỏ proxy.
- Khởi động JMeter.
- Mở AssertsTestPlan.jmx trong JMeter.
- Nhấp vào Thread Group -> Assertion Result.
- Chạy thử nghiệm