首页 > 编程知识 正文

jmeter断言结果怎么看,jmeter添加响应断言

时间:2023-05-06 19:51:15 阅读:243830 作者:190

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

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

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

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

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

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

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

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

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

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

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

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

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。