JMeter Series – Hướng dẫn sử dụng Timer trong JMeter

Hits: 670

5/5 - (2 bình chọn)


Chào các bạn, cũng lâu rồi mình mới ra bài viết mới vì khoảng thời gian vừa rồi mình khá bận cả trong công việc và cuộc sống.
Nhưng bây giờ mình đã trở lại rồi đây, hy vọng rằng các bạn cùng tiếp tục đón nhận và chia sẻ nhé.

Tiếp tục với JMeter Series quen thuộc, bài viết sau đây mình sẽ giới thiệu và hướng dẫn một cách chi tiết cách sử dụng Timer trong JMeter.

1. JMeter Timer là gì ?

Các chuỗi request trong jmeter thường chạy nối tiếp nhau mà không có bất kỳ độ trễ thời gian nào.
Điều này là không thực tế về bản chất vì người dùng bình thường sẽ mất khoảng thời gian để đọc hoặc suy nghĩ giữa việc thực hiện mọi hành động.

Thời gian đó được gọi là “Think Time” và nó nên được thêm vào để tạo tập lệnh thực tế và đáng tin cậy hơn.
Để thực hiện các hoạt động như vậy, JMeter đã cung cấp 9 loại Timer và người dùng có thể chọn loại phù hợp với tình huống khác nhau:

1. Constant TimerTrì hoãn từng yêu cầu của người dùng trong cùng một khoảng thời gian cố định.
Đây là loại timer đơn giản và thường được sử dụng nhất.
2. Uniform Random TimerTrì hoãn từng yêu cầu của người dùng trong khoảng thời gian ngẫu nhiên.
3. Precise Throughput TimerCho phép người dùng đánh giá thông lượng cần thiết để chạy test. Người dùng có thể setting cho mỗi request thông lượng được tính bằng giờ/phút/giây
4. Constant Throughput TimerCũng giống như Precise Throughput Timer, ngoại trừ việc nó có ít cài đặt hơn.
Về cơ bản, nó bám sát ngưỡng chịu tải rất chặt chẽ, và không cho phép phương sai linh hoạt của Precise Throughput Timer.
5. Gaussian Random TimerTrì hoãn từng yêu cầu của người dùng trong khoảng thời gian ngẫu nhiên.
Bộ đếm thời gian này hoạt động trên chức năng phân phối Normal hoặc Gaussian.
6. JSR223 TimerĐây là bộ hẹn giờ linh hoạt nhất vì nó cho phép bạn viết kịch bản (script) cho sự trì hoãn và bạn có thể thực hiện điều này đơn giản hoặc phức tạp tùy theo nhu cầu của mình.
7. Poisson Random TimerCũng gần tương tự như Gaussian Random Timer. Poisson Random Timer cung cấp thời gian trễ giữa các yêu cầu trong một khoảng thời gian ngẫu nhiên. Tổng thời gian trễ là tổng của cả độ trễ Lambda (tính bằng mili giây) và độ trễ không đổi (tính bằng mili giây). Việc tạo số ngẫu nhiên dựa trên trên phân phối Poisson.
8. Synchronizing TimerChỉ có 1 tham số là “Number of Simulated Users to Group by”. Số được cung cấp trong tham số này sẽ là số luồng mà nó sẽ đợi để nhóm và phát hành.
9. BeanShell TimerNgười dùng viết sript để thực hiện logic trì hoãn.

2. Hướng dẫn sử dụng Timer trong JMeter

2.1. Constant Timer

Properties:

  • Thread Delay (in miliseconds): thời gian trì hoãn giữa các Request, không đổi

Thực hiện:
Thêm Request: Tạo 2 Request (Request 1, Request 2) thực hiện mở trang https://google.com
Thêm Constant Timer: Click phải vào Thread Group > Chọn Add > Chọn Timer > Chọn Constant Timer (chỉnh Thread Delay là 3000 milliseconds = 3 giây)
Thêm Listener: Click phải vào Thread Group > Chọn Add > Chọn Listener > Chọn View Results Tree để theo dõi kết quả

Hướng dẫn sử dụng Timer trong JMeter - Constrant Timer
Hướng dẫn sử dụng Timer trong JMeter – Constrant Timer
Hướng dẫn sử dụng Timer trong JMeter - Add Constrant Timer
Hướng dẫn sử dụng Timer trong JMeter – Add Constrant Timer
Hướng dẫn sử dụng Timer trong JMeter - Config Constrant Timer
Hướng dẫn sử dụng Timer trong JMeter – Config Constrant Timer

Chọn View Results Tree, nhấn Start và theo dõi kết quả theo thời gian:
Sau 3 giây (từ giây thứ 3) Request 1 được thực hiện và sau 3 giây tiếp theo (từ giây thứ 6) Request 2 được thực hiện.

Hướng dẫn sử dụng Timer trong JMeter - Constrant Timer - Run
Hướng dẫn sử dụng Timer trong JMeter – Constrant Timer – Run
  • Lưu ý: Constrant Timer đặt ở những vị trí sau thì kết quả run hoàn toàn giống nhau
Constant Timer ngoài Thread Group
Ngoài Thread Group
Constant Timer trên các Request
Trên các Request
Constant Timer giữa các Request
Giữa các Request
Constant Timer dưới các Request
Dưới các Request
  • Constrant Timer nếu được đặt trong Request 1 hoặc trong Request 2 thì có kết quả khác như sau

Request 1: sau 3 giây Request 1 được thực hiện rồi đến Request 2 được thực hiện.
Request 2: Request 1 được thực hiện rồi sau 3 giây Request 2 được thực hiện.

Hướng dẫn sử dụng Timer trong JMeter - Constrant Timer trong Request 1
Hướng dẫn sử dụng Timer trong JMeter – Constrant Timer trong Request 1
Hướng dẫn sử dụng Timer trong JMeter - Constrant Timer trong Request 2
Hướng dẫn sử dụng Timer trong JMeter – Constrant Timer trong Request 2

2.2. Uniform Random Timer

Thread Delay Properties:

  • Random Delay Maximum (in milliseconds): thời gian tối đa để trì hoãn, được lấy ngẫu nhiên
  • Constrant Delay Offset (in milliseconds): thời gian trì hoãn được bổ sung, không đổi

Tổng thời gian trì hoãn = Random Delay Maximum + Constrant Delay Offset

Thực hiện:
Thêm Request: Tạo 5 Request (Request 1 ~ Request 5) thực hiện mở trang https://google.com
Thêm Uniform Random Timer: Click phải vào Thread Group > Chọn Add > Chọn Timer > Chọn Uniform Random Timer (Setting Random Delay Maximum = 3000, Constrant Delay Offset = 1000)
Thêm Listener: Click phải vào Thread Group > Chọn Add > Chọn Listener > Chọn View Results in Table

Hướng dẫn sử dụng Timer trong JMeter - Add Request
Hướng dẫn sử dụng Timer trong JMeter – Add Request
Hướng dẫn sử dụng Timer trong JMeter - Add Uniform Random Timer
Hướng dẫn sử dụng Timer trong JMeter – Add Uniform Random Timer
Hướng dẫn sử dụng Timer trong JMeter - Config Uniform Random Timer
Hướng dẫn sử dụng Timer trong JMeter – Config Uniform Random Timer
Hướng dẫn sử dụng Timer trong JMeter - Add Listener
Hướng dẫn sử dụng Timer trong JMeter – Add Listener

Chọn View Results in Table, nhấn Start và theo dõi kết quả theo thời gian:
Có thể thấy giữa các request thời gian trì hoãn không nhỏ hơn 1000 mili giây (Constrant Delay Offset) và không lớn hơn 4000 mili giây (Constrant Delay Offset + Random Delay Maximum)

  • Request 1: 20:55:20.278
  • Request 2: 20:55:23.008
  • Request 3: 20:55:26.336
  • Request 4: 20:55:29.295
  • Request 5: 20:55:30.757
Hướng dẫn sử dụng Timer trong JMeter - Start
Hướng dẫn sử dụng Timer trong JMeter – Start

2.3. Precise Throughput Timer

Properties:
Delay threads to ensure target throughput: cài đặt số lượng thread được trì hoãn để đảm bảo ngưỡng chịu tải mong muốn.

  • Target throughput: ngưỡng chịu tải mong muốn.
  • Throughput period: thời gian chịu tải.
  • Test duration: thời gian test.

Batched depatures: cài đặt các phần chạy.

  • Number of threads in the part (threads): số lượng thread trong mỗi phần.
  • Delay between threads in the part (ms): thời gian trì hoãn giữa mỗi thread trong từng phần.
  • Test duration: thời gian test.

Setting to ensure repeatable sequence: cài đặt để đảm bảo trình tự lặp lại.

  • Random seed (change from 0 to random): ngẫu nhiên từ 0 đến số random.
Hướng dẫn sử dụng Timer trong JMeter - Add Precise Throughput Timer
Hướng dẫn sử dụng Timer trong JMeter – Add Precise Throughput Timer

2.4. Constant Throughput Timer

Constant Throughput Timer (bộ hẹn giờ thông lượng không đổi) được sử dụng như một yếu tố định hướng mục tiêu giúp đạt được thông lượng mong muốn (tổng số yêu cầu). Bộ hẹn giờ này cố gắng duy trì thông lượng không đổi trong suốt quá trình thử nghiệm và đạt được mục tiêu.

Properties:
Delay before each affected sampler: thời gian trì hoãn trước mỗi request bị ảnh hưởng

  • Target throughput (in samples per minutes): thông lượng mục tiêu (tính bằng số request mỗi phút)
  • Caculate Throungput based on: tính toán thông lượng dựa vào
    this thread only: chỉ thread này
    all active threads: tất cả thread đang hoạt động
    all active threads in current thread group: tất cả thread đang hoạt động trong nhóm thread này
    all active threads (shared): tất cả thread đang hoạt động (được chia sẻ)
    all active threads in current thread group (shared): tất cả thread đang hoạt động trong nhóm thread này (được chia sẻ)
Constant Throughput Timer

2.5. Gaussian Random Timer

Gaussian Random Timer được sử dụng để tạo và thêm độ trễ ngẫu nhiên trước khi thực hiện bộ lấy mẫu. Bộ đếm thời gian này dựa trên Hàm phân phối bình thường hoặc Gaussian. 

Thread Delay Properties:

  • Deviation (in millisecond): Độ lệch (tính bằng mili giây), số cho thấy độ trễ có thể lệch bao nhiêu so với độ lệch đã cho đối với phạm vi cao hơn và thấp hơn.
  • Constant Delay Offset (in millisecond): Độ trễ liên tục (tính bằng mili giây), số cho thấy độ trễ không đổi sẽ được thêm vào số ngẫu nhiên được tạo bởi Hàm Gaussian trong phạm vi giá trị độ lệch đã cho.
Gaussian Random Timer

2.6. JSR223 Timer

Đang cập nhật…

2.7. Poisson Random Timer

Đang cập nhật…

2.8. Synchronizing Timer

Đang cập nhật…

2.9. BeanShell Timer

Đang cập nhật…

3. Lời kết

Sau khi đã hiểu rõ và thực hành các loại Timer nói trên thì bạn có thể sử dụng trong các dự án của mình một cách hữu dụng đấy.
Cám ơn bạn đã dành thời gian để đọc bài viết này. Hẹn gặp lại các bạn trong các bài viết tiếp theo của JMeter Series.
Nếu có thắc mắc hoặc trao đổi vui lòng để lại bình luận bên dưới nhé !

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

RSS
Follow by Email
LinkedIn
Share
Instagram
Scroll to Top
Scroll to Top