Khám Phá Apache JMeter - 2233win

| Apr 13, 2025 min read

Ngày 27 tháng 7 năm 2022 - Công Nghệ Thông Tin

Apache JMeter là một công cụ kiểm thử tải trọng mã nguồn mở được viết hoàn toàn bằng ngôn ngữ Java và do Quỹ Phần Mềm Apache phát triển. Đây là một công cụ mạnh mẽ để đo lường hiệu suất của phần mềm.

Ban đầu, JMeter được thiết kế chủ yếu để kiểm tra các ứng dụng web, nhưng dần dần nó đã mở rộng khả năng để hỗ trợ nhiều loại ứng dụng khác nhau. Hiện tại, JMeter có thể kiểm tra các giao thức hoặc loại ứng dụng sau:

  • Web - HTTP, HTTPS (có thể sử dụng các ngôn ngữ như Java, NodeJS, PHP hay ASP.NET)
  • Dịch vụ web SOAP hoặc REST
  • FTP
  • Cơ sở dữ liệu (sử dụng JDBC)
  • LDAP
  • Trung gian hướng tin nhắn (sử dụng JMS)
  • Chức năng thư điện tử - SMTP(S), POP3(S) hoặc IMAP(S)
  • Lệnh gốc hoặc kịch bản shell
  • TCP
  • Đối tượng Java

Ngoài ra, JMeter còn có những tính năng nổi bật sau:

  • Giao diện đồ họa đầy đủ chức năng cho phép ghi lại kế hoạch kiểm thử từ trình duyệt hoặc ứng dụng gốc, hỗ trợ việc gỡ lỗi.
  • Chế độ dòng lệnh có thể chạy trên bất kỳ hệ điều hành nào hỗ trợ Java.
  • Báo cáo HTML phong phú và dễ sử dụng.
  • Có khả năng trích xuất dữ liệu từ các định dạng văn bản phổ biến như HTML, JSON, XML.
  • Simulate truy cập đồng thời thông qua phương thức đa luồng.
  • Hỗ trợ mở rộng khả năng trực quan hóa dữ liệu thông qua plugin.
  • Cho phép viết kịch bản lấy mẫu bằng các ngôn ngữ tương thích JSR223 như Groovy hoặc BeanShell.

Lưu ý rằng JMeter không phải là trình duyệt và hoạt động ở cấp độ giao thức. Nó sẽ không phân tích JavaScript như trình duyệt hay hiển thị nội dung trang.

Bài viết này sẽ giới thiệu cơ bản về JMeter qua ba phần: trước tiên là tìm hiểu các khái niệm và thành phần thường dùng; tiếp theo là cài đặt phần mềm; cuối cùng là thực hành xây dựng một kế hoạch kiểm thử web đơn giản.

1. Tổng Quan Các Thành Phần

Dưới đây là một số khái niệm và thành phần chính trong JMeter:

  • Kế Hoạch Kiểm Thử (Test Plan): Là nút gốc của cây nhiệm vụ kiểm thử trong JMeter.

  • Nhóm Luồng (Thread Group): Dùng để mô phỏng nhóm người dùng thực hiện kiểm thử, là điểm khởi đầu của kế hoạch kiểm thử. Các thành phần như Bộ Điều Khiển (Controller) và Lấy Mẫu (Sampler) phải nằm dưới nhóm luồng. Một số thành phần khác như Nghe (Listener) có thể đặt trực tiếp dưới kế hoạch kiểm thử nhưng sẽ áp dụng cho tất cả các nhóm luồng. Nhóm luồng giúp cấu hình số lượng luồng, giai đoạn tăng tốc và số lần lặp lại.

  • Bộ Điều Khiển Logic (Logic Controller): Dùng để kiểm soát thứ tự xử lý của các thành phần lấy mẫu. Các bộ điều khiển logic phổ biến gồm Bộ Điều Khiển Đơn Giản (Simple Controller), Bộ Điều Khiển Vòng Lặp (Loop Controller) và Bộ Điều Khiển Nếu (If Controller).

  • Lấy Mẫu (Sampler): Dùng để gửi yêu cầu đến ứng dụng đang được kiểm thử. Mỗi thành phần lấy mẫu sẽ tạo ra kết quả lấy mẫu với các thuộc tính như thành công/thất bại, thời gian tiêu thụ, kích thước dữ liệu, v.v… Kết quả này có thể xem được trong thành phần nghe.

  • Nghe (Listener): Dùng để lắng nghe, lưu trữ và đọc kết quả kiểm thử, thường được thực thi cuối cùng trong quy trình kiểm thử. Mặc định kết quả sẽ được lưu trong tệp XML có phần mở rộng “.jtl”.

  • Yếu Tố Cấu Hình (Configuration Element): Dùng để thiết lập biến và giá trị mặc định cho các thành phần lấy mẫu sử dụng sau này.

  • Đo Án (Assertion): Dùng để thực hiện thêm các kiểm tra đối với kết quả lấy mẫu.

  • Bộ Đếm Thời Gian (Timer): Dùng để kiểm soát khoảng cách nohu52 đăng nhập giữa các lần lấy mẫu.

  • Bộ Xử Lý Trước (Pre Processor): Dùng để thực hiện các công việc chuẩn bị trước khi lấy mẫu.

  • Bộ Xử Lý Sau (Post Processor): Dùng để thực hiện các công việc sau khi lấy mẫu.

Sau khi đã làm quen với các khái niệm cơ bản, chúng ta sẽ chuyển sang phần cài đặt JMeter.

2. Cài Đặt

Trước khi cài đặt JMeter, hãy đảm bảo đã cài JDK phiên bản 1.8 trở lên.

Tải xuống gói nén phiên bản mới nhất từ trang web chính thức, giải nén vào thư mục chỉ định và thiết lập biến môi trường hệ thống. Nếu lệnh “jmeter –version” trả về đúng phiên bản thì quá trình cài đặt đã thành công.

jmeter --version

3. Xây Dựng Kế Hoạch Kiểm Thử Web

Phần này sẽ minh họa cách tạo một kế hoạch kiểm thử web cơ bản để kiểm tra trang web “jmeter.apache.org”. Chúng ta sẽ tạo 5 người dùng gửi yêu cầu đến 2 trang của website JMeter và mỗi người dùng sẽ lặp lại quá trình này 2 lần. Như vậy tổng số yêu cầu HTTP sẽ là: (5 người dùng) x (2 yêu cầu) x (lặp lại 2 lần) = 20 yêu cầu HTTP.

Các bước thực hiện bao gồm:

  • Thêm người dùng
  • Thiết lập thuộc tính HTTP mặc định
  • Thêm hỗ trợ Cookie
  • Thêm yêu cầu HTTP
  • Thêm thành phần nghe để xem kết quả

Chi tiết từng bước sẽ được trình bày kèm hình ảnh minh họa.

Kết thúc quá trình cấu hình, file jmx (build-web-test-plan.jmx) đã được đăng tải lên GitHub cá nhân.

Để chạy thử trong chế độ GUI, chỉ cần nhấn Start. Kết quả có thể xem trong View Results Tree.

Trong thực tế kiểm thử tải trọng, nên sử dụng chế độ dòng lệnh.

Lệnh chạy kiểm thử dựa trên file jmx, tạo file dữ liệu kết quả và folder báo cáo:

jmeter -n -t build-web-test-plan.jmx -l build-web-test-plan.jtl -e -o build-web-test-plan.report

Mở file index.html trong folder báo cáo để xem kết quả cuối cùng.

Như vậy đã hoàn thành phần khám phá cơ bản về JMeter.

[Tài liệu tham khảo]

[1] Apache JMeter - apache.org
[2] JMeter Wiki - cwiki.apache.org
[3] Apache JMeter - GitHub

#KiểmThửTựĐộng cwin 667 #JMeter