【问题标题】:JMeter construct payload from csv fileJMeter 从 csv 文件构造有效载荷
【发布时间】:2021-12-08 17:10:50
【问题描述】:

我需要从 CSV 文件构造 HTTP 请求正文。 CSV 文件中有 3 列(userID、SessionId、groupId)和 1000 个用户 ID。 我正在测试的 API 需要批量加载,每个批量包含 200 个用户 ID。
下面是payload的示例:

{

  "data": [
    {
      "username": "<userID>",
      "remoteMeetingGroupName": "<groupID>"
    },
    {
      "username": "<userID>",
      "remoteMeetingGroupName": "<groupID>"
    },
    ...
  ]
}

因此,根据每个批量 200 个用户的要求,我需要创建 5 个并发用户,每个用户在 CSV 文件中包含 200 个用户。 ForEach 控制器能够做到这一点吗?谁能给点提示?谢谢。

【问题讨论】:

标签: jmeter


【解决方案1】:

可以使用 JSR223 PreProcessor 从 CSV 文件构造请求正文,例如:

def start = (vars.get('__jm__Thread Group__idx') as int)

def offset = (start + 1) * 200

def payload = [:]
def data = []

start.upto(offset, { index ->
    def lineFromCsv = new File('test.csv').readLines().get(index)
    data.add(['username': lineFromCsv.split(',')[0]])
    data.add(['remoteMeetingGroupName': lineFromCsv.split(',')[1]])

})

payload.put('data', data)

vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())

在需要时将生成的请求正文称为${payload}

更多信息:

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 2011-10-01
    • 2016-03-04
    • 1970-01-01
    • 2023-01-05
    • 2011-09-23
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多