如何从 JMeter 中的响应准备 JSON 负载

How to prepare the JSON payload from the response in JMeter

我收到一个 API 的响应,需要根据该响应准备有效负载。 例如响应如

    {
      "data": {
        "total_count": 5,
        "userIds": [1,2,3,4,5]
   }

需要从对其他API的响应中提取有效负载

{
"users": [
      {
        "user_id": 1,
        "invite_amount": 100,
      },
      {
        "user_id": 2,
        "invite_amount": 100
      },
      {
        "user_id": 3,
        "invite_amount": 100
      },
      {
        "user_id": 4,
        "invite_amount": 100
      },
      {
        "user_id": 5,
        "invite_amount": 100
      }
    ]
}

以上payload需要发送给另一个API

看看thislink

基本上你需要使用JMeter JSON Extractor

  1. 添加 JSR223 PostProcessor 作为上述 returns JSON

    请求的子项
  2. 将以下代码放入“脚本”区域:

    def userIds = new groovy.json.JsonSlurper().parse(prev.getResponseData()).data.userIds
    
    def payload = [:]
    
    def users = []
    userIds.each { userId ->
        def user = [:]
        user.put('user_id', userId)
        user.put('invite_amount', 100)
        users.add(user)
    }
    payload.put('users', users)
    
    vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())
    
  3. 就是这样,您可以在需要的地方将生成的有效负载值引用为 ${payload}

更多信息: