断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。
对于接口测试来说,就是测试请求/响应,断言即可以针对请求进行,也可以针对响应进行。但大部分是对反应做断言。
JMeter常见的断言元件如下:
1。响应断言
2。JSON断言
本章节,我们主要先来学习JMeter响应断言。
配置项
适用于:
1。在大多数情况下,只有主取样器具有所有必需的响应数据。但是很多网络应用使用了Ajax, JQuery技术,单个请求可以在内部产生多个子请求,并且每个请求都有其对应的响应数据。
比如请求某一个页面,页面里的js会调用其他请求。
2。在HTTP请求的高级设置的“嵌入式资源从HTMLFiles”项,勾选了“检索所有嵌入式资源”,在发送请求时,会解析相关的嵌入资源,也会导致取样器可能产生多个子取样器。
嵌入资源包括:图像、applet、样式表、外部
脚本,?iframes,
背景图片,背景声音等。
3。有重定向的请求,并且勾选了“遵循重定向”,则主取样器为最后返回的网址请求,
第一次URL和重定向返回的所有网址请求为子取样器。
比如,使用http://www.sina.com/访问新浪,会有两次重定向:
第一次请求:http://www.sina.com/重定向返回:
位置:http://www.sina.com.cn/
第二次请求:http://www.sina.com.cn/重定向返
回:位置:https://www.sina.com.cn/
第三次请求:https://www.sina.com.cn/
主取样器为第三次请求;第一次,第二次与第三次请求为子取样器。
主要样本和使
范围包括主取样器与所有子取样器
主要样本只
范围仅限于主取样器
只使
范围仅限于所有子取样器
JMeter变量名称使用
范围包括使用的JMeter变量
字段测试:
1。文本响应
响应正文。对于HTTP协议来说,是响应的消息体(不包括状态行与首部字段)
2。响应代码
响应代码。对于HTTP协议来说,是响应状态码,比如200304404等。
3。响应消息
响应消息。对于HTTP协议来说,是原因短语,比如好,没有修改,没有找到等。
4。响应头
响应首部字段。
5。请求头
请求首部字段。
6。URL采样
请求的URL。对HTTP请于求,若勾选了“遵循重定向”,则包含重定向后的URL。
7.文档(文本)
通过Apache Tika从各种类型的文档中提取文本。此选项开启也会严重影响性能,谨慎使用。
8。请求数据
请求数据。对于HTTP协议来说,是请求的消息体(不包括请求行与首部字段)
9。忽略地位
通过将断言的结果与现有的响应状态相结合来确定取样器的总体成功。
当选择忽略状态复选框时,将强制响应状态在计算断言之前是成功的。
HTTP协议在返回5 4 xx和xx的状态码默认是不成功的,勾选此项可用于在执行进一步检查之前设置状态成功。
请注意,这将具有清除任何以前的断言失败的效果,因此请确保只在第一个断言上开启此设置。
模式匹配规则:
1.包含
如果文本包含正则表达式模式,则为真正的
2.匹配
如果整个文本与正则表达式模式匹配,则为真正的
3.=
如果整个文本等于模式字符串(区分大小写),则为真正的
4.子串
如果文本包含模式字符串(区分大小写),则为真正的
注意:
包含和匹配模式支持Perl5类型的正则表达式;
=和子串模式使用文本字符串,不支持正则表达式。
5.不
对断言结果进行否定。
6.或
将多个测试模式以逻辑”或“组合起来。
模式测试:
要测试的模式列表。每个模式都是单独测试的。如果模式失败,则不检查其他模式,使用多个模式设置一个断言与使用每个模式设置多个断言之间没有区别(假设其他选项相同)。
自定义失败消息:
自定义断言失败信息。即设置“断言失败消息”的值。
对请求做断言
1。断言请求首部字段