如何在JMETER工具中的单个HTTP请求中从CSV文件发送多个JSON数据 [英] How to send multiple JSON data from CSV file in single HTTP request in JMETER tool
问题描述
我的JSON结构是:
{
"ID": "1",
"DATE": "2",
"VILLA": [{
"HSENO":"${HSENO}",
"STREETNO": "${STREETNO}",
"CITY": "${CITY}",
"STATE": "${STATE}",
}],
"FLATS": []
}
我的Excel具有Villa的1000个数据(1000 HSENO,1000 STREETNO,1000 CITY,1000 STATE). 在Jmeter中,我该如何读取这1000个数据?发出HTTP SINGLE请求.
My Excel Have 1000 datas (1000 HSENO, 1000 STREETNO, 1000 CITY, 1000 STATE) for Villa's. In Jmeter how can I read these 1000 datas & make HTTP SINGLE request.
我已经引用了bean脚本,但仍然无法成功.
I have referred beanshell script but still couldn't succeed.
请帮帮我.谢谢
推荐答案
-
假定您在JMeter安装的"bin"文件夹中有
test.csv
文件,如下所示:
house1,street1,city1,state1
house2,street2,city2,state2
house3,street3,city3,state3
将以下代码放入脚本"区域:
Put the following code into "Script" area:
def builder = new groovy.json.JsonBuilder()
@groovy.transform.Immutable
class VILLA {
String HSENO
String STREETNO
String CITY
String STATE
}
def villas = new File("test.csv")
.readLines()
.collect { line ->
new VILLA(line.split(",")[0], line.split(",")[1], line.split(",")[2], line.split(",")[3]) }
builder(
ID:1,
DATE: 2,
VILLA: villas.collect(),
FLATS:[]
)
log.info(builder.toPrettyString())
vars.put("payload", builder.toPrettyString())
您应该在 jmeter.log 文件中看到生成的请求主体,并且应该能够在需要传递生成的数据的地方使用${payload}
JMeter变量.
You should see generated request body in jmeter.log file and should be able to use ${payload}
JMeter Variable where required to pass the generated data.
更多信息:
- Apache Groovy - Why and How You Should Use It
- Groovy: Parsing and producing JSON
- JsonBuilder
这篇关于如何在JMETER工具中的单个HTTP请求中从CSV文件发送多个JSON数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!