在使用Jmeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言。断言是在请求的返回层面增加一层判断机制,因为请求成功了,并不代表结果一定正确,因此需要判断机制提高测试准确性。本文主要介绍6种常用的断言:响应断言、大小断言、JSON断言、断言持续时间、BeanShell断言、XPath断言,下面分别一 一介绍。

jemeterjson断言 jmeter断言有几种_jemeterjson断言

一、断言添加方式

根据需要可在【测试计划】、【线程组】、【线程请求】下添加断言,一般在对应的【线程请求】下添加,如下图所示,即本文所介绍的。

添加路径:【线程请求-点击右键-添加-断言-对应的断言形式】

jemeterjson断言 jmeter断言有几种_jmeter_02

二、断言结果查看

2.1.【断言结果】看断言结果

添加路径:【测试计划-点击右键-添加-监听器-断言结果】

jemeterjson断言 jmeter断言有几种_jmeter_03


整个测试计划下所有请求所有断言结果报错信息均会在此显示,如下图所示,将所有断言结果的报错信息直接展示出来。

jemeterjson断言 jmeter断言有几种_jemeterjson断言_04

2.2.【查看结果树】看断言结果

添加路径:【测试计划-点击右键-添加-监听器-查看结果树】,整个测试计划下所有请求所有断言结果报错信息均会在此显示,如下图的形式,切换查看。

jemeterjson断言 jmeter断言有几种_jemeterjson断言_05

三、常用断言形式

3.1.响应断言

响应断言是最常用的一种断言方法,主要是对响应结果中的文本内容进行断言,比如响应结果是否包含指定的值,或者是否等于指定的值。响应断言可以适用各种返回类型的响应结果,如:Test、html、application/json、application/xml等。响应断言界面设置,如下图:

jemeterjson断言 jmeter断言有几种_接口测试_06


如上图所示,响应断言分为【Apply to】【测试字段】【模式匹配规则】【测试模式】【自定义失败信息】五个部分。

详细介绍及示例演示详情见文章:

3.2.大小断言

Size大小断言:用于判断返回内容的大小;作用对象:返回信息,响应报文; Size to Assert:断言字节范围,字节大小单位为:字节。

jemeterjson断言 jmeter断言有几种_常用断言_07


jemeterjson断言 jmeter断言有几种_接口测试_08

详细介绍及示例演示详情见文章

3.3.JSON断言

JSON断言可以对服务器返回的JSON文档进行验证。

JSON断言有两种使用模式:

1.根据JSONPath能否在JSON文档中找到路径;

2.根据JSONPath提取值并对值进行验证。

结果判定:

1.若文档格式为非JSON则断言失败;

2.找不到路径断言失败;

3.提取值与预期值不一致断言失败。

json断言设置如下:

jemeterjson断言 jmeter断言有几种_jmeter_09

详细介绍及示例演示详情见文章

3.4.断言持续时间

Duration Assertion:断言持续时间。

断言持续时间通常用于做性能测试,一般用于检查HTTP请求的响应时间是否超过预期值。而这个响应时间是性能测试中常关注的一个性能指标。

jemeterjson断言 jmeter断言有几种_常用断言_10

详细介绍及示例演示详情见文章

3.5.BeanShell断言

BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本
在这里除了可以使用beanshell的内置变量外,主要通过 Failure 和 FailureMessage来设置断言结果。

Failure = false;-----表示断言成功
FailureMessage = “......";---自定义的成功信息
Failure = true;----表示断言失败
FailureMessage="......";------自定义的失败信息

详细介绍及示例演示详情见文章

3.6.XPath断言

一般情况下,使用响应断言和json断言即可满足绝大部分断言需求,Xpath断言主要适用于:返回的数据格式为html或xml。

XPath是W3C的一个标准。XPath是一种表达式语言,它使用路径表达式来选取 XML 文档中的节点或节点集。XPath断言和XPath提取器配置和使用方法类似,只是XPath提取器是从文档中是提取符合路径表达式条件的节点信息,而XPath断言是判断文档中存在符合路径表达式条件的节点。

jemeterjson断言 jmeter断言有几种_接口测试_11

详细介绍及示例演示详情见文章