Cách set biến và sử dụng biến (variable) trong Jmeter

Có rất nhiều thời điểm bạn cần dùng đến biến, ví dụ như:

  • Có 1 thông tin bạn muốn sử dụng lại nhiều lần ở test plan
  • Có thông tin bạn extract từ 1 điểm thời điểm nào đó khi run test plan rồi dùng sau đó. Ví dụ: data từ response của Request trước là đầu vào của Request sau.

Ở trong Jmeter, có 2 nơi set biến và lấy giá trị biến khác nhau: Jmeter UI và script.

  • Jmeter UI là những component mà thường xuất hiện dưới dạng config: như User Defined Variables, CSV Data Set Config …
  • Jmeter script là những component mà bạn sẽ viết code vào trong đó, điển hình là những component nào bắt đầu bằng JSR223: JSR223 Sampler, JSR223 Pre-Processor, JSR223 Post-Processor, JSR223 Assertion.

I. Cách set biến

1. Trên Jmeter UI

Ở trên UI, biến thường ở dạng text (String) , chứ nó ko ở nhiều dạng data-type khác.

  • User Defined Variables (static variable): Đây thường chứa các biến sử dụng cho toàn bộ test plan, ít thay đổi, gồm có: variable_name & value
  • Các component khác: chỉ điền variable_name còn value thì ở dạng chưa biết trước. Ví dụ: CSV Data Set Config, mỗi biến tương ứng với mỗi cột trong file csv.

2. Trên Jmeter script

Trên script bạn thoải mái hơn khi có thể set biến với nhiều data type khác nhau, ví dụ: text, number, List, Map…Link API docs

  • Text dùng vars.put("Variable_name", "value")
  • Data-type khác dùng vars.putObject("Variable_name", object)

II. Cách gọi biến

1. Trên Jmeter UI

Dùng syntax ${variable_name}

2. Trên Jmeter script

  • Text dùng vars.get("Variable_name")
  • Data-type khác dùng vars.getObject("Variable_name")

III. Bản chất biến vars

Biến vars là 1 reference của class JMeterVariables, bạn có thể xem ở github. Bên trong nó chứa 1 cái Map<key,value> để lưu các biến local cho thread. Nó sẽ có các method sau đây:

Điểm danh cách dùng của những method trong này

  • entrySet() —> trả lại list các biến trong Thread, nó sẽ gồm các biến default (có sẵn trong tất cả các Thread) và các biến do user định nghĩa
log.info(""+ vars.entrySet())

[
JMeterThread.last_sample_ok=true, 
__jm__Thread Group__idx=0, 
START.HMS=064759, 
admin=admin, 
language=[English, Vietnamese, French], 
START.YMD=20220406, 
START.MS=1649202479608, 
TESTSTART.MS=1649202765845, 
password=test1234, 
__jmeter.U_T__=Thread Group 1-1, 
person={name=Jerry, age=42, city=New York}, 
host=example.com, 
name=lucas, JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@7974e1a4, __jmv_SAME_USER=true, age=23
]
  • getIteration() —> lấy số lượt loop count ở thời điểm hiện tại
  • getThreadName() —> trả lại tên của Thread = Thread Group name + số thứ tự
  • remove(String key) —> remove 1 biến nào đó.
  • put(), putObject(), get(), getObject() —> đã nói ở mục I và II ở phía trên
  • putAll() —> là bạn gộp 2 cái Map vào nhau, xem lại kiến thức ấy ở đây. Bạn nào ko biết về Map trong java thì nên bỏ qua
  • isSameUserOnNextIteration() —> boolean true if user is the same on next iteration of Thread loop, false otherwise, ko thấy có tác dụng gì lắm.
  • getIterator() —> trả lại Iterator dạng read-only, giúp chúng ta duyệt từng phần tử trong Map. Bạn nào ko biết về java thì bỏ qua.
  • incIteration() —> Increase the current number of iterations, chưa thấy có tác dụng gì lắm.

IV. Tổng kết

Biến (variable) trong Jmeter rất quan trọng, đã làm đến Jmeter là bạn phải thành thạo cách sử dụng biến trên UI và script để phục vụ cho công việc. Đừng quên 1 like nếu bạn thấy hữu ích. Thanks

5 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments