应用场景:
当接口并发请求多时,要查询结果树中那么多的响应结果是否符合预期,是比较繁琐且容易出错的,所以JMeter提供了断言组件来帮我们处理这种情况。
基本介绍:
断言组件是通过获取服务器响应数据,然后根据断言规则去匹配的。假设断言中配置的内容和响应数据匹配成功,属于正常情况,此时我们看不到任何提示;建设断言中配置的内容和响应数据匹配不到,那就是出现了异常情况,此时JMeter会判定这个事务失败了,结果树中的异常请求名会 标红 展示。
一、响应断言(Response Assertion)
如其名,响应断言就是对服务器的响应数据进行规则匹配的。
主要参数说明如下:
1、Apply to
应用范围,有以下四个选项:
-
Main sample and sub-sample:匹配范围包括 main sample(父取样器)和sub-sample(子取样器)
-
Main sample only:只匹配 main sample
-
Sub-samples only:只匹配 sub-sample
-
JMeter Variable:支持对JMeter变量值进行匹配
2、测试字段
包括以下九个选项:
-
响应文本:响应服务器返回的文本内容
-
响应代码:匹配响应代码(指的是http请求的响应代码,即JMeter取样器结果中的 Response code ,而不是接口返回内容中自定义的响应代码。)
-
响应信息:匹配响应信息(指的是http请求的响应信息,即JMeter取样器结果中的 Response message ,而不是接口返回内容中自定义的响应信息。)
-
Response Header:匹配响应中的头信息
-
Resquest Header:请求中的头信息
-
URL样本:匹配URL链接
-
Document(text):对响应数据的文档内容进行匹配
-
忽略状态(Ignore Status):当第一个断言失败时可以忽略
-
Request Data:请求数据
3、模式匹配规则
包括以下五个选项:
-
包括:响应内容包括需要匹配的内容即代表响应成功,支持正则表达式。
-
匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。
-
相等(Equals):响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,匹配内容是字符串非正则表达式。
-
字符串(Substring):响应内容包含需要匹配的内容才代表响应成功,大小写敏感,匹配内容是字符串非正则表达式。
-
否:选择Equals与Substring时匹配的是字符串,大小写敏感,有时会响应失败,此时可以选择此项,会降低匹配级别,类似降到“包括”、“匹配”的级别,这样可以响应成功。
4、测试模式:
填入匹配的字符串或正则表达式,需与前面勾选的模式进行匹配。
实例展示:
场景1:
假设需进行10次接口请求,需要自动标记出接口返回文本中,状态码不等于200的请求。
设置十个并发请求:
断言中设置匹配code等于200:
响应结果中code不等于200的标红展示:
场景2:
假设需进行10次接口请求,需要自动标记出接口请求成功,但响应数据data字段 为空的请求。
断言中配置data为空取反:
不为空的结果:
data为空的结果:
评论区