Groovy 如何在jmeter post请求中发送ID数组(存储在csv中)

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

我有getuserdetails api,需要在其中以数组形式发送购买的项目

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())
        
        更多信息: