jMeter:将CSV文件中的多行加载到HTTP正文中
我正在尝试向接受项目列表的服务构建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},
{
"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请求体的唯一方法是使用
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)