[英]JMeter- user defined variable not changing its value
我有一個包含一個線程組的測試計划,其中一個HttpRequest采樣器,JRS223PreProcessor和一個csv數據集配置。 我需要在運行時從csv中讀取第2列的當前值,並在我的JSR223 PreProcessor中使用它。 為了做到這一點,我在測試計划中定義了一個變量:
名稱$ {__ CSVRead(C:/Users/marial/Desktop/csvs/csv_hotelCodeReq.txt,2)
在JSR223 PreProcessor中,我這樣處理:
String name= new String(vars.get("name"));
我希望此值在讀取的每一行都發生變化,但是沒有,它總是采用遇到的第一個值。 有人知道為什么嗎?
更具體地說,如果我有csv文件:
1,2,FIRSTNAME1:lastName1
3,2,FIRSTNAME2:lastName2
和循環計數= 2,用戶= 1比名稱的值是:
loop1:firstName1:lastName1
loop2:firstName1:lastName1
其他值已正確處理,因此轉到下一行。
根據用戶定義的變量文檔:
請注意,測試計划中的所有UDV元素-無論它們在何處-都將在開始時進行處理。
因此,您的__CSVRead()函數 僅在測試啟動期間進行評估,並且僅評估一次
解決方案是將函數移到JSR223 PreProcessor的 “ Parameters”部分中,您將能夠在Groovy腳本中以Parameters
訪問函數輸出,例如:
String name = Parameters
演示:
這樣,每次調用JSR223預處理器都將執行__CSVRead()函數。 查看Apache Groovy-為什么和應該如何使用它,以了解有關JMeter中Groovy腳本的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.