Get in touch
or send us a question?
CONTACT

Hướng dẫn sử dụng Jmeter để Test Performance cho hệ thống website trên Window

  1. Jmeter là gì?
  • 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) và IMAP(S)…
  • Jmeter là một phần mềm 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.

2. Tại sao sử dụng JMeter?

Bạn đã bao giờ kiểm thử một trang web mà biết nó hoạt động tốt chưa? Bao nhiêu người truy cập mà trang web vẫn hoạt động tốt, không hề xảy ra vấn đề gì?

Giả sử một ngày nào đó, sếp yêu cầu bạn kiểm thử hiệu năng của trang web www.google.com cho 100 người dùng truy cập một lúc, khi đó bạn sẽ làm gì?

www.google.com cho 100 người dùng truy cập một lúc, khi đó bạn sẽ làm gì? 

Bạn nghĩ ra cách 100 người sử dụng 100 máy PC truy cập đồng thời hay sao? Thật không khả thi chút nào khi điều kiện thiết bị không cho phép. Nếu sếp bạn lại bảo cho số lượng lên đến 1000 lại càng không thể. Chính vì vậy cần phải có một công cụ (tool) để bạn thực hiện mô phỏng những hành vi của con người để kiểm thử hiệu suất của trang web đó chính là JMeter.

3. Hướng dẫn cách cài đặt JMeter

Bước 1 : Cài đặt JDK

