簡體   English   中英

JMeter:需要根據某些標准將 CSV 文件中的所有值發送到請求正文中的不同變量

[英]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 測試元素來做到這一點,即

  1. 添加JSR223 PreProcessor作為需要生成此 JSON 正文的請求的子項

  2. 將以下代碼放入“腳本”區域:

     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())
  3. 在 HTTP 請求采樣器的“Body Data”選項卡中使用${payload} JMeter 變量引用(或您需要使用此 JSON 的任何地方)

更多信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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