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ưởngReq1
và Req2
bị ảnh hưởngReq3
không bị ảnh hưởngVí dụ 3: Timer nằm trong 1 request
Req2
bị ảnh hưởngTổng thời gian delay = Constant Delay Offset + Random Delay Maximum
Giả sử:
2000 < delay time < 5000
Ví 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