jMeter:将CSV文件中的多行加载到HTTP正文中

jMeter:将CSV文件中的多行加载到HTTP正文中,jmeter,Jmeter,我正在尝试向接受项目列表的服务构建HTTP请求,例如: { "user": "john", "table": "goods", "articles": [ {"id": "003", "quantity": 1}, {"id": "004", "quantity": 1}, {"id": "023", "quantity": 2}, {"id": "011", "quantity": 3},

我正在尝试向接受项目列表的服务构建HTTP请求,例如:

{
    "user": "john", 
    "table": "goods",
    "articles": [ 
        {"id": "003", "quantity": 1},
        {"id": "004", "quantity": 1},
        {"id": "023", "quantity": 2},
        {"id": "011", "quantity": 3},
        {"id": "063", "quantity": 1},
        {"id": "006", "quantity": 7}
    ]
}
我的目标是从CSV文件加载所有文章,如下所示:

我想要一些类似于:

{
    "user": "john", 
    "table": "goods",
    "articles": [ 
        {"id": "${id}", "quantity": ${qte}}
    ]
}
有人能帮我吗



更新:

德米特里解决了我的问题,谢谢! 我还问他如何向我的身体添加JSON对象(字典),他回答说我找到了一个解决方案,我将在这里分享,以防有人需要它。如果要添加:

"user": {"id": 1, "name": "John"}
为了满足您的身体需求,您只需执行以下操作:

def user = [:]

//populate user
user.put('id', 1)
user.put('name', 'John')

//add user entity to body content
content.put("user", user)

玩得开心

您将无法获得上面提供的内容,动态构建JSON请求体的唯一方法是使用

  • 将JSR223预处理器添加为要参数化的请求体的子级
  • 将以下代码放入“脚本”区域:

  • 就是这样,当您运行测试时,预处理器将从CSV文件生成请求主体,并将其动态添加到采样器中 参考资料:


    您好,谢谢您的回答。我想这正是我要寻找的。您能告诉我如何直接向脚本添加JSON实体吗?相反,我要加上:“user”:“john”:{“id”:1,“name”:“john”}
    def content = [:]
    content.put('user', 'john')
    content.put('table', 'goods')
    def articles = []
    new File('test.csv').readLines().each { line ->
        def article = [:]
        article.put('id', line.split(',')[0])
        article.put('quantity', line.split(',')[1])
        articles.add(article)
    }
    content.put('articles', articles)
    sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(content).toPrettyString(), '')
    sampler.setPostBodyRaw(true)