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

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

一、响应断言

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

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

  1. Apply to选项默认即可,Main sample only(仅作用于父节点取样器)
  1. 测试字段常用的有响应文本(对响应结果进行断言)、响应头(对响应头文件进行断言)
  1. 模式匹配规则常用有包括(响应结果包括断言的内容),相等(响应结果和断言结果相同)
  1. 测试模式可以添加你需要断言的部分,如果是包括,就可以添加多个
  1. 执行测试,断言通过则显示绿色
  1. 把断言改成响应结果不存在的字段,执行结果,显示红色,断言结果显示系统响应结果不包含"测试断言"字段
复制代码
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

二、JSON断言

  1. JSON断言也是测试工作中经常用到的一种断言方法,它只能针对响应结果是applicaton/json格式的请求进行断言
  1. 在需要进行断言的Sample,点击右键》添加》断言》JSON断言
  1. 我们使用json断言,一般是断言某个字段值是否返回的是我们需要的,所以需要写JSON PATH(不会写的看本人另外一篇文章有介绍如何写),下图使用正则模式匹配返回的结果包含40就认为响应结果满足要求,断言配置和响应结果如下所示:
  1. 下面展示断言结果为常量时,如何进行断言设置,如下图所示

三、BeanShell断言

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

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

  1. 如果使用包含匹配,只需要修改预期结果即可,预期结果需要写在双引号之间,中间的双引号需要添加\转义,如下:
复制代码
 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";   
        }
  1. 使用完全相等匹配,并且失败时,输出结果到日志,本次把预期结果改错,所以会输出响应结果到错误日志,代码如下:
复制代码
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);
        }

今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

相关推荐
爱学习的执念4 小时前
高频Jmeter软件测试面试题
jmeter
黑客-秋凌11 小时前
软件测试面试会问的测试用例设计方法
自动化测试·软件测试·自动化·测试用例
2401_8612775516 小时前
适合使用判定表设计测试用例的条件,如何使用判定表构造测试用例,举例说明
功能测试·单元测试·测试用例
少云清16 小时前
【功能测试】6_Web端抓包 _Fiddler抓包工具的应用
前端·功能测试·fiddler
Hacker_Oldv16 小时前
Python技能进阶:探索Selenium库,实现网页自动化测试与爬虫
自动化测试·软件测试·爬虫·python·selenium·职场和发展
小小测试开发19 小时前
JMeter插件用法全解析:扩展自动化测试能力的实用指南
jmeter
Hacker_Oldv19 小时前
API 自动化测试难点总结与分享
自动化测试·软件测试·职场和发展
卓码软件测评1 天前
第三方软件测评机构:【Gatling与JMeter的架构对比:异步与非阻塞I/O模型如何实现更高并发】
测试工具·jmeter·架构·测试用例·负载均衡·压力测试
小小测试开发1 天前
JMeter XPath2 Extractor用法全解析:精准提取XML/HTML响应数据
xml·jmeter·html
少云清2 天前
【功能测试】3_Web项目 _单功能模块测试
功能测试·模块测试