Jmeter —— 常用的几种断言方法(基本用法)

 

在使用JMeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言,断言相当于检查点,它是用来判断系统返回的响应结果是否正确,以此帮我们判断测试是否通过,本文 主要介绍几种常用的断言:响应断言、JSON断言、BeanShell 断言

一、响应断言

1. 响应断言是最常用的一种断言方法,它可以对各种返回类型的结果进行断言,比如Test、html、application/json等

2. 在需要进行断言的Sample,点击右键》添加》断言》响应断言

3. Apply to选项默认即可,Main sample only(仅作用于父节点取样器)

4. 测试字段常用的有响应文本(对响应结果进行断言)、响应头(对响应头文件进行断言)

5. 模式匹配规则常用有包括(响应结果包括断言的内容),相等(响应结果和断言结果相同)


6. 测试模式可以添加你需要断言的部分,如果是包括,就可以添加多个


7. 执行测试,断言通过则显示绿色


8. 把断言改成响应结果不存在的字段,执行结果,显示红色,断言结果显示系统响应结果不包含“测试断言”字段

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

二、JSON断言

1. JSON断言也是测试工作中经常用到的一种断言方法,它只能针对响应结果是applicaton/json格式的请求进行断言


2. 在需要进行断言的Sample,点击右键》添加》断言》JSON断言


3. 我们使用json断言,一般是断言某个字段值是否返回的是我们需要的,所以需要写JSON PATH(不会写的看本人另外一篇文章有介绍如何写),下图使用正则模式匹配返回的结果包含40就认为响应结果满足要求,断言配置和响应结果如下所示:


4. 下面展示断言结果为常量时,如何进行断言设置,如下图所示

三、BeanShell断言

1. BeanShell断言支持各种开发语言,本文介绍使用java编写断言,使用BeanShell断言的好处是可以自由发挥,比如当断言失败,提示预期结果、实际结果,或者失败时把结果输出到日志

2. 在需要进行断言的Sample,点击右键》添加》断言》BeanShell断言


3. 如果使用包含匹配,只需要修改预期结果即可,预期结果需要写在双引号之间,中间的双引号需要添加\转义,如下:

 String response = "";
