Công cụ performance test Jmeter

3503

Bài viết được sự cho phép của tác giả Lê Chí Dũng

I. Giới thiệu về Performance Test

1. Performance Test là gì?

  • Là một kiểu dùng để thực thi Non Functional test (kiểm thử phi chức năng)
  • Xác định khả năng hoạt động của hệ thống có phù hợp với yêu cầu hay không
  • Phục vụ nhiều mục đích khác nhau như chứng minh rằng hệ thống có thể đạt được các đáp ứng performance tối thiểu
  Hướng dẫn sử dụng JMeter test hiệu năng website - Phần 1
  Biện hộ: Vì sao các Developer không test phần mềm của họ?

2. Phân biệt test performance vs load vs stress

Refer: https://www.guru99.com/performance-vs-load-vs-stress-testing.html

Performance Testing (PT) Load Testing (LT) Stress testing (ST)
– Thực hiện để kiểm tra, xác định hệ thống thực hiện một khối lượng công việc cụ thể trong thời gian bao lâu.
– Xác định hiệu năng của hệ thống trong điều kiện thông thường
– Thực hiện với 1 hoặc nhiều user và một lượng dữ liệu lý tưởng.
– Thực hiện để kiểm tra, xác định hoạt động của hệ thống trong điều kiện tải cao.
– Xác định hiệu năng của hệ thống trong điều kiện tải cao
– Thực hiện với một số lượng lớn user cùng truy cập.
– Thực hiện để kiểm tra, xác định hoạt động của hệ thống khi điều kiện tải cao bất thường.
– Xác định tính tin cậy của hệ thống trong điều kiện khắc nghiệt nhất
– Thực hiện với một số lượng lớn dữ liệu và một số lượng lớn user cùng truy cập.

II. Tổng quan về Jmeter

1. Jmeter là gì?

  • Một mã nguồn mở được viết bằng java
  • Hỗ trợ GUI đơn giản, trực quan dễ sử dụng
  • 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 script, 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 trẻ 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ô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 thông qua JDBC, LDAP, JMS
    • Mail – SMTP(S), POP3(S) and IMAP(S)

2. Jmeter hoạt động như thế nào?

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… (Xem hình bên dưới)

Ưu điểm của Jmeter

  • Kiểm tra tải và kiểm tra hiệu năng theo nhiều kiểu khác nhau: Web – HTTP, HTTPS, SOAP, Database via JDBC, LDAP, JMS, Mail – POP3(S) and IMAP(S).
  • Rất nhẹ, không cần cài đặt, miễn phí.
  • Nền tảng xử lý đa luồng cho phép mô phỏng nhiều mẫu bởi nhiều thread của các chức năng khác nhau trên các thread group khác nhau
  • Dễ dàng thêm các plugin và tạo các báo cáo phù hợp yêu cầu.
  • Được hỗ trợ mạnh bởi cộng đồng open source

Nhược điểm của Jmeter

  • Sun’s JRE phải được cài đặt.
  • Chỉ sử dụng được với ứng dụng web.
  • Kết quả stress testing có thể khó xác định chính xác.
  • Khó khăn khi thực hiện các kịch bản kiểm thử phức tạp.
  • Khó thực hiện Recording

III. Hướng dẫn cài đặt và thông số của Jmeter

1. Cài đặt Jmeter

  • Download Jmeter http://jmeter.apache.org/download_jmeter.cgi
  • Sau khi download về giải nén và mở thư mục đó ra
    • Trên Windows chạy file : jmeter.bat
    • Trên Linux chạy file: jmeter.sh
      Chú ý: Cần chắc chắn rằng máy tính đã được cài đặt Java

2. Thông số của Jmeter

  • Test Plan: Bao gồm các bước sẽ được JMeter thực thi.
  • Thread Group: Đại diện cho người dùng ảo (virtual user), có thể gồm các thành phần sau:
  • Logic Controller: Cho phép điều chỉnh logic khi gửi các yêu cầu đến đối tượng cần kiểm tra.
  • Sampler: Cung cấp thông tin cho JMeter gửi các yêu cầu đến máy chủ cần kiểm tra. Tùy theo giao thức kiểm tra, JMeter hỗ trợ những loại sampler khác nhau.
  • Config Element: Sử dụng để thêm vào những thay đổi/ cấu hình cần thiết cho các sampler.
  • Timer: Điều chỉnh khoảng thời gian dừng giữa các lần gửi yêu cầu.
  • Listener: Cho phép thu thập thông tin kết quả. Có thể đưa ra các báo cáo kết quả kiểm tra dạng đồ thị, hoặc xuất ra tập tin.

Bài viết gốc được đăng tải tại lcdung.top

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev