Sử dụng Jmeter để test hiệu năng của website

Bởi An Le vào December 2015

Jmeter là công cụ để đo độ tải và performance của đối tượng, có thể sử dụng để test performance trên cả nguồn tĩnh và nguồn động, có thể kiểm tra độ tải và hiệu năng trên nhiều loại server khác nhau như: Web – HTTP, HTTPS, SOAP, Database via JDBC, LDAP, JMS, Mail – SMTP(S), POP3(S) and IMAP(S)…
Jmeter là một mã nguồn mở được viết bằng java. Cha đẻ của JMeter là Stefano Mazzocchi sau đó Apache đã thiết kế lại để cải tiến hơn giao diện đồ họa cho người dùng và khả năng kiểm thử hướng chức năng.

1. Đặt trưng của Jmeter
Nguồn mở, miễn phí
Giao diện đơn giản, trực quan dễ sử dụng
Có thể kiểm thử nhiều kiểu server: Web – HTTP, HTTPS, SOAP, Database – JDBC, LDAP, JMS, Mail – POP3,…
Một công cụ độc lập có thể chạy trên nhiều nền tảng hệ điều hành khác nhau, trên Linux chỉ cần chạy bằng một shell scrip, trên Windows thì chỉ cần chạy một file .bat
Đa luồng, giúp xử lý tạo nhiều request cùng một khoảng thời gian, xử lý các dữ liệu thu được một cách hiệu quả.
Đặc tính mở rộng, có rất nhiều plugin được chia sẻ rộng rãi và miễn phí
Một công cụ tự động để kiểm thử hiệu năng và tính năng của ứng dụng.
Cách thức hoạt động: nó giả lập một nhóm người dùng gửi các yêu cầu tới một máy chủ, nhận và xử lý các response từ máy chủ và trình diễn các kết quả đó cho người dùng dưới dạng bảng biểu, đồ thị,cây…
2. Cài đặt
a. Cài đặt Jmeter 2.1.1 ( Đối với Ubuntu).
– Tải jmeter tại trang : http://jmeter.apache.org/download_jmeter.cgi
wget http://mirrors.digipower.vn/apache//jmeter/binaries/apache-jmeter-2.11.tgz
– Giải nén file.
tar -zxvf apache-jmeter-2.11.tgz
– Chạy jmeter : Chuyển đến thư mục bin trong thư mục vừa giải nén ra (apache-jmeter-2.11)
./jmeter.sh
b. Cài đặt Jmeter 2.1.1 ( Đối với window).
– Tải jmeter tại trang : http://jmeter.apache.org/download_jmeter.cgi
– Giải nén vào bin chạy file ApacheJMeter.
3. Thực thi phần mềm JMeter
Sau khi chạy thành công. Đặt tên cho Test Plan ( ở đây mình đặt DemoConimit ).

1(3)

a. giả lập nhiều user cùng truy cập vào website đồng thời.
chuột phải vào Test Plan –> Add –> Threads(users) –> Thread Group

thread

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 Forever : 1 các thread được tạo sẽ thực hiện 1 lần( thay 1 bằng n thì số các thread sẽ lặp n lần).
b. Tạo request đến server
1 thread(tương ứng 1 user) có thể tạo nhiều request http gửi lên server .
Chuột phải vào Thread group –> add –> sample –> http request Default

http

Name : đặt tên request
Server name or Ip : điền địa chỉ trang web cần truy cập.
Nếu biết ip và cổng thì : điền ip vào Server Name or Ip và số cổng vào Port Number, đường dẫn đến website cần truy cập vào Path.
ví dụ
Truy cập vào trang http://dantri.com.vn chỉ cần điền
Server Name or Ip : dantri.com.vn
Port number : 80
home(1)

c. Xem kết quả của kịch bản test
– Xem kết quả tổng hợp của tất cả các thread
Chuột phải vào Thread Group –> Add -> Listener –> Summary Report

report

Bảng thống kê kết quả
Label : tên request
# Sample : số request
Average : thời gian trung bình xử lý các request
min : thời gian nhỏ nhất xử lý request
max : thời gian nhỏ nhất xử lý request
Error : phần trăm bị lỗi của các request(lỗi kết nối hoặc lỗi cho đầu ra không mong muốn)
thoughput : số request/s của server
kb/s = (avg.bytes*thoughput)/1024
– Xem kết quả của từng Request trong kịch bản
Chuột phải Thread Group –> Add –> Listener –> View Results Tree

tree

Ví dụ : sau khi chạy chương trình, trong phần view results tree hiển thị thông tin các request và kết quả của chúng.
Các request xanh là request không lỗi, các request đỏ bị lỗi. Click vào mỗi request tương ứng bên cạnh sẽ có 3 phần thông tin về request đó : sample result, request, response data.

treedetail

Tương tự ta có thể làm cho mục xã hội của trang dantri.com.vn

xahoi

Bài viết trên giới thiệu và hướng dẫn các bạn cách test đơn giản với Jmeter để tìm hiểu cụ thể hơn các bạn có thể vào trang http://jmeter.apache.org/ .

Nguồn: http://blog.co-mit.com