You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Groovy脚本在JMeter中生成无键名数组格式Payload

修正JMeter Groovy脚本以生成纯JSON数组Payload

你当前的代码会给数组添加外层"list"键,导致格式不符合要求。要生成纯JSON数组,只需直接将集合转换的结果传入JsonBuilder,不需要额外的键名包裹。

修正后的代码

import groovy.json.JsonBuilder
import groovy.json.JsonSlurper

// 解析前一个请求的响应数据获取列表(注意原代码变量名是listS,不是lists)
def listS = new JsonSlurper().parse(prev.getResponseData())
def jsonBuilder = new JsonBuilder()

// 直接将collect生成的数组传入JsonBuilder,无需外层"list"键
jsonBuilder listS.collect {
    [
        test: 123,  // 对应目标格式的test字段
        number: "welcome",  // 对应目标格式的number字段
        // 若需使用JMeter变量填充,取消注释以下行并替换固定值
        // carrierid: vars.get('carrierid'),
        // carrierType: vars.get('carrierType'),
        // cou: vars.get('ean'),
        // position: vars.get('position'),
        // taskId: vars.get('taskId'),
        // OQ: vars.get('OQ')
    ]
}

// 将生成的JSON字符串存入JMeter变量
vars.put('requestBody', jsonBuilder.toPrettyString())
log.info('Generated body: ' + vars.get('requestBody'))

关键修改点

  • 移除原代码中包裹数组的"list"闭包结构,直接把collect返回的数组传递给JsonBuilder,生成纯JSON数组格式。
  • 修正变量名错误:原代码使用lists但实际定义的是listS,确保变量引用一致。
  • 如需用JMeter变量动态填充字段,取消注释对应代码行,替换固定值即可。

内容的提问来源于stack exchange,提问作者UIExample Practice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:37:28