【JMeter断言】之响应断言

一、响应断言

通过检查sampler的请求内容和响应结果中是否匹配指定的字符串来判断结果是否正确。

1、界面:
右键http请求,添加,断言,响应断言
【JMeter断言】之响应断言_第1张图片
【JMeter断言】之响应断言_第2张图片

2、使用

(1)“Apply to”
和正则表达式提取器里的一样,可以断言主请求、重定向请求,及变量的值

(2) “要测试的响应字段”:响应文本、响应代码、响应信息等
指我们要进行断言的内容所在的位置,分为request和response两大块,根据实际情况选择即可(最常用的是响应文本)

(3)“模式匹配规则”:包括、匹配、Equals、Substring、否、或者
①"包括"–1包括3,支持正则;
② “匹配”–1完全匹配3,支持正则;
③“Equals”–1完全匹配3中的文本内容,不支持正则,且大小写敏感;
④“Substring”–1包括3中的文本内容,不支持正则,且大小写敏感;
⑤“否”、“或者”:跟前面四个选项结合使用,分别用于逻辑取反、取或。

(4)“要测试的模式”
这里填写我们要进行断言的内容,可以添加多个模式,可以使用变量、文本、正则表达式(在“包括”和“匹配”模式下)。

3、举例
(1)包括\d{11}:断言响应里面是否包含有连续的11位数字,也就是手机号了,结果是成功的。如果断言 \d{12},那就会失败,因为响应里面没有连续的12位数字。
【JMeter断言】之响应断言_第3张图片

(2)响应文本中不包含“小明”
【JMeter断言】之响应断言_第4张图片

(3)测试的时候,有可能会遇到这种情况,比如调用登录的接口,用户名或是密码不合法的时候,会响应一个提示,然后状态码是400,当然也可以是其它的,由程序员定义。这个时候,用jmeter调用接口,因为状态码是4开头,所以都会判定为请求失败,但实际上,接口是正确响应了的,这个时候,就需要忽略掉响应的状态码。在 要测试的响应字段 里,把最后一项勾上,就可以了。

(4)有些时候,直接断言响应的内容,是实现不了需求的。以模拟接口的响应为例,要断言用户 张三 的 status 是 Y,就这样直接写断言的测试模式,是没法写的。这个时候,就需要和正则表达式提取器一起使用,先把 张三 的 status 用正则表达式提取出来放到一个变量中,再使用响应变量的值的java请求把变量的值响应出来,再断言。

你可能感兴趣的:(二,jmeter)