Jmeter接口测试之断言详解

2020-10-23 15:59:59 浏览数 (1)

什么是断言?

断言,这是一个软件术语,简单来说,就是依靠软件程序自动判断操作结果的正确性。在接口测试中,这里的断言就是判断接口请求是否符合预期,从而判断接口用例是否执行通过。

你应该也听过一个概念检查点,其实跟断言是一个意思,这个概念通常是在loadrunner中被使用。

断言的使用场景?

断言除了在接口测试中使用,性能测试,UI接口自动化测试中,我们也要用到这个功能,只是不同工具的实现方式不一样而已。记住,断言是自动化测试中最重要的绕不开的一个概念,让自己的程序尽可能像人一样去做判断,这是自动化测试需要实现的重要功能。

如何使用jmeter断言?

1.添加断言

在选择的Sampler下右键添加断言,根据需要选择断言类型。注意断言的作用域。

2.添加监听器(察看结果树或者断言结果)

通过察看结果树查看断言是否通过,通过没有显示,失败会给出红色的提示,并给出不通过的原因。断言结果则是把失败的断言内容汇总到一起显示。

说明:可以对同一个请求添加多个断言,多个断言属于并的操作,必须全部满足,用例才能执行通过。

常见jmeter的断言分类

引入路径:请求右键->添加->断言

响应断言(Response Assertion)

作用:对响应报文中所有信息都可以进行断言,包括响应的文本、响应代码、响应头等。

APPly to(适用范围)
  • Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
  • Main sample only:只作用于父节点取样器(一般的断言都选这个)
  • Sub-samples only:只作用于子节点取样器
  • JMeter Variable:只作用于jmeter变量(可写入正则提取的响应值)
测试字段:
  • 响应文本:请求的响应文本信息,不包含响应头信息。最常用的断言字段。
  • 文档(文本):通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word等等各种格式。
  • 响应代码:对应http返回的响应码。
  • 响应头:响应头信息
  • URL样本: 请求url,如果有重定向包含重定向url
  • 响应信息:匹配响应信息,如:OK
  • 忽略状态(Ignore Status): 一个请求多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言。

模式匹配规则

  • 包括:响应的结果中包含指定的文本或者字段值,支持正则表达式
  • 匹配:完全匹配,期望值与实际结果必须完全一致,一般结合正则表达式使用
  • 相等:响应结果与指定的内容完全一致,不支持正则表达式
  • 字符串:返回结果,包含指定的字符串,不支持正则表达式
  • :不进行匹配
断言持续时间(Duration Assertion)
断言持续时间,一般用来判断请求的响应时间是否超过我们设置时间值,大于断言失败,小于断言成功。
大小断言(size assertion)
可对完整响应、响应头、响应消息体大小进行判断;
  • 字节大小:需要判断大小的数值,单位字节
  • 比较类型,与字节大小配合,限定判断的范围。

断言结果示例

beanshell断言(BeanShell Assertion)

BeanShell断言,可以使用beanshell脚本来实现请求结果的判断,适用于上述断言功能无法实现的场景,灵活高效,需要熟练使用beanshell脚本。

可以通过beanshell的内置变量,以及 Failure 和 FailureMessage语句来设置断言结果,举例如下:

jmeter除了上述的几个常用的断言之外,还有json断言、xpath断言、XML断言等,大家可以根据需要进行学习。

0 人点赞