JMeter

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

1. Định nghĩa

Performance Testing là:

  • 1 hình thức kiểm thử phi chức năng
  • Được thực hiện để 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
  • Dù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 giới hạn về performance

2. Phân biệt giữa performance testing (PT), Load Testing (LT) và Stress Testing (ST)

| **Performance Testing**  |   **Load Testing**         | **Stress testing** |
| Thực hiện với 1 hoặc nhiều user và một lượng dữ liệu lý tưởng.
Mục đích:
* 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 một số lượng lớn user cùng truy cập.
Mục đích:
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 dữ liệu và một số lượng lớn user cùng truy cập.
Mục đích:
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 |

II. Tổng quan về Jmeter

1. Khái niệm

Jmeter là :

  • Một mã nguồn mở được viết bằng java
  • 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. Đặc trưng

  • 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,…
  • 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.

3. Cách thức hoạt động

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)

4. Ưu và nhược điểm của Jmeter

a. Ưu điểm:

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

a. Nhược điểm:

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à demo

Cài đặt jmeter thật sự rất đơn giản chỉ làm theo các bước sau:

  • Trên win chạy file : jmeter.bat
  • Trên ubuntu chạy file: jmeter.sh Chú ý: Cần chắc chắn rằng máy tính đã được cài đặt Java

1. Giới thiệu sơ qua về các thông số quan trọng 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.

2. Demo

  • Jmeter Demo test Web Plan

  • Jmeter Demo Database


All Rights Reserved