JMeter JSON Extractor(Json捕获器)功能

一、普通用法

JSON字符串一般用于捕获返回报文中预期字段的值。
界面中的Apply to的意思是从哪个范围中铺货对应的字符串。

二、高级用法

如何捕获JSON数组里,不确定个数的相同元素的多个值,并拼装成新的JSON数组用于后续报文

1.捕获元素的值

在JSON Path expressions处填写JSON Path表达式,因为是捕获多个相同元素的值,故表达式写成 $…YuanSuMingCheng 即可。
在Names of created variables处填写你想给捕获的值起个什么变量名称,如起名为BianLiang。
这些捕获到的元素会被依次存于BianLiang_1、BianLiang_2、BianLiang_3里面。
在Match NO.(0 for Random)处填写-1,别问为啥。
JMeter JSON Extractor(Json捕获器)功能_第1张图片

2.组成新的数组

在与JSON Extractor的相同的Sampler下添加BeanShell PostProcessor,输入以下代码。


	import java.util.*;
	import java.lang.*;
	// 先定义一个数组,尽量长一点,因为不知道返回的元素会有几个;
	String[] stringArray = {"\${BianLiang_1}","\${BianLiang_2}","\${BianLiang_3}","\${BianLiang_4}",
	"\${BianLiang_5}","\${BianLiang_6}"};
	//定义一个整型arrayCount,用于存款返回元素的个数;
	int arrayCount = 0;
	//得出具体返回了几个元素值,判断的方式是数组元素的原始变量名称有没有被替代
	for(int i = 0: i < stringArray.length : i++){
	if(stringArray[i].contains("BianLiang")){
	}
	else{
	arrayCount  = arrayCount  + 1;
	}
	//首先默认有一个元素值返回,并拼装为Json数组
	String ZuiZhongBianLiang ="{'ZuiZhongBianLiang':'"+stringArry[0]+"'}";
	//如果元素值个数大于1,则利用循环添加
	if (arrayCount >1){
		for (int i = 1; i < a; i++){
			ZuiZhongBianLiang += ",{'ZuiZhongBianLiang':'"+stringArry[i]+"'}";
			}
	}
	//最后把Json数组放入Jmeter变量,在使用的时候通过${ZuiZhongBianLiang}来使用
	vars.put("ZuiZhongBianLiang ",ZuiZhongBianLiang);
	```




你可能感兴趣的:(JMeter)