Vì JMeter viết bằng Java nên để chạy được JMeter thì chúng ta phải cài đặt JRE hoặc JDK ( https://www.oracle.com/java/technologies/javase-downloads.html ) . Xem hướng dẫn chi tiết tại đây  https://www.guru99.com/install-java.html

Bước 2: Đi đến trang web Apache của JMeter để download: https://jmeter.apache.org/download_jmeter.cgi

Click vào apache-jmeter-5.3.zip để download.

Bước 3: Giải nén file zip vừa tải về.

Bước 4: Vào folder bin và click đúp vào file jmeter.bat để chạy.

Giao diện JMeter sẽ hiển thị như sau:

4. Các thành phần của JMeter: Thread Group, Samplers, Listeners, Configuration

1. Thread Group

Thread group là đại diện cho một nhóm người dùng và chứa các Thread khác. Mỗi Thread Group sẽ mô phỏng những người dùng để thực hiện một trường hợp thử nghiệm cụ thể. Một số thông số cần chú ý trong Thread Group:

– Number of Threads: Mỗi Thread đại diện cho một người dùng ảo, JMeter cho phép thay đổi số lượng người dùng không hạn chế để thực hiện các thử nghiệm.

– Ram-Up Period: Thời gian để bắt đầu tất cả các Thread.

– Loop Count: Số lần lặp lại những yêu cầu của người dùng.

a. Cách tạo Thread Group: Click chuột phải vào Test plan -> Add -> Threads (Users) -> Thread Group

b. Nhập thuộc tính thread

b. Sampler

Samplers sẽ chỉ thị JMeter gửi request đến server và chờ đợi phản hồi. Để connect tới server, users cần tạo những request.

Cách tạo Sampler: Click chuột phải vào Thread Group -> Add -> Sampler -> chọn bất kỳ Sampler bạn muốn.

Sampler bao gồm:

  • FTP Request
  • HTTP Request (can be used for SOAP or REST Webservice also)
  • JDBC Request
  • Java object request
  • JMS request
  • JUnit Test request
  • LDAP Request
  • Mail request
  • OS Process request
  • TCP request

Ví dụ 1: khi sử dụng HTTP Request Default:

Cách tạo : click chuột phải vào Thread Group và chọn : Add ->Config Element ->HTTP Request Defaults.

Performance Testing using Jmeter

Trong HTTP Request Defaults control panel, Nhập Sever Name or IP (http://www.google.com)

Performance Testing using Jmeter

Ví dụ 2: khi sử dụng HTTP Request:

Bạn muốn 100 người dùng sẽ tấn công https://www.google.com đồng thời. Cách tạo: click phải vào thread group -> Add -> Sampler -> HTTP Request. 

Performance Testing using Jmeter

Trong HTTP Request Control Panel, nhập path URL request mà bạn muốn send tới google server

Performance Testing using Jmeter

Ví dụ , URL request là  http://www.google.com/calendar   -> path : calendar

Performance Testing using Jmeter

3. Listeners

Sau khi tạo và gửi yêu cầu tới server, JMeter sẽ nhận kết quả trả về và hiển thị. Listeners cho phép xem các kết quả thu được từ việc chạy dưới dạng các loại khác nhau, như: bảng biểu, đồ thị, cây… Listeners sẽ cung cấp một cách trực quan những dữ liệu thu được. Chúng ta cùng tìm hiểu một số dạng phổ biến như sau:

Cách tạo: Click chuột phải Thread group -> Add -> Listener -> Chọn dạng kết quả

Ví dụ : Click chuột phải vào Test Plan, Add ->Listener ->Graph Results

Performance Testing using Jmeter

– View Results Tree: Cho phép theo dõi thông tin của dữ liệu mà server trả về cho mỗi người dùng dưới các dạng khác nhau.

– Graph Results:

Trả về đồ thị biểu diễn những thông số về: số lượng yêu cầu, lượng yêu cầu được xử lý mỗi phút, giá trị trung bình, giá trị trung vị của toàn bộ thời gian phản hồi từ server.

– Summary Report: Cung cấp báo cáo về các giá trị: thời gian phản hồi thấp nhất/cao nhất, số yêu cầu xảy ra lỗi, lưu lượng trung bình.

4. Configuration

Configuration dùng để thiết lập các giá trị mặc định và các biến để sử dụng sau này bởi các samplers. Hình dưới đây cho thấy một số configuration elements thường được dùng trong JMeter:

CSV Data Set Config

Trường hợp bạn muốn muốn kiểm thử đồng thời 100 người dùng đăng nhập bằng thông tin đăng nhập khác nhau. Khi đó bạn không cần ghi lại kịch bản 100 lần. Bạn có thể lưu trữ thông tin đăng nhập (tên người dùng, mật khẩu) vào một file text. Sử dụng “CSV Data Set Config ” để đọc các tham số từ file.

HTTP Cookie Manager

Bạn đã bao giờ vào một trang web, ví dụ: https://shopee.vn, đăng nhập bằng người dùng và mật khẩu của bạn. Sau đó bạn tắt đi và mở lại thì thấy không cần đăng nhập nữa. Có khi nào bạn thắc mắc: Tại sao mình không phải đăng nhập nữa không? Lí do là trình duyệt của bạn sẽ sử dụng cookie làm dữ liệu người dùng để đăng nhập. JMeter cung cấp trình quản lý HTTP Cookie Manager cũng có tính năng tương tự như trình duyệt web. Nếu bạn có yêu cầu HTTP Request có chứa cookie, Cookie Manager sẽ tự động lưu trữ cookie đó và sẽ sử dụng nó cho tất cả các yêu cầu trong tương lai tới trang web cụ thể đó. Đây là màn hình HTTP Cookie Manager: 

HTTP request default

HTTP request default cho phép bạn đặt các giá trị mặc định mà bộ điều khiển HTTP Request của bạn sử dụng. Ví dụ: Bạn đang gửi 100 yêu cầu HTTP đến máy chủ google.com. Bạn sẽ phải nhập thủ công tên máy chủ = google.com cho tất cả 100 yêu cầu này. Thay vào đó, bạn có thể thêm một HTTP request defaults với trường “Tên máy chủ hoặc IP” = google.com. Không cần gõ 100 lần! 

Login Config Element

Login Config Element cho phép bạn thêm hoặc ghi đè cài đặt tên người dùng và mật khẩu. Ví dụ: bạn muốn mô phỏng một người dùng đăng nhập vào trang web www.facebook.com bằng người dùng và mật khẩu. Bạn có thể sử dụng Login Config Element để thêm cài đặt mật khẩu và người dùng này trong yêu cầu người dùng. Ở đây bạ sẽ thấy JMeter sẽ cung cấp Username và password để bạn điền

So sánh giữa Login Config Element và CSV data Config

Login Config ElementCSV data Config
Mô phỏng đăng nhập một người dùngMô phỏng đăng nhập nhiều người dùng
Chỉ thích hợp cho tham số đăng nhập (người dùng và mật khẩu)Thích hợp cho số lượng lớn các tham số

Trên đây là một số thành phần cần chú ý và thường sử dụng trong JMeter, mong nó sẽ giúp bạn trong việc tìm hiểu JMeter.

Tài liệu tham khảo:

  • https://www.guru99.com/jmeter-tutorials.html
  • https://jmetervn.com/