一般情况下响应断言就能解决很多问题,但是返回复杂的json时就需要用到beanshell断言。

举个例子

免费的接口API www.sojson.com/api/beian/sojson.com

host:    www.sojson.com

source:   api/beian/sojson.com (api/beian后面只能跟一级域名如:baidu.com或者sojson.com)

创建好线程组HTTP请求,给该请求加beanshell断言,代码如下,其中必须加prev.setSuccessful(false);设置用例的结果

beanshell代码如下

 1 import com.google.gson.JsonObject;
 2 import com.google.gson.JsonParser;
 3 import java.lang.*;
 4 //获取上一个请求的返回
 5 response = prev.getResponseDataAsString();
 6 log.info(response);
 7
 8 //正常情况的history应该为数据库查询出来的结果
 9 String history="{\"nature\":\"企业\",\"icp\":\"京ICP备16038595号\",\"indexUrl\":\"www.sojson.com\",\"sitename\":\"JSON在线解析\",\"domain\":\" sojson.com \",\"nowIcp\":\"京ICP备16038595号-2\",\"type\":200,\"search\":\"sojson.com\",\"checkDate\":\"\",\"name\":\"北京都芳商贸有限公司\"}";
10 //使用Gson解析json
11 JsonParser parser = new JsonParser();
12 JsonObject responseObj = (JsonObject) parser.parse(response);
13
14 JsonParser parser1 = new JsonParser();
15 JsonObject historyObj = (JsonObject) parser1.parse(history);
16
17 if(history == "")
18 {
19 //    Failure = true;
20     FailureMessage = "连接数据库失败或者数据库内没有历史数据";
21
22 //调用Gson提供的Json对象euqals方法判断是否一致
23 }else if(responseObj.equals(historyObj) == false)
24 {
25     log.info("不一样");
26     //设置该条用例结果,但是查看结果树中不会打印出错信息FailureMessage
27     prev.setSuccessful(false);
28 //把断言失败置为真,即用例失败,并在结果树中显示FailureMessage
29 Failure = true;
30 FailureMessage = "请求返回和数据库不匹配";
31 }
32 else
33 {
34     log.info("俩一模一样");
35     }

转载于:https://www.cnblogs.com/gcgc/p/6816650.html

Jmeter接口测试使用beanshell断言json返回相关推荐

  1. jmeter+接口测试练习+接口关联+Json提取

    1.测试用例设计 2.因为要执行多条用例,所以在Jmeter添加了http信息头管理器和http请求默认值. 3.查询用户信息接口需要用到登录的token,但要先登录再把token拿出来传到查询的信息 ...

  2. 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins

    目录 [本文简介看之前请详细的看完介绍] 本文是全网首发的[全栈接口测试进阶系列教程]jmeter接口测试工具从入门到入职, 接口系列包含 接口测试系列包含所有的接口测试工具入门到入职,如果你喜欢的话 ...

  3. Jmeter入门实战(二)如何使用Jmeter的BeanShell断言,把响应数据中的JSON跟数据库中的记录对比

    很多时候我们需要把Response Data取到的 Json 字符串跟数据库里的对比,来验证接口的正确性,使用Beanshell断言可以比较灵活的实现这个需求. Beanshell是一种类似JAVA的 ...

  4. beanshell断言_JMeter使用BeanShell断言

    BeanShell简介 BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如: 定时器:BeanShell Timer 前置处理器:BeanS ...

  5. jmeter响应断言使用_十二、Jmeter断言-响应断言、Json断言和Beanshell断言

    所谓断言,就是检查接口的返回是否符合预期. 自动化测试脚本,如果断言做的不好,就好比测试用例不写预期结果,因此我认为断言是最重要一部分. 关于如何做好断言,我觉得要做到:要断言的内容一定是唯一的,每个 ...

  6. Jmeter接口测试-断言

    JMeter接口测试-断言  对应qq群号:616961231 一个http请求发出,怎么判断执行的是否正确呢? 通过检查服务器响应数据,是否符合预期的数据, 如果是,任务成功,  如果否, 任务失败 ...

  7. (jmeter内置可调用的变量)jmeter beanShell断言

    用户可以在jmeter- "beanShell断言"中自定义断言.自由灵活的用脚本实现自己的断言   beanShell断言接口介绍   在beanShell中直接可以调用的变量, ...

  8. Jmeter BeanShell使用json.jar包处理Json数据

    1.环境准备 1)  Jmeter.JDK 2) 将json.jar包置于..\lib\下 json包下载地址:https://mvnrepository.com/ (国内的maven地址) 可以参考 ...

  9. jmeter学习指南之响应断言和beanshell断言

    一.响应断言 1.什么是响应断言? 在jmeter中最常用的断言方法是"响应断言",它是通过检查sampler的请求内容和响应结果中是否匹配指定的字符串来判断结果是否正确. 响应断 ...

最新文章

  1. python字符串出栈方法_python字符串常用方法
  2. 世界领先!详解蚂蚁金服自研数据库OceanBase的高可用及容灾方案
  3. 手机哪个好用计算机,手机计算器软件哪个好用
  4. 机器学习-分类之K近邻算法(KNN)原理及实战
  5. 传智播客全栈_播客:从家庭学生到自学成才的全栈开发人员
  6. bert pytorch 序列标注_序列标注:Bi-LSTM + CRF
  7. 文本分类项目GPU版本代码
  8. python布尔运算可以比较浮点数吗_Python3 基础之:令人困惑的浮点数运算
  9. dpg learning 和q_深度学习和强化学习之间的差别有多大?
  10. 易天40G QSFP+光模块的规格参数
  11. [转载]MyISAM InnoDB 区别
  12. Extjs MVC讲解
  13. 一个时代的落幕!继苹果、火狐、Linux Lite之后,微软也放弃Flash
  14. 撰写MLA格式的毕业论文,需留意下边几个文件格式标准
  15. 如何在html中调用Js函数
  16. 使用Office2013打开文档时,弹出“正在与服务器联系以获取信息”对话框问题
  17. matlab的syms无法在函数中使用_matlab syms什么意思_常见问题解析
  18. 深入理解Nginx:高顿教育java开发
  19. 磁珠 符号_(整理)贴片磁珠规格.
  20. Scan的使用方式以及Spring redis的坑

热门文章

  1. DEKR 解构式人体关键点回归(三):损失函数
  2. 神器:多卡同步的Batch Normalization
  3. 卷积,特征图,转置卷积和空洞卷积的计算细节
  4. 基础知识(二)matlab与c++混合编程之经验笔记
  5. Hybrid A*论文解析(1)
  6. 苹果侧边滑动返回_后置指纹、侧边指纹、屏幕指纹到底哪个更好用? 来讨论一下!...
  7. mysql 窗口函数_MySQL数分:窗口函数
  8. Layui layer详细参数解释说明
  9. Spring Boot 自定义属性值
  10. 手机玩html5游戏很卡,手机游戏卡怎么办_手机玩游戏卡顿解决办法-系统城