专栏首页北京宏哥Jmeter(二十二) - 从入门到精通 - JMeter

Jmeter(二十二) - 从入门到精通 - JMeter

1.简介

  断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式。虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JMeter还是为我们提供了适合多个场景的断言元件,辅助我们来更好的完成结果验证工作。在使用JMeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言,断言相当于检查点,它是用来判断系统返回的响应结果是否正确,以此帮我们判断测试是否通过。

2.预览断言

  首先我们来看一下JMeter的断言,路径:线程组(用户)->添加->断言;我们可以清楚地看到JMeter5中共有13个断言(不包括jp@gc开头的断言,这个是宏哥安装的插件),如下图所示:

如果上图您看得不是很清楚的话,宏哥总结了一个思维导图,关于JMeter5的断言类型,如下图所示:

通过以上的了解,我们对断言有了一个大致的了解和认识。下面宏哥就给小伙伴或则童鞋们分享讲解一些通常在工作中会用到的断言。

3.常用断言详解

这一小节,宏哥就由上而下地详细地讲解一下常用的断言。

3.1 HTML断言

对响应类为XML类型的文件进行断言;

作用对象:针对sampler中的SOAP/XML-RPC Request而使用的断言

1、我们先来看看这个 HTML断言 长得是啥样子,路径:线程组 > 添加 > 断言 > HTML断言,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

Tidy Settings:Tidy 环境(Tidy是一个HTML语法检查器和打印工具,可以将HTML转换为XML类型的文件)

Doctype:文档类型(可通过下拉框选择不同文档类型→ omit疏忽遗漏的/auto动态的/strict严格的/loose)

Format:文件格式(可选择HTML/XHTML/XML三种不同类型的文件格式来检查返回内容)

Errors only:误差校正(能接受的最大值)

Error threshold:误差/错误范围(可选择误差/错误数量的范围,最大值)

Warning threshold:警告范围(可选择误差警告的数量范围,最大值)

如果勾选“Error only”这里忽略Warning,只对误差作统计检查;如果对返回内容的检查结果不超过指定结果,则断言通过,否则失败。

Write JTidy report to file:写入JTidy报告的文件(JTidy是Tidy的一个java移植,可以将它当成一个处理HTML文件的DOM解析器)

3.2MD5 Hex断言

MD5是一种消息摘要算法,用以提供消息的完整性保护,对返回的MD5结果进行断言,使用简单,直接跳入MD5值。执行服务器响应的MD5哈希并将其与给定的Md5哈希进行比较。它非常适合您要检查下载文件是否完整的情况。

作用对象:针对参数类型为MD5Hex加密的参数的断言

1、我们先来看看这个 MD5 Hex断言 长得是啥样子,路径:线程组 > 添加 > 断言 > MD5 Hex断言,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

MD5Hex:将已被MD5加密的参数写入其中,添加取样器等其他元件

3.3 SMIME断言

SMIME是一种多用途网际邮件扩充协议,相比于之前的SMAP邮件传输协议,增加了安全性,对邮件主题进行保护;

作用对象:针对采用了该种邮件传输协议的信息

1、我们先来看看这个 SMIME断言长得是啥样子,路径:线程组 > 添加 > 断言 > SMIME断言,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

signature:签名(可选择对协议的签名验证状态)

Verify signature:验证签名

Message not signed:没有签名消息

Signer certificate:签名证书(因为SMIME协议增加了安全传输,需要证书验证)

No check:不检查

Check values:检查

Signer distinguished name:签名证书者名称(证书注册者的名称)

Sigmer email address:签名者的邮件地址(注册的邮件地址)

Issuer distinguished name:发行者名称(由谁发行的证书)

Serial Number:证书序号

Certificate file:选择证书文件

Execute assertion message at position:执行断言消息的位置(在返回消息的具体哪个位置执行断言)

3.4XML断言

XML(可扩展标记语言) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型;

作用对象:判断返回结果是否和xml的格式即<></>成对出现

1、我们先来看看这个 XML断言长得是啥样子,路径:线程组 > 添加 > 断言 > XML断言,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

3.5 XML Schema断言

亦可以称为XML模型断言/XML数据类型断言;XML Schema 定义了两种主要的数据类型:①xml document schema 文档架构 ;② 文档架构xml-schema xml模式

作用对象:返回结果为XML概要断言的2中数据类型的消息

1、我们先来看看这个 XML Schema断言 长得是啥样子,路径:线程组 > 添加 > 断言 > XML Schema断言,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

文件名:载入文件名 ,(写入需要断言的文件名称)

3.6 Bean Shell断言

BeanShell是一种松散类型的脚本语言(这点和JS类似),一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法;

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

作用对象:针对sampler中的Bean Shell sampler而使用的断言

1、我们先来看看这个 BeanShell断言 长得是啥样子,路径:线程组 > 添加 > 断言 > BeanShell断言,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

Reset bsh.interpreter before each call:在每次调用Bean Shell之前重置bsh.interpreter类(bsh.interpreter是Bean Shell脚本语言的一种类,也可以理解为一种解析器)

Parameters(String Parameters and String []bsh.args):String参数(String []bsh.args是主类main函数的形式参数,是一个String 对象数组,可以用来获取命令行用户输入进去的参数)

Script file:脚本文件(可以填入脚本文件路径)

Script(see below for variables that are defined):参照下文定义的变量(使脚本文件参照定义的变量来运行)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jmeter(二十一) - 从入门到精通 - JMeter断言 - 上篇(详解教程)

      最近由于宏哥在搭建自己的个人博客可能更新的有点慢。断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式。虽然我们的通过响应断言能够完...

    北京-宏哥
  • Jmeter(三十二) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy5(详解教程)

      这一篇文章,宏哥主要想讲解一下,录制完脚本不是就完事了,我们有时候还需要断言,看结果是否和我们预期的结果一致。这在测试中都是很重要的。用句老话说:只看结果不...

    北京-宏哥
  • Jmeter(十一) - 从入门到精通 - JMeter逻辑控制器 - 下篇(详解教程)

    Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are ...

    北京-宏哥
  • SoapUI中是如何断言的呢(一)

    将请求发送到Web服务器后,就会收到响应。我们需要验证响应是否包含我们期望的数据。为了验证响应,我们需要使用断言。

    用户7466307
  • JMeter专题系列(五)检查点

    检查点:我们对用户名和密码进行了参数化,那么怎样来判断jmeter有没有正确调用t.dat里面的文件呢。当然,我们可以从结果图表中查看。但我还是想在“登录”这个...

    流柯
  • Jmeter(二十一) - 从入门到精通 - JMeter断言 - 上篇(详解教程)

      最近由于宏哥在搭建自己的个人博客可能更新的有点慢。断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式。虽然我们的通过响应断言能够完...

    北京-宏哥
  • soapUI 接口测试断言

    断言的功能不言而喻, 是指定的restful api是否正常,判断它的响应值是否符合预期标准.

    louiezhou001
  • Jmeter系列(18)- 断言Assertions 的入门介绍

    https://www.cnblogs.com/poloyy/category/1746599.html

    小菠萝测试笔记
  • 走进Java接口测试之流式断言库AssertJ

    在设计自动化接口 Cases 时,遵守的核心原则是3A(Arrange-> Actor ->Assert)原则;

    高楼Zee
  • TestNg中的断言你真的了解吗

    在执行自动化测试脚本的时候,我们需要自动判断测试脚本执行完成后的实际结果是否与预期结果一致,这个时候就需要在程序运行之前写入断言,判断当前程序执行后是否正常。

    软件测试君

扫码关注云+社区

领取腾讯云代金券