jmeter断言_jmeter:利用beanshell进行多重断言

在接口测试中,我们对返回结果的正确性判断一般是基于响应报文的返回内容进行断言。但有些时候,按照正常的业务逻辑来说,一个请求返回的内容是多种不同的。

比如:用户注册功能,注册成功是正常的返回message;该用户已注册,也是正常的业务逻辑。但响应报文的message和code/status往往是不一样的。

这篇博客,介绍下如何利用jmeter的beanshell断言,来处理这种请求。。。

一、响应断言

以用户注册功能作为例子,从下面两种场景来进行接口测试:

1、假设用户不存在,接口设计逻辑,注册成功返回的内容是这样:

{"code":200,"msg":"success"},"status":200}

响应断言应该如下配置:

1a3c02141e0575ef84db9e769451a14e.png

返回的结果是这样:

36b170f4fed42106a074b5b4e23bea3e.png

2、假设用户已存在,那么在测试该功能时,使用响应断言,返回的内容如下:

7892c1ea01db7cdcb0744830b6f5ef37.png

从业务逻辑来说,无论注册成功还是用户已存在,这都是正常的业务场景。

但响应断言只能判断“是”或者“否”,如果需要验证业务正确而非技术正确,如何做呢?

我们可以利用beanshell断言,来满足我们的需求。

二、beanshell断言

还是针对上述场景,无论注册成功,还是用户已存在,我们都判定接口返回正确,那么beanshell断言,可以如下配置:

19bb251bda52b7bb4ef3f4bdea594c25.png

返回的结果是这样:

252575e0830809699f77c4dc798b3e2e.png

附:beanshell断言代码demo:

import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.JSON;
String result=SampleResult.getResponseDataAsString();
JSONObject jsonObject=JSON.parseObject(result);int code=jsonObject.getIntValue("code");
JSONObject data=jsonObject.getJSONObject("data");
log.info("code:"+code);if(code==200||code>=20000000){
SampleResult.setSuccessful(true);
}

内容仅供参考,请根据具体场景和接口设计逻辑,使用beanshell断言。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值