簡體   English   中英

JMeter用戶定義的變量不會更改其值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM