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

2023-09-13 17:04:51

 

在使用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);
        }

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

软件测试面试文档

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

在这里插入图片描述

更多推荐

新型智慧公厕“1+3+N”架构,平台、系统、应用的创新

近年来,随着人民生活水平的提高,人们对公共设施的要求也越来越高。其中,如厕问题一直是人们关注的焦点,但传统的公厕设施已经不能满足人们对干净、舒适、安全的需求,这促使了新型智慧公厕的诞生与应用,以如中期科技「智慧公厕-智慧厕所」以“1+3+N”规划策略,让公共厕所实现信息化、智慧化、网络化。本文以智慧公厕源头厂家广州中期

二叉搜索树经典笔试题【力扣、牛客】

文章目录1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历Ⅱ4.二叉树的最近公共祖先1.法一:定位p、q在左还是右分类讨论2.法二:利用stack求出p、q路径求相交值5.二叉搜索树与双向链表1.法一:递归:递归过程修正指针指向2.数组:将二叉搜索树进行中序遍历可以得到由小到大的顺序排列6.前序中序遍历序

Spark_Spark内存模型管理

工作中经常用到Spark内存调参,之前还没对这块记录,这次记录一下。环境参数spark内存模型中会涉及到多个配置,这些配置由一些环境参数及其配置值有关,为防止后面理解混乱,现在这里列举出来,如果忘记了,可以返回来看看:spark.executor.memory:JVMOn-Heap内存(堆内内存),在使用sparksu

云服务器部署k8s集群

在两台不同厂商的云服务器上部署k8s集群,遇到一些问题。在此进行下总结。首先要网络能够互通,我是通过添加虚拟网卡的方式lsmod|grepip_vs#检查是否有开启#临时开启ip_vsforiin$(ls/lib/modules/$(uname-r)/kernel/net/netfilter/ipvs|grep-o"^

【Spark】PySpark DataFrame

1SparkSession执行环境入口2构建DataFrame2.1由rdd构建(StructType、StructField)2.2由pandas.DataFrame构建2.3由外部数据构建2.3.1text数据源2.3.2json数据源2.3.3csv数据源3DataFrame操作3.1SQL风格3.2DSL风格3

WebGL HUD(平视显示器)

目录HUD(平视显示器)如何实现HUD示例程序(HUD.html)示例程序(HUD.js)代码详解在网页文字上方显示三维物体代码详解HUD(平视显示器)平视显示器(headupdisplay)简称HUD,最早用于飞机驾驶。平视显示器将一些重要信息投射到飞机驾驶舱前方的一块玻璃上,飞行员能够将外界的影像和这些重要信息融合

使用vue-cli搭建SPA项目

目录一、SPA项目构建及目录讲解1.1SPA定义1.2SPA优点1.3VueCLI定义1.4VueCLI功能解析1.5安装vue-cli1.6创建SPA项目1.7项目结构说明1.8项目结构说明1.8.1build文件夹1.8.2config文件夹1.8.3node_modules文件夹1.8.4src文件夹1.8.5s

ctfshow web入门(2)

web11打开这个网站,到网站诊断分析模块搜索域名web12提示有时候网站上的公开信息,就是管理员常用密码打开,就是个购物网站因为昨天刚做robots.txt我就搜了一下真的有,提示admin这个页面访问一下,username肯定是admin,但是密码。有点晕。但是看到提示我就又去看了看原来的页面,有没有可疑的密码在末

MQTT服务器搭建

本次搭建的MQTT服务器是emqx提供的服务器1、下载https://www.emqx.com/en/downloads/broker从官网下载5.2.0版本emqx-5.2.0-windows-amd64.zip下载完成直接安装2、配置,修改端口号mqtt默认端口号常规的用法,我们一般使用和开放这两个端口:1883,

php生成随机验证码图片

1,CaptchaPicture.php用于生成画布,然后在画布上生成四位随机验证码<?phpsession_start();header("Content-type:image/png");//创建图像的格式$image_width=76;//设置图像的宽度$image_height=40;//设置图像的高度$len

线性代数与编程语言结合 基础

什么是线性代数线性代数是数学的一个分支,研究向量空间和线性变换的理论与方法。它涉及了向量、矩阵、线性方程组、线性映射等概念与运算规则。线性代数在科学和工程领域中被广泛应用,如物理学、计算机图形学、统计学、电子工程等。它提供了一种强大的工具和语言来描述和解决线性问题,比如矩阵求逆、解线性方程组、特征值和特征向量等。通过线

热文推荐