String Str = "{\"errNo\":\"403\"";   //预期结果,需要校验的字段response = prev.getResponseDataAsString();    //获取当前请求响应结果if(response == ""){  Failure = true;  FailureMessage =   "系统无响应,获取不到响应数据!";  //对比数据库内容和响应内容,私用euqals方法判断是否一致  }
else if(response.contains(Str) == false){  //把断言失败置为真   Failure = true;    String Msg = "\n系统返回响应结果与期望结果不一致!请排查是性能问题,还是程序代码问题";       		          FailureMessage = Msg + "\n" + "期望结果:\n" + Str + "\n" + "响应内容: \n" + response +"\n";   }

4. 使用完全相等匹配,并且失败时,输出结果到日志,本次把预期结果改错,所以会输出响应结果到错误日志,代码如下:

String response = "";
String Str = "{\"errNo\":\"401\"";   //预期结果,需要校验的字段response = prev.getResponseDataAsString();    //获取当前请求响应结果if(response == ""){  Failure = true;  FailureMessage =   "系统无响应,获取不到响应数据!";  log.info(FailureMessage);//对比数据库内容和响应内容,私用euqals方法判断是否一致  }
else if(response.equals(Str) == false){  //把断言失败置为真   Failure = true;    String Msg = "\n系统返回响应结果与期望结果不一致!请排查是性能问题,还是程序代码问题";       		          FailureMessage = Msg + "\n" + "期望结果:\n" + Str + "\n" + "响应内容: \n" + response +"\n";   log.info(FailureMessage);}

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【服务器 | 测试】如何在centos 7上面安装jmeter

安装之前需要几个环境,以下是列出的几个环境 CentOS 7.7 64位JDK 1.8JMeter 5.2 1. 下载jmeter安装包 JMeter是开源的工具,安装 JMeter 要先安装好 JDK 的环境,安装JDK在前面的文章已经讲到 JMeter最新版下载地址:Apache JMeter…

[npm]npm包的分类

[npm]npm包的分类 工具包的安装工具包的使用工具包的开发工具包的发布 node 与 npm 是一体的,只要安装了 node 的环境,那么你就可以使用 npm 命令,npm 是一个包管理工具; 自从可以使用 npm 后,npm 库中增加了各种包&a…

Git(8)——Git命令总结

一、简介 本篇文章将基于Git(4)——Git命令小总结,补充后续的Git使用命令 二、总结 # 添加远程连接 git remote add origin 远端地址# 推送本地代码 git push origin 分支名称# 拉取远端代码(第一次) git clone 远端克隆地址# 更新远端代码…

Windows本地mysql 的安装教程(一步一步进行安装)

目录 1 下载安装包2 安装 1 下载安装包 下载网址: https://dev.mysql.com/downloads/ 选择这个 2 安装 编写MySQL配置文件 在解压目录下新建my.ini文件 将下面文本拷贝进my,ini文件中 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 ----------…

Xline 源码解读(三) —— CURP Server 的实现

在上一篇文章Xline 源码解读(一) —— 初识 CURP 协议当中,我们对 CURP Protocol 进行了一个初步的介绍。接下来,就让我们话接上回,来一起看看 CURP Server 的内部实现吧。 01、Curp Crate 的源码组织 现在&#xff…

RCNA 锐捷培训

第一章 网络基础入门 1.1 OSI参考模型及TCP/IP协议栈 数据是如何传输的? 数据在计算机网络中传输通常依赖于TCP/IP协议模型。 什么是网络? 网络是一种连接多个计算机、设备或系统的通信基础设施,其目的是实现资源共享、信息传递、接收和共享…

Python技巧---tqdm库的使用

文章目录 一、tqdm基本知识二、在pytorch中使用tqdm 提示:以下是本篇文章正文内容,下面案例可供参考 一、tqdm基本知识 “tqdm” 是一个 Python 库,用于在命令行界面中创建进度条。 基本使用如下: from tqdm import tqdm impor…

创建UI账号密码登录界面

头文件 #ifndef MYWND_H #define MYWND_H#include <QPushButton> #include <QMainWindow>class MyWnd : public QMainWindow {Q_OBJECTpublic:MyWnd(QWidget *parent nullptr);~MyWnd(); }; #endif // MYWND_H 源文件 #include "mywnd.h" #include &…

Linux操作系统(四):内存管理组件

该部分的学习框架如下&#xff1a; 了解基本内存管理概念&#xff1a;物理内存、虚拟内存、地址空间等。学习虚拟内存的概念、作用和原理。了解虚拟内存是如何将物理内存和进程的地址空间分开管理的&#xff0c;以及它如何提供了更大的地址空间和更好的内存管理。内存分段&…

「工具|数据接口」免费公开的REST API 如何借助github搭建自己的fake API接口

本文主要介绍日常开发、测试、教学或者分享中&#xff0c;可能遇到的模拟数据问题。分享免费开发的测试数据接口&#xff0c;以及如何利用github快速搭建定制化的接口数据&#xff0c;避免使用真实数据的风险以及自己现编数据的麻烦。 文章目录 一、场景说明二、免费公开的Fak…

基于虚拟仿真技术的汽车燃油泵控制

在当前激烈的竞争环境下&#xff0c;汽车行业正在加速产业和技术更迭&#xff0c;整车厂对大型ECU嵌入式控制系统和软件的需求迫在眉睫。 然而&#xff0c;复杂而庞大的汽车系统往往由多个物理系统组成&#xff0c;系统所对应的模型都需要在不同的领域实现&#xff1a;发动机、…

Vite 完整版详解

1. 打包构建&#xff1a; Vite 使用 Rollup 作为默认的构建工具。通过运行 npm run build 命令&#xff0c;Vite 会将应用程序的源代码打包成一个或多个优化的静态文件&#xff0c;以便在生产环境中进行部署。Vite 的构建过程会根据需要进行代码拆分、压缩和优化&#xff0c;以…

JAVA黑马程序员day12--集合进阶(下部--双列集合)

Map HashMap 练习一 需提前定义学生类&#xff0c;并重写HashMap方法&#xff08;不然无法覆盖&#xff09; public class MapDemo4 {public static void main(String[] args) {//1.创建HashMap对象HashMap<Student,String> hmnew HashMap<>();//2、创建3个学生对…

Rust更换Cargo国内源,镜像了寂寞

换皮不换身 换了国内源&#xff0c;构建时该卡还会卡。因为它所谓的换源&#xff0c;只是更换crates.io“索引”的源&#xff0c;而不是package“内容”的源。换了国内源后&#xff0c;在国内编译时访问 crates.io-index 自然会快很多&#xff0c;可是crates.io-index里面的信…

【LeetCode与《代码随想录》】贪心算法篇:做题笔记与总结-JavaScript版

代码随想录 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 文章目录 455. 分发饼干376. 摆动序列53. 最大子数组和122. 买卖股票的最佳时机 II55. 跳跃游戏45. 跳跃游戏 II1005. K 次取反后最大化的数组和134. 加油站135. 分发糖果&#xff08;困难&#…

string的使用和模拟实现

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; C&#x1f440; 刷题专栏&#x1f440; C语言&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大…

iisfastchi漏洞复现

1.查看版本 2.在路径中写入 php脚本 发现使用不了 3.环境搭建 结局打开 把限制打开

SideBar 侧边导航与内容区域交互重写【Ant Design Mobile】

需求&#xff1a;SideBar 侧边导航与内容区域交互 点击侧边栏某一项时&#xff0c;相对应内容区域滚动到视口顶部滚动视口区域&#xff0c;到某一项内容区域&#xff0c;侧边栏选中状态也会跟着变化 const SideBarAgain: React.FC<PopupProps> (props) > {// 父组件…

可扩展性表设计方案

文章目录 1 使用预留字段2 使用JSON字段3 使用单表继承4 构建属性表5 直接构建新表6 适当冗余 1 使用预留字段 在表设计初期&#xff0c;可以预留一些命名通用的备用字段&#xff0c;例如field1、field2、field3。当业务需要增加新字段时&#xff0c;就直接使用这些预留字段,无…

Xilinx FPGA 7系列 GTX/GTH Transceivers (1)

初识Xlilix GTX 1概述 Xilinx 7系列FPGA全系所支持的GT,GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,GT的意思是Gigabyte Transceiver,G比特收发器。不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的G…