Jmeter中断言就类似LoadRunner中的检查点。对上一个请求返回的信息,做字符串、数据包大小、HTML、XML、图片等做判断,确保返回的信息的准确性
响应断言
一、应用范围(Apply to)
Main sample and sub-samples: 匹配范围为当前父取样器,及子取样器
Main sample only:仅当前父取样器
Sub samples only: 仅子取样器
JMeter Variable:变量值进行匹配
对于有重定向的请求, 并且勾选了"跟随重定向", 那么这两个请求都是sub-sample,重定向后的请求(第二个请求)就是main-sample
二、测试字段(field to Test )
(1)响应文本:响应服务器返回的文本内容,http协议排除header部分
(2)响应代码:匹配响应代码,比如http请求中‘200’代表成功
(3)响应信息:匹配响应信息,处理成功返回‘成功’或者“ok”字样
(4)响应头: 匹配响应头部中的信息
(5)请求头: 匹配请求头部中的信息
(6)URL样本: 对取样器的URL进行断言
(7)断言文档: 从各种类型的文件通过Apache Tika提取文本(详见结果树视图文档部分)
(8)忽略状态: 指示JMeter设置sampler status的初始状态为success。sample status是否成功,由已Response status和断言结果决定,当选中Ignore Status时,Response status被强制设置为success,不执行进一步的断言判断。仅第一次断言时使用
(9)请求数据: 对请求的数据断言
三、模式匹配规则(Pattern Matching Rules)
(1)包括: 若文本包含正则表达式模式,则断言成立;(部分匹配)
(2)匹配: 若整个文本与正则表达式模式匹配,则断言成立;(全部匹配,普通字符串,非正则表达式)
(3)相等: 若整个文本与模式字符串相同(区分大小写), 则断言成立;(全部匹配)
(4) 字符串: 若文本包含模式字符串(区分大小写),则断言成立;(部分匹配,普通字符串,非正则表达式)
(5) 否:就相当于取反。 如果断言结果为true,勾选“否”后,最终断言结果为false。如果断言结果为false,勾选“否”后,则最终断言结果为 true
(6)或者: 复选框项, 如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)
四、测试模式(Patterns to Test)
测试模式:输入结果期望值(空格要去掉),可参数化
五、自定义失败信息(Custom failure message)
断言失败是发送的信息,可查看结果树查看到
子请求断言实例
如上图:对多个重定向历史的子取样器断言响应头包括 manual/user/login
结果只有其中一个符合的子取样器断言成功,如下图: