Hướng dẫn kiểm tra hiệu năng với Apache JMeter.
Một số chú giải trong Apache JMeter:
- Test Plan: là kế hoạch test, chứa các tình huống test khác nhau
- Một vài yếu tố trong test plan như: thread groups,listeners,assertions,sample generating controllers,logic controllers,… (*Lưu ý: Một test plan phải có một thread groups )
- Mỗi Thread Group này sẽ mô phỏng 1 hoặc nhiều user cùng thực hiện 1 hành động nào đó
Ví dụ 1: Kiểm thử độ tải (load trang) của Facebook
Hướng dẫn kiểm tra hiệu năng với Apache JMeter.
Tạo Thread Group
Chuôt phải vào Test Plan, chọn Add > Threads (Users) > Thread Group
Các tham số trong Thread Group:
Name: đặt tên cho ThreadGroup ( ở đây mình đặt JmeterUser ).
Number of Threads(users): số lượng người dùng mà ta muốn mô phỏng.
Ramp-up Period (in seconds): Cho biết thời gian để JMeter tạo ra tất cả những thread cần thiết. Ví dụ nếu tham số này là 10 thì trong 10 giây tất cả các Number of Threads đã khai báo ở trên sẽ được gửi đi trong 10 giây, nếu đặt tham số này là 0 thì tất cả các yêu cầu sẽ được gửi đi cùng một lúc.
Loop Count: số lần thực hiện thread này, nếu chọn check box Forever thì nó sẽ lặp mãi.
Ở đây mình đặt là Test Load Facebook cho dễ hiểu, sẽ có 10 user thực hiện gửi request trong cùng 1s và thực hiện 1 lần duy nhất.
Tạo request
Tạo request gửi tới Facebook (Ở đây là http request; nếu bạn thực hiện kiểm thử với database thì để là JDBC Request, với server mail là SMTP request…)
Các tham số trong HTTP Request:
Name: đặt tên request
Server name or Ip: điền địa chỉ trang web cần truy cập.
Port number: cổng chạy ứng dụng (thường cho HTTP là 80, nếu cổng khác thì nó sẽ thể hiện số cổng bên trong URL)
Method: method của request (ở đây mình tải trang lên là GET, những trương hợp login sẽ là POST… tùy theo ứng dụng web qui định)
Parameter, Body Data, File Upload: Dùng thể thêm dữ liệu vào request khi gửi đi.
Hướng dẫn kiểm tra hiệu năng với Apache JMeter 2
Thêm listener để hiện thị kết quả:
- Hiển thị kết quả của tất cả các thread
Chuột phải vào Thread Group –> Add -> Listener –> Summary Report (bạn có thể hiển thị kết quả theo đồ thị, cây…)
- Hiển thị kết quả của từng thread
Thực hiện chạy test plan:
Kết quả:
Samples: số lượng request = 10
Average: thời gian trung bình mà Facebook phản hồi lại là 1914 ms
Min: thời gian nhanh nhất mà FaceBook phản hồi lại là 1729 ms
Max: thời gian lâu nhất mà FaceBook phản hồi lại là 2236 ms
Error %: số request lỗi là 0%
Xóa kết quả đi và chạy lại với Number of Threads (Users) = 100 tức là 100 người thực hiện load trang facebook cùng 1 lúc
Kết quả:
Rõ ràng khi 100 user cùng gửi request 1 lúc Facebook mất nhiều thời gian hơn để phản hồi lại từng request so với trường hợp chỉ có 10 user gửi request cùng 1 lúc.
Okay, Done!
Vậy là chúng ta đã có thể thực hiện được 1 tình huống load test đơn giản nhất.
Thanks các bạn đã theo dõi!
Các phần tiếp theo mình sẽ giới thiệu về load test với database: https://stackjava.com/apache-jmeter/load-testing-database-voi-apache-jmeter.html
Thanks các bạn đã theo dõi bài viết! [wp-svg-icons icon=”thumbs-up” wrap=”i”]