![](/img/trans.png)
[英]How to read multiple values in one row from csv file to post body as variable in Jmeter
[英]JMeter: Need to send all values in a CSV File to different variables in a request body, based on some criteria
我有一個 CSV 文件,其中包含一些用戶詳細信息,例如他們的員工 ID (123456) 和電子郵件 ID (abc@xyz.com)。 用戶的員工 ID/電子郵件 ID 顯示在第一列中,第二列包含 ID 的類型(員工 ID/電子郵件 ID)。 如下所示:
ID | idType |
---|---|
123456 | 空的 |
abc@xyz.com | 電子郵件ID |
111111 | 空的 |
ghi@xyz.com | 電子郵件ID |
在 HTTP 請求 (JSON) 的正文中,我需要根據 CSV 文件中給出的 id 類型將這些值傳遞給不同的變量。 例如,如果 id 類型為 id empid,我需要將這些值傳遞給 empid 數組; 等等。 我希望傳遞的值如下所示:
{"empid":["123456", "111111"], "emailid":["abc@xyz.com", "ghi@xyz.com"]}
如果將值傳遞給單個變量,我可以使用用戶參數預處理器實現相同的目的,但這個要求有點棘手。 是否有任何方法可以將值以上述格式傳遞給請求?
您可以使用合適的JSR223 測試元素來做到這一點,即
添加JSR223 PreProcessor作為需要生成此 JSON 正文的請求的子項
將以下代碼放入“腳本”區域:
def lines = new File('/path/to/your/file.csv').readLines().drop(1) def empIds = lines.findAll { line -> line.split(',')[1] == 'empid' }.collect { line -> line.split(',')[0] } def emailIds = lines.findAll { line -> line.split(',')[1] == 'emailid' }.collect { line -> line.split(',')[0] } def payload = ['empid': empIds, 'emailid': emailIds] vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())
在 HTTP 請求采樣器的“Body Data”選項卡中使用${payload}
JMeter 變量引用(或您需要使用此 JSON 的任何地方)
更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.