响应断言是最常用的一种断言方法,主要是对响应结果中的文本内容进行断言,比如响应结果是否包含指定的值,或者是否等于指定的值。响应断言可以适用各种返回类型的响应结果,如:Test、html、application/json、application/xml等。
一、断言添加方式
根据需要可在【测试计划】、【线程组】、【线程请求】下添加断言,一般在对应的【线程请求】下添加,如下图所示,即本文所介绍的。
添加路径:【线程请求-点击右键-添加-断言-对应的断言形式】
二、断言结果查看
2.1.【断言结果】看断言结果
添加路径:【测试计划-点击右键-添加-监听器-断言结果】
整个测试计划下所有请求的所有断言结果报错信息均会在此显示,如下图所示,将所有断言结果的报错信息直接展示出来。
2.2.【查看结果树】看断言结果
添加路径:【测试计划-点击右键-添加-监听器-查看结果树】,整个测试计划下所有请求的所有断言结果报错信息均会在此显示,如下图的形式,切换查看。
三、响应断言
响应断言界面设置,如下图:
如上图所示,响应断言分为【Apply to】【测试字段】【模式匹配规则】【测试模式】【自定义失败信息】五个部分。
3.1.Apply to
断言的作用域。
通常使用默认的【Main sample only】(比如给HTTP请求新增断言,选择了Main sample only,那么这个断言的作用域只针对此HTTP请求),没有对其他作用域有过深入的研究。
【Main sample and sub-samples】与【Sub-samples only】这两个作用域的场景是:部分请求一次会触发多个线程。
**【Main sample and sub-samples】**作用于主线程以及子线程,
**【Sub-sample only】**只用作于子线程。
如果选择了【Main sample and sub-samples】,即使主线程成功,子线程失败,那么断言也是以失败做结果。
3.2.测试字段
这个模块,指的是我们使用哪一块的返回信息做断言。
【响应文本】指返回的【响应数据】的文本信息response body。
【响应代码】指Http响应码,如200、500等。
【响应信息】指的是http的【取样器结果】中的response message。
【响应头】指http【响应数据】的响应头信息response hearders。
【请求头】指http【请求数据】的请求头信息request hearders。
【请求数据】指http【请求数据】的请求头信息request body。
【URL样本】指断言的当前请求的URL地址,与http【请求数据】的请求头信息request body中的值做对比是否一致。注意:如果有重定向包含重定向url。
【文档(文本)】通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word等等各种格式。
【忽略状态(Ignore Status)】 一个请求多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言。
注意:响应文本不等于响应信息。
以上测试字段的断言,可以随便找个接口尝试一下,在下图的结果中查找对应的字段值进行测试。。。
3.3.模式匹配规则
分为【包括】【匹配】【相等】【字符串】【否】【或者】
【包括】响应的结果中包含指定的文本或者字段值,支持正则表达式。
【匹配】完全匹配,期望值与实际结果必须完全一致,一般结合正则表达式使用。
【相等】完全匹配,响应结果与指定的内容完全一致,不支持正则表达式。
【字符串】返回结果,包含指定的字符串,不支持正则表达式。
【否】合并选择之后,断言结果true为false,false为true。
【或者】当有多个断言时,只要有一个断言成功,那么最终结果就是成功的。
3.4.测试模式
断言的内容。如果有多个,按照顺序执行,没有选择【或者】的情况下,所有的断言通过之后,取样器结果才是成功的。
3.5.自定义失败信息
顾名思义,当失败是,可以定义个性化信息。
四、实例演示
请求数据设置2个断言,一个正确的,一个错误的
查看断言结果:显示有1个失败
还是上面的设置,如果在【模式匹配规则】处,勾选【或者】,则断言结果就会通过
断言结果:通过
还是上面的设置,如果在【模式匹配规则】处,勾选【否】,则断言结果原来失败的会通过,原来通过的会失败,如下图所示:
直接从【断言结果】处查看,可以看到历史的断言错误日志,比较方便对比
上面是一个简单的小示例演示【模式匹配】中的字段与【或者】【否】组合的效果,其他字段及模式匹配的断言,大家也可以随便找个接口都试试,挺好玩的。。。