请求参数为数组,如何传参?

引言:
在工作中,有时后会遇见post请求的参数为数组的情况,这种情况应该如何解决呢?

如下图:

请求参数为数组,如何传参?_第1张图片

 

想法一:
直接把数组放入变量池中,查阅API文档中发现如下方法:

请求参数为数组,如何传参?_第2张图片

其中主要的方法:
putObject(String key,Object value),可以任何类型的数据放入变量池;
getObject(String key),取出变量名代表的任何类型的数据。

现在的场景是要讲请求1中所有的resourse_id以数组的形式,传入请求2中

请求参数为数组,如何传参?_第3张图片

请求参数为数组,如何传参?_第4张图片

步骤:

1、通过正则,关联出所有resourse_id

请求参数为数组,如何传参?_第5张图片

2、关联出来的resourse_id组合成一个数组 

请求参数为数组,如何传参?_第6张图片

 

其中${myResId_matchNr}是关联到myResId的数量,用Debug_Sampler可以看出。

请求参数为数组,如何传参?_第7张图片

 

3.将该数组传入请求2

请求参数为数组,如何传参?_第8张图片

请求参数为数组,如何传参?_第9张图片

 

此时报错:数据转换异常,数组不能转换为String类型。

看来此时的方法行不通。

想法二:把resourse_id拼接成一个字符串,再讲字符串传入请求2。

方法一:

利用StringBuffer来拼接。

请求参数为数组,如何传参?_第10张图片

请求参数为数组,如何传参?_第11张图片

 

方法二:

StringUtils.join(str1, ",")用改方法,讲数组的元素和分隔符拼接成字符串

请求参数为数组,如何传参?_第12张图片

再将字符串传入请求2

请求参数为数组,如何传参?_第13张图片

方法三:

利用list,然后转成字符串。

请求参数为数组,如何传参?_第14张图片

传入请求2

请求参数为数组,如何传参?_第15张图片

 

总结:
数组形式的参数,用代码拼接或者转成相应的字符串,再传入。

jmx文件传送门:
https://pan.baidu.com/s/1cFO-hqKob0l5-KljKWrpBA

你可能感兴趣的:(jmeter)