Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Published on
Published on

Cách sử dụng JMeter để kiểm tra hiệu suất ứng dụng web

Sau đây là hướng dẫn từng bước để demo Apache JMeter, thường được sử dụng cho việc load testing và performance testing của các ứng dụng web:

Khởi động JMeter

Sử dụng lệnh sau để khởi động JMeter:

jmeter

Tổng quan cơ bản về Giao diện JMeter

Giao diện JMeter có các thành phần chính sau:

  • Test Plan(Kế hoạch kiểm thử): Bộ chứa cho tất cả các thành phần kiểm thử.
  • Thread Groups(Nhóm luồng): Mô phỏng người dùng đồng thời.
  • Samplers(Bộ lấy mẫu): Thực hiện các yêu cầu (HTTP, FTP, JDBC, v.v.).
  • Listeners(Bộ lắng nghe): Hiển thị và ghi lại kết quả (ví dụ: biểu đồ, bảng).

Tạo Test Plan

Mở JMeter và nhấp vào File → New để tạo một Test Plan mới

Thêm Thread Group

Để tạo Thread Group ta Nhấp chuột phải vào Test Plan → Add → Threads (Users) → Thread Group Alt text Cấu hình Thread Group;

  • Name: Đặt tên nhóm (ví dụ: "Test Group 1").
  • Number of Threads (users): Số lượng người dùng ảo (bắt đầu với 10 và tăng dần lên).
  • Ramp-up period: Thời gian để khởi động toàn bộ người dùng.
    • Ví dụ:
      • 100 threads, 100 giây: Mỗi giây JMeter khởi động thêm 1 người dùng cho đến khi tất cả 100 luồng được khởi động hoàn toàn.
      • 100 threads, 50 giây: Mỗi giây thêm 2 người dùng.
      • Giá trị 0: Khởi động tất cả người dùng đồng thời.
    • ở đây là gán giá trị là 0 để khởi động tất cả người dùng đồng thời.
  • Loop count: Số lần lặp lại (ví dụ: 1).
  • Same user on each iteration: yes Alt text

Thêm HTTP Request Sampler

  1. Nhấp chuột phải vào Thread GroupAddSamplerHTTP Request .
  2. Cấu hình HTTP Request:
  • Protocol: Chọn giao thức (HTTP, HTTPS).
  • Server Name or IP: URL của ứng dụng cần kiểm tra (ví dụ: example.com).
  • Port Number: Nhập port
  • Http Request method: Chọn GET, POST, v.v.
  • Path: Nhập đường dẫn cần kiểm tra (ví dụ: /api/test).

Thêm tham số yêu cầu nếu cần. Bạn có thể thêm tham số khác như Parameters, Body Data, Files Upload,.. Alt text

Thêm Listener

Để hiển thị và phân tích kết quả, thêm Listener:

  • View Results Tree: Hiển thị thông tin chi tiết về từng yêu cầu và phản hồi.
  • Summary Report: Cung cấp thông tin tổng quan về kết quả kiểm tra.
  • Aggregate Report: Cung cấp số liệu thống kê tổng hợp cho tất cả các yêu cầu. Cách thêm:
  • Nhấp chuột phải vào Thread GroupAddListenerView Results Tree. .
  • Nhấp chuột phải vào Thread GroupAddListenerSummary Report. .
  • Nhấp chuột phải vào Thread GroupAddListenerAggregate Report. . Alt text

Chạy bài kiểm tra(Test)

  • Nhấp vào biểu tượng Start màu xanh lá cây trên thanh công cụ. Alt text
  • Quan sát kết quả trong các Listener đã thêm.: View Results, Summary ReportAggregate Report
  • Để chạy lại, nhấp chuột phải vào Listener và chọn Clear để làm mới.

Xem kết quả

Với thông số Number of Threads = 10Ramp-up period = 0 tương ứng với 10 user truy cập cùng lúc vào web server cấu hình(t3.small), kết quả như sau:

View Results Tree: Hiển thị thông tin chi tiết về từng yêu cầu và phản hồi.

Alt text

  • Load time(milliseconds): 557: Tốn 557 milliseconds để hoàn thành request(bao gồm thời gian kết nối, xử lý yêu cầu, và nhận phản hồi)
  • Response Code: 200 - Hệ thống trả về mã code Ok(200)
Summary Report: Cung cấp bản tóm tắt về kết quả kiểm tra.

Alt text

  • Samples: Số lượng request đã gửi đi.
  • Average, Min, Max: Thời gian phản hồi (trung bình,nhanh nhất, lâu nhất) của một mẫu tính bằng milliseconds
    • Average: 558: Trung bình tốn 558 milliseconds để hoàn thành 1 request.
    • Min: 556: Request có thời gian phản hồi nhanh nhất là 556 milliseconds.
    • Max: 560: Request có thời gian phản hồi lâu nhất là 560 milliseconds.
  • Error(%) = 0: Tất cả request đều thành công, không có request nào lỗi.
  • Throughput = 17.9: Có thể xử lý 17.9 request trong 1 giây.
  • Std. Dev = 1.17: Độ lệch chuẩn của thời gian phản hồi là 1.17. Độ lệch chuẩn càng nhỏ, hiệu năng càng ổn định. 1.17 cho thấy hiệu năng ổn.
Aggregate Report: Cung cấp số liệu thống kê tổng hợp cho tất cả các yêu cầu.

Alt text

Phân tích kết quả

Dựa vào các thông sau để phần tích kết quả và xác định hệ thống đang có vấn đề nào không:

  • Throughput(Thông lượng): Số lượng yêu cầu được xử lý mỗi giây.
  • Average Response Time(Thời gian phản hồi trung bình): Thời gian trung bình để hoàn tất một yêu cầu.
  • Error %(Lỗi %) : Tỷ lệ phần trăm yêu cầu không thành công.
  • Latency(Độ trễ): Thời gian giữa yêu cầu và phản hồi đầu tiên.

Lưu và chia sẻ Test Plan

  • Lưu kế hoạch kiểm tra của bạn dưới dạng tệp .jmx.
  • Chia sẻ tệp .jmx với các thành viên trong nhóm để sao chép các bài kiểm tra.

Kết luận

Bằng cách thực hiện các bước trên, bạn có thể kiểm tra hiệu suất và tải của ứng dụng web một cách hiệu quả. Hãy thử nghiệm với các thông số khác nhau để đánh giá khả năng chịu tải của hệ thống.