Jmeter接口自动化-16-Jmeter中BeanShell中怎么创建List对象
一、Jmeter发起请求参数中key-value中value为数组的形式,我们该如何创建
首先看下面的Java编译器中的java代码
我们的请求参数形式:
{ "terminal":"aaaaaa", "platform":"1", "channel":"xxxxxxxx", "loginId":"xxxxxxxxx", "deviceId":"xxxxxxxxxxxxxxxxx", "v":"v1.1.1.1", "businessGroup":[ { "businessCode":"111", "storeGroup":[ { "storeId":11111, "venderId":11111, "skuList":[ 111111111, 111111111 ] } ] } ] }
idea编写入参代码:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test01 { public static void main(String[] args){ Map myMap = new HashMap(); Map subMap = new HashMap(); Map subStore = new HashMap(); List<Object> businessGroupRes = new ArrayList<Object>(); List<Object> storeGroupRes = new ArrayList<Object>(); List<String> sku=new ArrayList<String>(); sku.add("${skuId}"); subStore.put("storeId","${storeId}"); subStore.put("venderId","${venderId}"); subStore.put("skuList",sku); storeGroupRes.add(subStore); subMap.put("businessCode","1"); subMap.put("storeGroup",storeGroupRes); businessGroupRes.add(subMap); myMap.put("terminal","devtools"); myMap.put("channel","miniprograms"); myMap.put("platform","9"); myMap.put("loginId","${loginId}"); myMap.put("deviceId","${deviceId}"); myMap.put("v","${version}"); myMap.put("businessGroup",businessGroupRes); System.out.println(myMap); } }
打印:
{loginId=${loginId}, businessGroup=[{businessCode=111, storeGroup=[{skuList=[${skuId}], venderId=${venderId}, storeId=${storeId}}]}], v=${version}, channel=miniprograms, terminal=devtools, deviceId=${deviceId}, platform=11111}
二、我们将idea编写的代码移入jmeter的BeanShell中
运行发现,从这行开始报错:
List<Object> businessGroupRes = new ArrayList<Object>(); List<Object> storeGroupRes = new ArrayList<Object>(); List<String> sku=new ArrayList<String>();
分析得知:
Jmeter中的BeanShell不支持变量的引用
去掉<>
List businessGroupRes = new ArrayList(); List storeGroupRes = new ArrayList(); List sku=new ArrayList();
再次运行即可完美解决错误!!!
当有些人一出生就有的东西,我们要为之奋斗几十年才拥有。但有一样东西,你一辈子都不会有,那就是我们曾经一无所有。