Trong Jmeter có 1 số loại Timer giúp việc tạo ra các test plan mà gần với scenario thực tế của end-user. End-user có thể hành động nhanh chậm, chờ đợi, hoặc dừng lại đọc thông tin trên web trước khi có action tiếp theo. Nếu chúng ta giả lập test plan càng giống thực tế thì kết quả của performance test càng đáng tin cậy. Tuy nhiên, jmeter cung cấp nhiều loại Timer khác nhau, có loại rất dễ hiểu, nhưng có loại cũng không dễ chút nào.
Nội dung bài viết
Thread Group > Add > Timer

Timer sẽ có tác dụng vào các request mà trong cùng tập hợp với nó.

Req1 và Req2 đều bị ảnh hưởng
Req1 và Req2 bị ảnh hưởngReq3 không bị ảnh hưởngVí dụ 3: Timer nằm trong 1 request

Req2 bị ảnh hưởng

Tổng thời gian delay = Constant Delay Offset + Random Delay Maximum
Giả sử:
2000 < delay time < 5000Ví dụ:


Gaussian graph là cái histogram/curve mà chúng ta có học ở xác suất thống kê, nó chính là cái tháp hình chuông. Với điểm nằm giữa là Constant Delay Offset , còn Deviation là độ biến thiên sang 2 bên.
Như vậy thời gian delay sẽ là: offset - deviation <= delay <= offset + deviation . Tuy nhiên nó sẽ phân bổ phần nhiều vào khu vực Offset thay vì 2 bên rìa của cái chuông.
Viết code groovy để cho biết là sẽ delay bao lâu. Mấu chốt là phải return được 1 number. Ví dụ:

Nếu logic của bạn phức tạp thì bạn có thể thêm logic vào trong đó. Ví dụ bạn muốn kiểm tra xem tên của request trước khi áp dụng con số Timer

Kết quả là:
1
switch (ctx.getCurrentSampler().getName()) {
2
case "Req1":
3
return 2000
4
break
5
case "Req2":
6
return 5000
7
break
8
default:
9
return 0
10
}
Đây là cái Timer khá phức tạp, nó cũng như Gaussian Timer ở trên, tuy nhiên nó phân bổ theo mô hình gọi là Poisson Distribution. Mình cũng cố đọc xem nó là cái quái gì mà đau đầu, nhức mắt quá. =))) Bạn nào muốn đọc tí để thử thì tự google nhé. Mình không nghĩ là mình cần dùng đến loại Timer này, phức tạp quá là phức tạp.

Loại này giống như JSR223 Timer ở phía trên, điểm khác là chúng ta viết code Java ở đây. Tuy nhiên BeanShell được coi là performace kém hơn so với JSR223 Timer nên giờ chẳng còn ai dùng BeanShell.
Dùng Timer là 1 việc cần thiết cho performace, giúp tạo ra test plan giống với các case thực tế, nhưng bạn cũng không cần phải học hết tất cả các loại Timer. Chúc các bạn sớm master Jmeter, chứ mình chịu, đau đầu đau mắt quá. @@
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE