定义: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。
使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。
使用断言的方法:
- 添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言;对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;如果失败,则除了请求的名称外,还会有一行失败的原因(不同类型的断言,结果不同)。
断言类型
1,Beanshell断言
BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本
名称: 断言名称(可以用一个比较容易理解和分辨的名称)
注释:用于备注说明
参数:String参数(String []bsh.args是主类main函数的形式参数,是一个String 对象数组,可以用来获取命令行用户输入进去的参数)
脚本:脚本文件
2,比较断言
这是一种比较特殊的断言元件,针对断言进行字符串替换时使用

比较的内容: 可以选择比较的内容类型(true/false或者自定义,编辑)
比较的时间:(可以设定比较的时间,单位为秒,默认为-1)
正则表达式: 要替换的字符串(可从断言结果中选择)
3,HTML断言:
对响应类为XML类型的文件进行断言;
作用对象:针对取样器中的SOAP/XML-RPC Request而使用的断言

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解析器)
4,size断言:
用于判断返回内容的大小;
作用对象:返回信息,响应报文

APPly to:应用范围(返回内容的断言范围)
- Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
- Main sample only:仅作用于父节点取样器
- Sub-samples only:仅作用于子节点取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)
- Full Response:全部响应
- Response Headers:响应头部
- Response Body:响应主体
- 响应代码:响应报文相关的代码
- 响应信息:响应报文的信息
- Size to Assert:断言字节范围
- 字节大小单位为:字节;比较顺序是①返回内容的大小②比较类型③指定字节大小
5,响应断言
响应断言:可选择断言验证的范围(URL,响应头,响应码,响应体,响应附件),匹配的模式(纯文本还是正则表达式匹配)
操作响应断言:添加-断言-响应断言

Apply to (响应断言的应用范围)
Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
Main sample only:只作用于父节点取样器(一般的断言都选这个)
Sub-samples only:只作用于子节点取样器
JMeter Variable:只作用于jmeter变量(可写入正则提取的响应值)
测试字段:
响应文本:请求的响应文本信息,不包含响应头信息。最常用的断言字段
响应代码: 对应http返回的响应码
响应信息: 匹配响应信息
响应头 : 响应头信息
URL样本: 请求url,如果有重定向包含重定向url
文档(文本): 通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word等等各种格式
忽略状态(Ignore Status): 一个请求多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言
模式匹配规则:
包括:响应的结果中包含指定的文本或者字段值,支持正则表达式
匹配:完全匹配,期望值与实际结果必须完全一致,一般结合正则表达式使用
相等:响应结果与指定的内容完全一致,不支持正则表达式
字符串:返回结果,包含指定的字符串,不支持正则表达式
否:不进行匹配
6,json断言:
JSON断言可以对服务器返回的JSON文档进行验证。
JSON断言有两种使用模式:

配置项:
Assert JSON Path exists:用于断言的JSON元素的路径(JSONPath)
Additionally assert value:是否额外验证根据JSONPath提取的值。
- 不勾选,验证JSONPath能否在JSON文档中找到路径;
- 勾选,验证根据JSONPath提取值是否预期。
Match as regular expression:预期值是否可以使用正则表达式。
- 勾选,预期值可以使用正则表达式表示。
- 不勾选,预期值不能使用正则表达式表示;
Expected Value(预期值):
- Expect null:若验证提取的值为null,则勾选此项
这里有两个地方需要额外注意:
1.验证null值,还是需要勾选“Additionally assert value”,否则验证的是JSONPath能否找到路径;
2.预期值不填表示空字符,与null不等价。
3.除了null外,还有一种特殊的值,就是空数组,预期值不能不填,需要设置为:[],表示空数组
- Invert assertion(will fail if above conditions met) 若勾选,表示对断言结果取反。
网友评论