Jmeter之BeanShell 断言
作者:季沐测试笔记
原文地址:https://www.cnblogs.com/testero/p/15436864.html
博客主页:https://www.cnblogs.com/testero
1 BeanShell 断言之实例介绍
1.1 假设当前有个判断该用户是否为新用户的接口,返回的数据格式为以下内容:
{
"success": true,
"code": 0,
"msg": "success",
"data": {
"newUser": true,
"invitationCode": null
},
"total": 0
}
当用户为新用户时,newUser的值为true
当用户已是老用户时,newUser的值为false
1.2 假设有两为用户:15293561001为老用户,15293561002为新用户,现需要对改接口返回的数据进行验证,看是否达到预期效果,在Jmeter断言中选择BeanShell 断言

BeanShell中的脚本内容的验证就是根据用户判断newUser的值是否正确,这里会用到BeanShell断言的一些语法,只需要判断下后定义下断言失败或是成功即可,断言内容为以下内容
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
prev.setDataEncoding("UTF-8");
String result = prev.getResponseDataAsString();
String result = prev.getResponseDataAsString();
System.out.println("------------------------------------------------------");
JSONObject response = JSON.parseObject(result);
System.out.println("response为"+response);
JSONObject data = (JSONObject) response.get("data");
System.out.println("data为"+data);
System.out.println("mobile为"+"${mobile}");
System.out.println("newUser为"+data.get("newUser"));
if ( "${mobile}" == "15293561001") {
if (data.get("newUser").toString().equals("false")){
Failure = false;
FailureMessage = "断言成功";
}else {
Failure = true;
FailureMessage = "断言失败,newUser为"+data.get("newUser");
}
}else if ("${mobile}" == "15293561002"){
if (data.get("newUser").toString().equals("true")){
Failure = false;
FailureMessage = "断言成功";
}else {
Failure = true;
FailureMessage = "断言失败,newUser为"+data.get("newUser");
}
}
断言中15293561001判断的newUser为false,15293561002判断的newUser为true,该断言应该完全通过,循环请求该接口,察看结果树

两条数据都是断言通过
下面我们将15293561002的newUser断言处改为false,执行效果如下

可以看到显示出了之前定义的断言失败的信息和接口返回的该字段的实际结果。
2 断言语法介绍
示例:
if (data.get("newUser").toString().equals("true")){
Failure = false;
FailureMessage = "断言成功";
}else {
Failure = true;
FailureMessage = "断言失败,newUser为"+data.get("newUser");
}
以上断言信息中Failrue用来标识断言失败,Failure = false;时表示断言成功
FailureMessage标识断言失败的原因
Jmeter之BeanShell 断言的更多相关文章
- 记录jmeter使用beanshell断言获取复杂的json字符串参数值
实战示例 测试场景 电商系统经常会涉及到商品的库存数量的压测,在用户下单前需要先做库存余量的判断,当余量不足时用户无法下单,保证商品的有效售卖 库存余量查询响应结果 响应结果一般是json字符串的形式 ...
- JMeter中BeanShell断言使用一
Jmeter Ant Task如何让beanshell断言失败的详细信息展示在report里面 首先必须给beanshell断言添加FailureMessage if(${TotalClient_SS ...
- jmeter之beanshell断言---数据处理
在做接口测试时,对响应数据的校验是非常重要的部分:在使用Jmeter进行接口测试时,有多种respone校验方式,比如响应断言.BeanShell断言等等,BeanShell断言可以自定义断言,自由灵 ...
- jmeter使用BeanShell断言
1. 首先存储一个接口的响应结果,如在http请求的BeanShell PostProcessor: import java.io.UnsupportedEncodingException; Syst ...
- Jmeter之BeanShell断言使用
1.Bean Shell常用内置变量 JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下: log:用来记录日志文件,写入到j ...
- 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解
目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...
- jmeter之beanshell断言实例
.首先储存一个接口的响应结果,比如在http请求的后面添加beanshell后置处理器(BeanShell PostProcessor)来储存http请求的响应结果: import org.json. ...
- jmeter中beanshell断言的使用
简单使用beanshell的内容,进行测试内容的判断 这里通过断言内容,修改if的条件,达到发送警报邮件的功能 beanshell 代码如下: SampleResult 等效于 prev lo ...
- JMeter之BeanShell断言---获取时间戳
1.创建线程组,创建一个BeanShell Sampler,在其中编写BeanShell脚本. 2.在Jmeter中,可以利用${__time(,)}时间戳函数来获取十位的时间戳,如: vars.pu ...
随机推荐
- docker日常使用指南
docker日常使用指南 目录 docker日常使用指南 前言 1.基础知识 1.1 docker是什么 1.2 与虚拟机(VM)的区别 1.3 镜像与容器 2.安装 2.1 在线安装 2.2 离线安 ...
- http接口实现附件对接
1.推送附件 filebody /** * 推送附件方法 * @param args */ public static void main2(String[] args){ CloseableHttp ...
- 下载excel(接收文件流)
/** * 文件流转换 主要代码块,可自定义下载文件名称 * @param {} data */ export function download(data, titName) { if ( ...
- Spirit带你彻底了解事件捕获和冒泡机制
Dom标准事件模型 在Dom标准事件模型中,事件是先进行捕获,达到目标阶段时,在进行冒泡的 捕获阶段==>目标阶段==>冒泡阶段 目标元素和非目标元素 在介绍事件捕获和事件冒泡前 我们先要 ...
- 洛谷P1449——后缀表达式(栈模拟)
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...
- 记录不存在则插入,存在则更新 → MySQL 的实现方式有哪些?
开心一刻 今天我爸.我.我女儿一起吃饭,我们每人一个鸡腿 女儿问道:爸爸,你吃鸡腿吗 我以为她要把她的鸡腿给我吃,倍感欣慰地说道:我不吃,宝贝 女儿一把抓起我的鸡腿放进了她爷爷的碗里,说道:不吃给爷爷 ...
- 超详细:command not found:scrapy解决办法(Mac下给zsh添加scrapy环境变量)
背景:本来打算用scrapy 创一个爬虫项目,但是无论如何都显示zsh: command not found: scrapy,看了很多篇blog才解决了问题,决定记录一下. 主要参考的blog: ht ...
- 快乐中秋,SQL小白入门指南
目录 创建表 最基本的创建 怎么查看一个已经建好的表的信息呢 修改字段 插入数据 修改和删除数据 修改 删除 第一个查询 条件语句 使用age的大小比较,查看大于16岁的学生: 使用多个条件并联,大于 ...
- 关于config配置问题
RabbitMq程序需要配置 <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1&q ...
- P7597 「EZEC-8」猜树 加强版
#include<bits/stdc++.h>using namespace std;#define rg register#define inf 0x3f3f3f3f#define ll ...