【答疑】jsonpath和beanshell配合使用案例

发布时间 2023-08-04 12:00:58作者: 全栈测试笔记

问题

今天提升群小伙伴问了这样一个问题:

接口返回如下(list元素个数不确定),需要提取所有的iautoid,然后用逗号拼接起来,如果是如下返回,需要得到的结果是1687283717749342208,1679392630364184576,后续请求需要使用

{
	"data": {
		"firstPage": true,
		"lastPage": false,
		"list": [{
			"cwhname": "采购一部",
			"iautoid": "1687283717749342208"
		}, {
			"cwhname": "采购二部",
			"iautoid": "1679392630364184576"
		}],
		"pageNumber": 1,
		"pageSize": 15,
		"totalPage": 6,
		"totalRow": 86
	},
	"state": "ok"
}

  

解决方法

因为返回的是json,所以使用jsonpath提取iautoid

 

调试取样器结果:iautoid变量是一个数组

 

添加beanshell后置处理程序

vars.get获取到的值是字符串,所以可以调用字符串的方法对字符串进行处理,去掉[、]、“

最后把处理后的字符串保存到变量中

 

String iautoid = vars.get("iautoid");
log.info(iautoid);
String iautoid_new = iautoid.replace("[", "").replace("]", "").replace("\"","");
log.info(iautoid_new);
vars.put("iautoid2",iautoid_new);

  

调试取样器结果:下面可以看到上面beanshell添加的的变量iautoid2

 

日志结果: