Timers: Constant, Gaussian Random, Uniform

Timers cho phép JMeter trì hoãn giữa mỗi request. Một Timers có thể giải quyết vấn đề quá tải của máy chủ. Trong thực tế, client có thể truy cập đến website ở các khoảng thời gian khác nhau. Vì vậy, Timer sẽ giúp mô phỏng các hành vi theo thời gian thực.

Timers là gì?

Theo mặc định, JMeter gửi nhiều requests mà không tạm dừng giữa mỗi request. JMeter có thể áp đảo máy chủ bằng cách thực hiện nhiều requests trong một khoảng thời gian ngắn.

Hãy tưởng tượng rằng bạn gửi hàng ngàn request đến một máy chủ web được kiểm thử trong vài giây. Điểu gì sẽ xảy ra?

Sau đây là một số loại timer phổ biến trong Jmeter:

Constant Timer

Constant timer trì hoãn mỗi user request trong cùng một khoảng thời gian.

Gaussian Random Timer

Gaussian Random Timer trì hoãn mỗi user request trong một khoảng thời gian ngẫu nhiên.

Parameters:

Thuộc tính Mô tả
Name Tên mô tả cho timer này được hiển thị trong tree
Deviations (milliseconds) Một parameter của hàm phân phối Gaussian
Constant Delay Offset (milliseconds) Giá trị bổ sung tính bằng mili giây

Vì vậy, tổng độ trễ được mô tả như hình dưới đây:

Uniform Random Timer:

Uniform random timer làm chậm trễ mỗi user request trong một khoảng thời gian ngẫu nhiên.

Parameters:

Thuộc tính Mô tả
Name Tên mô tả cho timer này được hiển thị trong tree
Random Delay Maximum Số lượng ngẫu nhiên tối đa của mili giây để trì hoãn
Constant Delay Offset (milliseconds) Giá trị bổ sung tính bằng mili giây

Tổng độ trễ là tổng của giá trị ngẫu nhiên và giá trị bù.

BeanShell Timer

BeanShell Timer có thể được sử dụng để tạo thời gian trễ giữa mỗi user request

BSF Timer

BSF Timer có thể được sử dụng để tạo độ trễ giữa mỗi user request bằng ngôn ngữ kịch bản BSF.

JSR223 Timer

JSR223 Timer có thể được sử dụng để tạo độ trễ giữa mỗi user request bằng ngôn ngữ kịch bản JSR223

Cách sử dụng Constant Timer

Sử dụng Constant Timer để đặt độ trễ cố định giữa các user request với google.com.

Hãy bắt đầu với một kịch bản kiểm thử đơn giản:

  1. JMeter tạo một user request tới http://www.google.com 100 lần
  2. Độ trễ giữa mỗi user request là 5000 ms

Dưới đây là quá trình thực tế:

Pre-condition:

Chúng ta sử dụng lại Bước 1 và Bước 2 trong bài hướng dẫn Sử dụng JMeter cho Performance Testing.

Bước 1: Thêm Thread Group

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

Trong bảng điều khiển Thread Group, nhập Thread Properties như sau:

Cài đặt này cho phép JMeter tạo một user request tới http://www.google.com trong 100 lần.

Bước 2: Thêm JMeter elements

  • Thêm HTTP request default
  • Thêm HTTP request

Bước 3: Thêm Constant Timer

Nhấp chuột phải vào Thread Group -> Timer -> Constant Timer

Cấu hình độ trễ của luồng 5000 mili giây.

Bước 4: Thêm View Results in Table

Xem Results in Table hiển thị kết quả kiểm tra ở định dạng bảng.

Nhấp chuột phải vào Add -> Listener -> View Result in Table

Xem kết quả trong Bảng hiển thị như hình dưới đây:

Bước 5: Chạy kiểm thử

Khi bạn đã sẵn sàng để chạy kiểm thử, hãy nhấp vào nút Run trên thanh menu hoặc nhấn phím tắt Ctrl + R

Đây là kết quả:

Trong hình trên, ta cùng phân tích Sample 2

  • Start time là 22: 05: 01.866
  • Sample Time của Sample 2 là 172 ms
  • Constant Timer: 5000 ms (như đã cấu hình)
  • End Time của sample này là = 22: 05: 01.866 + 172 + 5000 = 22:05:07.038

Vì vậy, sample 3 nên bắt đầu tại thời điểm là 22:05:07.039 (Như hình trên).

Độ trễ của mỗi mẫu là 5000 ms.

Nếu bạn thay đổi Constant Timer bằng 0, bạn sẽ thấy kết quả được thay đổi.

Phâm tích Sample 1:

  • Start time là 22: 17: 39.141
  • Sample Time của sample 2 là 370 ms
  • Constant Timer: 0 ms (như đã cấu hình)
  • End Time của Sample này là = 22: 17: 39.141+ 370 + 0 = 22:17:39.511

Vì vậy, Sample 2 nên bắt đầu tại thời điểm là 22:17:39.512 (Hiển thị như hình trên)

Xử lý sự cố:

Nếu bạn gặp vấn đề trong khi chạy kịch bản trên, hãy làm như sau:

  1. Kiểm tra xem bạn đang kết nối với internet thông qua proxy. Nếu có, loại bỏ proxy.
  2. Khởi động JMeter.
  3. Mở TimerTestPlan.jmx trong Jmeter.
  4. Nhấp đúp chuột vào Thread Group -> View Result in Table.
  5. Chạy kiểm thử.

-------------------#####-------------------

Chuỗi bài viết được tham khảo hoặc dịch lại từ Guru99.

Khóa học nên xem

Nguồn: freetuts.net