jmeter教程(九):响应断言详解

响应断言就是判断响应信息里,是否有我们想要的信息。如果有,就说明测试通过,如果没有,就说明测试不通过,那就可能有bug了。添加断言的步骤

这里依旧以前面用的模拟接口响应的java请求为例,可以看到响应断言的配置面板,和正则表达式提取器的配置面板很相似

“Apply to”,和正则表达式提取器里的一样,可以断言主请求、重定向请求,及变量的值。要测试的响应字段,也和正则表达式提取器的一样,可以断言响应的主体,响应头,URL等,唯最后多了一个:忽略响应状态。这个是做什么用的,后面会讲。

模式匹配规则,有五个选项。默认的是Substring,这种模式就是要断言的文本里,是否包含有要断言的内容。添加一个要测试的模式,里面写上 张三 。

保存运行,结果是对的,也就是响应里有 张三 这个子字符串,就会断言成功,把 张三 改为 张四,再运行就会失败了,因为响应里,没有 张四 这个子字符串。

我们看到第一个选项为 包括,包括 和 Substring 是差不多的,不同点就是 包括 的测试模式里面可以写正则表达式,而 Substring 的测试模式里面,不能写正则表达式,比如可以这样写

就是断言响应里面是否包含有连续的11位数字,也就是手机号了,结果是成功的。如果断言 \d{12},那就会失败,因为响应里面没有连续的12位数字。

Equals,学过java就会知道,这个可以用来判断两个字符串的内容是否完全一样。这里也是这个意思,就是断言响应的文本是否就是测试模式里的文本,要完全一样,一个字符都不能差。匹配,也是这样,只是 匹配 的测试模式里可以用正则,Equals 的测试模式里,不能用正则。

最后面的 否,那就是取反的意思了,比如要断言响应信息里,不包含 张三 ,就可以这样配置

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

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

这样就可以实现需求了,断言变量的值,似乎不能用。

欢迎加入测试群:91425817,一起讨论测试的那此事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值