??在性能测试或接口自动化测试中,断言是非常重要的一部分,因为它可以帮助我们确认测试的结果是否正确,从而判断整个测试是否通过。
??在Jmeter中有个组件叫做断言(Assertion),它的作用和LR中的检查点类似;用来检查测试过程中的响应是否符合预期结果,用来保证性能测试过程中数据交互和预期保持一致。
??断言用于对采样器执行其他检查,并在同一范围内的每个采样器之后进行处理。 若要确保断言仅应用于特定采样器,请将其添加为采样器的子级。
??断言可以应用于主样本和/或子样本。 默认设置是仅将断言应用于主示例。 如果断言支持此选项,则 GUI 上将有一个条目,如下所示:
??使用断言的目的: 在请求的返回层面增加一层判断;因为请求成功了,不一定结果就是你想要的结果(ex:请求状态码是200,但是没有响应结果)。
??怎么去添加和使用断言: 已经成功新建相关取样器,在对应的取样器上添加断言;再添加一个监听器(ex:查看结果树);如果成功,那么结果树里边只有一条记录;如果失败,点开断言可以看到相应的错误;一个取样器可以添加多个断言;
??博主使用的Jmeter版本为5.1.1,断言种类有13个,具体如下所示;
功能: 判断返回内容是否符合预期;对响应中所有东西都可以进行判断,具体面板样式如下所示。
??已经成功新建相关取样器,右键点击对应的取样器上添加断言;
面板参数解释
序号 | 参数 | 解释 | 备注 |
---|---|---|---|
1 | APPly to | 适用范围 | Main sample and sub-samples:作用于父节点取样器及对应子节点取样器 ;? Main sample only:仅作用于父节点取样器; Sub-samples only:仅作用于子节点取样器; JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称 |
2 | 测试字段 | – | 响应文本、 响应代码、 响应信息、 响应头、请求头、URL样本、文档(文本)、忽略状态、请求数据 |
3 | 模式匹配规则 | – | 包括、匹配、相等、字符串、否、或者 |
4 | 测试模式 | – | 可以添加多个 |
5 | 自定义失败消息 | – | 可以特定断言失败返回的信息 |
??针对响应内容为json,可以使用响应断言,但有时候使用json断言会更加准确,使用json断言,需要掌握jsonpath语法,掌握jsonpath语法后才能准确编写json提取表达式。
??已经成功新建相关取样器,右键点击对应的取样器上添加断言;
JsonPath语法要点:
$
表示文档的根元素
@
表示文档的当前元素
.node_name
或 ['node_name']
匹配下级节点
[index]
检索数组中的元素
[start:end:step]
支持数组切片语法
*
作为通配符,匹配所有成员
..
子递归通配符,匹配成员的所有子元素
(<expr>)
使用表达式
?(<boolean expr>)
进行数据筛选