Jmeter接口测试使用beanshell断言json返回
一般情况下响应断言就能解决很多问题,但是返回复杂的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代码如下
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.lang.*;
//获取上一个请求的返回
response = prev.getResponseDataAsString();
log.info(response); //正常情况的history应该为数据库查询出来的结果
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\":\"北京都芳商贸有限公司\"}";
//使用Gson解析json
JsonParser parser = new JsonParser();
JsonObject responseObj = (JsonObject) parser.parse(response); JsonParser parser1 = new JsonParser();
JsonObject historyObj = (JsonObject) parser1.parse(history); if(history == "")
{
// Failure = true;
FailureMessage = "连接数据库失败或者数据库内没有历史数据"; //调用Gson提供的Json对象euqals方法判断是否一致
}else if(responseObj.equals(historyObj) == false)
{
log.info("不一样");
//设置该条用例结果,但是查看结果树中不会打印出错信息FailureMessage
prev.setSuccessful(false);
//把断言失败置为真,即用例失败,并在结果树中显示FailureMessage
Failure = true;
FailureMessage = "请求返回和数据库不匹配";
}
else
{
log.info("俩一模一样");
}
Jmeter接口测试使用beanshell断言json返回的更多相关文章
- JMeter接口测试-如何循环使用接口返回的多值?
前言 在用JMeter做接口测试的时候,经常会遇到这样一种情况:一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值:第二种情况:只想循环请求前一个接口返回值中的随机不定长度的某一些值 ...
- 【Vlog】Jmeter之使用beanshell将json提取器中的多个值拼接为一个列表
场景如下: json提取器返回了当前登录用户的所有好友id,然而下一个接口是把好友id拼成一个数组进行传参的,现需将所有的好友ID拼接起来,类似ID1,ID2,ID3......这样 beanshel ...
- 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解
目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...
- 【Jmeter测试】如何使用BeanShell断言判断请求返回的Json相应结果
脚本结构上图中,queryMaterialApiDTOListByPkIds是返回Json格式响应结果的请求,然后添加BeanShell断言详细判断Json结果中的值是否正确. Json格式的相 ...
- 使用BeanShell断言判断请求返回的Json相应结果(不同json格式整理)
第一种json格式 { "code": 0, "msg": "success", "success": true, &q ...
- 记录jmeter使用beanshell断言获取复杂的json字符串参数值
实战示例 测试场景 电商系统经常会涉及到商品的库存数量的压测,在用户下单前需要先做库存余量的判断,当余量不足时用户无法下单,保证商品的有效售卖 库存余量查询响应结果 响应结果一般是json字符串的形式 ...
- jmeter 发送加密请求 beanshell断言 线程组间传递参数
原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求, ...
- jmeter之beanshell断言---数据处理
在做接口测试时,对响应数据的校验是非常重要的部分:在使用Jmeter进行接口测试时,有多种respone校验方式,比如响应断言.BeanShell断言等等,BeanShell断言可以自定义断言,自由灵 ...
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
随机推荐
- [转]Oracle 索引质量分析
http://blog.csdn.net/leshami/article/details/23687137 索引质量的高低对数据库整体性能有着直接的影响.良好高质量的索引使得数据库性能得以数量级别的提 ...
- linux下高可用LVS搭建及配置方法
一,安装与配置ipvsadm ipvsadm --help #查询是否安装成功 二,配置Director Server服务器 1. ifconifg eth0:0 183.61.87.4 ...
- mysql主从同步+mycat读写分离+.NET程序连接mycat代理
背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...
- webpack 3.X学习之图片处理
CSS中图片处理 在src目录下新建一个images目录,把图片放入images文件夹中:在index.html文件中增加一个div标签: /src/index.html: <div id=&q ...
- 那些年我们写js烦的不疼不痒的错误
1.Js 字符变量不加双/单引号. 列如:var strJsonInfo = '@Html.Raw(ViewBag.JsonInfo)'; 2.js 对象初始化器,最后一个属性值加逗号. 例如:var ...
- 快速排序Golang版本
Created by jinhan on --. Tip: http://blog.csdn.net/zhengqijun_/article/details/53038831 See: https:/ ...
- ajax实现用户名校验的传统和jquery的$.post方式
第一种:传统的ajax异步请求,后台代码以及效果在最下边 首先我们在eclipse中创建一个注册页面regist.jsp,创建一个form表单,注意,由于我们只是实现用户名校验的效果,下边红色部门是我 ...
- Javascript-数值运算 保留小数点位数,并对最后一位小数各种取整方法
今天遇到Javascript数值运算的坑,说到底,还是用得少啊.得多用多敲代码多遇坑. 先介绍以下三个Javascript number取整运算方法. Math.floor() 对一个数退一取整 例: ...
- 查找算法(Java实现)
1.二分查找算法 package other; public class BinarySearch { /* * 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据 */ p ...
- php XSS安全过滤代码
function remove_xss($val) { // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are ...