Jmeter接口断言如何判断响应的返回数据json数组长度大小

本文详细介绍了如何使用JMeter的JsonPathExtractor插件获取HTTP响应中的JSON数组长度,并结合BeanShell断言进行长度对比,确保数据有效性。通过实例演示了变量提取和条件判断的过程。
摘要由CSDN通过智能技术生成

Jmeter断言如何判断json数组长度大小


Jmeter断言如何判断返回数组长度

、实现获取返回值中json数组的长度,采用JsonPathExtrator插件来实现

首先去下载 一个插件:JsonPathExtrator,下载地址
下载后放在jmeter目录下的lib/ext目录下,然后重启jmeter,在options(选项)多了一个菜单plugins manager(下图)
在这里插入图片描述

切换到avaliable plugins,搜索YAML plugins,勾选下方出现的JSON/YAML plugins,然后点击右下角apply changes and restart jmeter,等下载好后会自动重启(见下图)
在这里插入图片描述

右键请求——后置处理器——选择JSON/YAML Path Extractor(见下图)
在这里插入图片描述

Destination Variable Name:变量命名(会放到jmeter全局变量vars中,后续随时可取出来用)
JSONPath Ecpression:json表达式,值 . r e s u l t . r e c o r d s . l e n g t h ( ) , 此 处 .result.records.length(),此处 .result.records.length()$为整个返回值json体
Default Value:当json返回体中未取到值时取默认值
(见下图)
在这里插入图片描述

二、实现对全局变量中的长度做数据大小对比

jmeter全部断言类型,没有可判断大小的,都是包含,等于等比较类型,唯一一个size assertion是对byte做大小判断,不满足我需要的。于是还是得采用代码来,新建一个BeanShell断言(见下图)
在这里插入图片描述

因为从全局变量中取出来的值是string类型,需要先转一下int。此处我需要校验长度大于0,即保证返回的json数组至少有1条以上为正常(见下图)
在这里插入图片描述
代码如下:

Integer recordsLength = Integer.parseInt(vars.get("recordsLength"));
if(recordsLength>0){
    log.info("返回数量超过1条,通过!");
}else{
    Failure = true;
    log.info("不通过,无返回数据,请检查............!");
}

可查看jmeter运行日志(见下图)
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值