Groovy 如何在jmeter post请求中发送ID数组(存储在csv中)
我有getuserdetails api,需要在其中以数组形式发送购买的项目Groovy 如何在jmeter post请求中发送ID数组(存储在csv中),groovy,jmeter,Groovy,Jmeter,我有getuserdetails api,需要在其中以数组形式发送购买的项目 API: api/getuserdetails/${id} Method: post body: {"uname":{ "purchaseitem": ["121","11","4","12345"] } } 在jmeter中,设置如下所示 >>TP_1 >>CSVDat
API: api/getuserdetails/${id}
Method: post
body: {"uname":{
"purchaseitem": ["121","11","4","12345"]
}
}
在jmeter中,设置如下所示
>>TP_1
>>CSVDataSet_ids
>>CSVDataSet_purchaseitem
>> ThreadGroup1
>>HTTP Req
>>JSR223 PreProcessor
>>View result tree
purchaseitem csv的值如下
1231
12121
312232
13
1
42435
133
我想以逗号分隔的方式传递从CSV获取的“purchaseitem”数组值,如正文所示
我在JSR223预处理器中尝试过类似的方法
def list = ${purchaseitem}
for (i=0;i<=list.size()-1;i=i+10)
{
def mylist = list.subList(i,i+10);
props.put ("mylist"+i,mylist)
}
def list=${purchaseitem}
因为(i=0;i你在做一些奇怪的事情
您将无法使用CSV数据集配置,因为它通过下一个虚拟用户/迭代读取下一个值
你的代码毫无意义
如果需要一次发送CSV文件中的所有值,则应使用类,例如生成JSON并将其打印到jmeter.log文件的代码:
def payload = [:]
def purchasedtem = [:]
purchasedtem.put('purchaseitem', new File('/path/to/your/purchase.csv').readLines().collect())
payload.put('uname', purchasedtem)
log.info(new groovy.json.JsonBuilder(payload).toPrettyString())
更多信息:
你在做一些奇怪的事
- 您将无法使用CSV数据集配置,因为它通过下一个虚拟用户/迭代读取下一个值
- 你的代码毫无意义
如果需要一次发送CSV文件中的所有值,则应使用类,例如生成JSON并将其打印到jmeter.log文件的代码:
def payload = [:]
def purchasedtem = [:]
purchasedtem.put('purchaseitem', new File('/path/to/your/purchase.csv').readLines().collect())
payload.put('uname', purchasedtem)
log.info(new groovy.json.JsonBuilder(payload).toPrettyString())
更多信息: