前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jmeter:利用beanshell进行多重断言

jmeter:利用beanshell进行多重断言

作者头像
老_张
发布2020-04-26 12:56:01
1.3K0
发布2020-04-26 12:56:01
举报

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

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

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

一、响应断言

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

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

代码语言:javascript
复制
{"code":200,"msg":"success"},"status":200}

响应断言应该如下配置:

返回的结果是这样:

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

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

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

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

二、beanshell断言

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

返回的结果是这样:

附:beanshell断言代码demo:

代码语言:javascript
复制
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断言。。。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老张的求知思考世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档