Nội dung bài học

Bài viết này Anh Tester sẽ hướng dẫn các bạn Kiểm thử hiệu năng của một website có đáp ứng được tải cao hay không với công cụ JMeter

1. Kiểm thử hiệu năng

Kiểm thử hiệu năng là rất quan trọng, dùng để xác định ứng dụng web của mình có đáp ứng được tải cao hay không. Apache JMeter là một công cụ phổ biến dùng để kiểm thử hiệu năng, nó có một số lợi thế như sau:

  • JMeter có thể được sử dụng để kiểm tra hiệu năng của cả resources tĩnh như JavaScript và HTML, cũng như các resources động như JSP, Servlets và AJAX.
  • JMeter có thể cho biết số lượng người dùng đồng thời tối đa mà trang web của bạn có thể xử lý
  • JMeter cung cấp một loạt các phân tích đồ họa của các báo cáo hiệu suất.

Kiểm thử hiệu năng JMeter bao gồm:
JMeter

  • Load Testing: Mô phỏng đồng thời nhiều người dùng truy cập một trang Web nào đó.
  • Stress Testing: Mỗi máy chủ (server) web có khả năng tải tối đa. Khi tải vượt quá giới hạn, máy chủ sẽ bắt đầu phản hồi chậm và tạo ra lỗi. Mục đích của Stress Testing là tìm chịu tải tối đa mà máy chủ web có thể xử lý.

Ví dụ mô phỏng Load Testing:

JMeter

2. Cách tạo Test Plan trong JMeter

Ví dụ: Chúng ta thực hiện kiểm tra hiệu năng cho trang web Google.com với 100 người dùng. Trước khi kiểm thử hiệu năng cho nó thì chúng ta cần xác định:

  • Normal Load: Số người dùng trung bình truy cập trang web.
  • Heavy Load: Số lượng người dùng tối đa truy cập trang web.
  • Mục tiêu của bạn trong kiểm thử này là gì?

Dưới đây là các bước kiểm tra hiệu năng đơn giản:

JMeter

Bước 1: Add Thread Group

  1. Khởi động JMeter
  2. Chọn Test Plan
  3. Add Thread Group

Click chuột phải "Test Plan" và thêm thread group mới: Add -> Threads (Users) -> Thread Group

JMeter

Thread Group bạn nhập như sau:

JMeter

  • Number of Threads: 100 (Số lượng người dùng truy cập trang web: 100)
  • Loop Count: 10 (Thời gian để thực hiện test)
  • Ramp-Up Period: 100

Thread Count và Loop Counts khác nhau, cụ thể: 

JMeter
Ramp-Up Period trong JMeter cho biết việc trì hoãn trong bao lâu giữa các user.
Ví dụ: Nếu có 100 user và Ramp-Up Period là 100 giây, thì độ trễ giữa các user sẽ là 1 giây (100 giây / 100 user) 

JMeter

Bước 2: Add JMeter elements

  • HTTP request Default

Click chuột phải Thread Group and chọn: Add -> Config Element -> HTTP Request Defaults.

JMeter

Ở ví dụ này chúng ta đang thực hiện test trang Google.com (http://www.google.com) nên chúng ta sẽ điền thông tin như sau: 

JMeter

  • HTTP Request

Click chuột phải vào Thread Group and select: Add -> Sampler -> HTTP Request.

JMeter

Trong HTTP Request, trường Path cho biết yêu cầu URL nào bạn muốn gửi đến máy chủ Google. Ví dụ: Nếu bạn nhập "calendar" trong trường Path. JMeter sẽ tạo yêu cầu URL http://www.google.com/calendar đến máy chủ Google


Bước 3: Add Graph result

Click chuột phải vào Test Plan: Add -> Listener -> Graph Results

JMeter


Bước 4: Run Test và xem kết quả

Ấn nút Run (Ctrl + R) trên Toolbar để bắt đầu chạy. Bạn sẽ nhìn thấy kết quả test hiển thị trên Graph.

Ở dưới cùng của hình ảnh, bạn sẽ thấy có các số liệu thống kê và được thể hiện bằng màu sắc:

  • Đen: Tổng số Sample hiện tại được gửi.
  • Màu xanh dương: Trung bình hiện tại của tất cả các Sample được gửi.
  • Màu đỏ: Độ lệch chuẩn hiện tại.
  • Màu xanh lá cây: Tỷ lệ throughput mà đại diện cho số lượng yêu cầu trên mỗi phút mà máy chủ xử lý. 

JMeter

Để phân tích hiệu năng của máy chủ kiểm thử, bạn nên chú ý đến 2 thông số sau:

  • Throughput
  • Deviation

Throughput là thông số quan trọng nhất. Nó đại diện cho khả năng của máy chủ để xử lý một tải nặng. Throughput càng cao thì hiệu suất máy chủ càng tốt.

Trong kiểm thử này, Throughput của máy chủ Google là 598.695/phút. Điều đó có nghĩa là máy chủ Google có thể xử lý 598.695 yêu cầu trên mỗi phút. Nếu giá trị này càng cao thì máy chủ Google có hiệu suất tốt

Deviation được hiển thị bằng màu đỏ - nó cho biết độ lệch so với mức trung bình. Càng nhỏ càng tốt.

Trên đây là cách sử dụng JMeter cho Perfomance Testing và Load Testing. Mong bài viết này sẽ có ích cho bạn trong quá trình tìm hiểu JMeter.

Tài liệu tham khảo:
https://www.guru99.com/jmeter-performance-testing.html


Cộng đồng Automation Testing Việt Nam

🌱 Facebook Fanpage: Anh Tester
🌱 Telegram
Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu


Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ kiến thức lên trang

Bạn có thể đăng bài để chia sẻ kiến thức, bài viết của chính bạn lên trang Anh Tester Blog

Danh sách bài học