八、JMeter实战-响应断言

一、JMeter响应断言

看一下官方文档介绍,断言:


断言用于对采样器执行结果的检查,并在同一范围内的每个采样器之后进行处理。如果要对某个采样器进行断言,直接将断言添加到采样器的子集即可。
为什么要用断言?

JMeter以及Postman等接口测试工具,他们都是基于协议进行工作的,使用这些工具进行发送请求,当请求发送成功的时候(即协议发送成功),在查看结果树中请求样本显示绿色。比如协议状态码是200就是成功,也是仅仅代表协议发送成功,但是业务不一定成功。有可能是协议发送成功了,但是业务没有成功,但是JMeter默认不做判断。那么想要校验业务成功还是失败,就得需要进行断言,断言根据接口的响应进行断言,一般主要断言业务状态码以及messege等信息。



怎么判断JMeter响应断言成功?

举个实JMeter断言成功,在查看结果树中请求是绿色,看不到断言成功的信息。当JMeter断言失败的时候,结果树中显示为红色,可以看到断言失败的信息。


响应断言



断言页面的解释:

一、Apply to:
1.名称:自行定义,就是节点的名称
2.注释:节点的注释,容易理解的解释
3.Apply to:断言可以应用于主样本,子样本或者两者。默认断言是第二个,断言应用于主样本。
(1)Main sample and sub-samples:主样本和子样本
(2)Main sample only:仅主样本
(3)Sub-samples only:仅子样本
(4)JMeter Variable Name to use:JMeter使用变量名字,断言将应用于命名变量的内容

使用说明:

一般情况下,直接使用主样本(默认)的断言即可。因为大多数情况下,只有主请求才会具有所必须的断言数据,但是前端的JavaScript语言,有两个框架ajax和jquery单个请求可以在内部产生多个子请求,并且每个请求都会有响应数据,所以说,大多数情况下,进行主要采样器的断言就足够了。



如果断言中选择Main sample and sub-samples,那么断言就要校验主采样器和子采样器的响应,看一下结果,除了主采样器的响应中包含“退出登录”,其他的子采样器的响应没有“退出登录”,所以会断言失败,其他几个是同理。



这里讲一下JMeter Variable Name to use:JMeter使用变量名字,断言将应用于命名变量的内容。我尝试了一下,可以这样用,有错的麻烦提出。

断言正确,如果正则中的变量名和断言中的变量名不一致,断言则会失败。



二、模式匹配规则(Pattern Mactching Rules)

1.包括(Contains):返回的结果包括所指定的内容,支持正则匹配

举例:

接口的响应


进行断言,断言通过。


2.匹配:
与Equals几乎一样,都是断言要和返回值完全一致。不同的是,这里支持正则,写正则表达式时,正则表达式也要完全和返回值匹配,才能够通过。

3.Equals:
返回结果与你指定断言完全一致,不支持正则匹配。注意是完全一致,这个只有一个特殊情况会用到,一般很少用。
4.SubString
与“包括”功能类似,不同点为,不支持正则匹配。
5.否
反之,非 的意思
6.或者
可以为多个值,可在下面,例如一个断言里面可能有两个不同的判断值,可以选中去用,当满足一个要求的时候,就算成功。这个功能还是可以多用的,像上面那个例子,多断言几种情况。



三、Custom failure message

当判断返回值为错误的时候,返回什么信息。可以在断言结果内显示。
举例:


在查看结果树中可以看到刚才填写的断言的信息

原文地址:https://www.cnblogs.com/wwho/p/14106842.html