【测试工具JMeter篇】JMeter性能测试入门级教程(七):JMeter断言

news/2024/12/5 3:23:23/

一、前言

在 JMeter 中,断言元件(Assertion)用于验证测试结果是否符合预期。断言元件可以检查服务器的响应数据,以确保它们符合期望的模式或值,从而验证性能测试脚本的正确性。断言元件通常在每个请求的响应中添加,以确保服务器返回了正确的响应。

二、常用的JMeter断言元件

1. 常用断言元件

  • Response Assertion(响应断言)
  • Size Assertion(大小断言)
  • XPath Assertion(XPath 断言)
  • JSON Assertion(Json 断言)

2. 断言添加方式:

根据需要可在【测试计划】、【线程组】、【线程请求】下添加断言,一般在对应的【线程请求】下添加,如下图所示。
添加路径:【线程请求-点击右键-添加-断言-对应的断言形式】

3. 查看断言结果

3.1 【断言结果】看断言结果

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

在这里插入图片描述


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

在这里插入图片描述

3.2【查看结果树】看断言结果

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

在这里插入图片描述

三、断言元件的详细介绍

3.1 Response Assertion(响应断言)

3.1.1 简介

        用于检查服务器响应的内容是否符合预期,可以基于响应的内容、代码、消息或其他属性进行断言。可以根据响应文本、响应代码、响应消息和其他参数来定义断言条件,并指定断言模式(包含、匹配、不包含等)。

3.1.2 参数配置介绍

  1. Apply to 选项默认即可,Main sample only(仅作用于父节点取样器)。

  2. 测试字段:要检查的项 (实际结果)

    • Text Response:来自服务器的响应文本。
    • Response Code:响应的状态码,例如:200。
    • Response Message:响应的信息,例如: OK。
    • Response Headers: 响应头部
    • Request Headers: 请求头部
    • Request Data:请求数据
    • URL 样本:请求 URL
    • Document(text): 响应的整个文栏
    • 忽略状态:忽略返回的响应状态码
  3. 模式匹配规则:比较方式(校验规则)

    • contains(包括):文本包含指定的正则表达式
    • Matches(匹配):整个文本匹配指定的正则表达式
    • Equals(等于):整个返回结果的文本等于指定的字符串(区分大小写)
    • substring:返回结果的文本包含指定字符串(区分大小写)
    • 否: 取反
    • 或者:如果存在多个测试模式,勾选代表逻辑或(只要有一个模式匹配,则断言就是 ok),不勾选代表逻辑与(所有都必须匹配,断言才是 ok)
  4. 测试模式:预期结果,即填写指定的结果(可填写多个) 按钮[添加]、[删除] 是进行指定内容的管理。

3.1.3 实战案例

检查百度首页的请求响应中是否包含"百度一下,你就知道"。

1. 步骤一:添加百度的 HTTP Request,添加对应的 Response Assertion,添加查看结果树。

如下图所示:

2. 步骤二:在 Response Assertion 元件中添加对应配置,

如下图所示:

3. 步骤三:查看结果如图所示:断言成功。

3.2 Size Assertion(大小断言)

3.2.1 简介

在 JMeter 中,Size Assertion 是一种断言元件,用于验证服务器响应的内容的大小是否符合预期。Size Assertion 允许您检查返回的响应数据的大小是否在指定的范围内,以便在性能测试中验证响应的大小是否符合要求。

3.2.2 参数配置介绍

  1. Apply to 选项默认即可,Main sample only(仅作用于父节点取样器)。
  2. Response Size Field to Test:

    • Full Response:完整响应
    • Response Headers:响应头
    • Response Body:响应的消息体,选择此项判断返回主题数据 Body 的大小
    • Response Code:响应代码
    • Response Message:响应信息
  3. Size to Assert:

    • size in bytes(字节大小):设置要判断的数值,单位 bytes/kb
    • Type of Comparison(比较类型)

3.2.3 实战案例

检查百度首页的请求响应的内容大小是否大于等于 2381。

1. 步骤一:添加百度的 HTTP Request,添加对应的 Size Assertion,添加查看结果树。

如下图所示:

2. 步骤二:在 Size Assertion 元件中添加对应配置

如下图所示:

3. 步骤三:查看结果如图所示:断言成功。

3.3 XPath Assertion(XPath 断言)

3.3.1 简介

        XPath Assertion 是 JMeter 中的一种断言元件,用于验证 XML 或 HTML 响应的内容是否符合指定的 XPath 表达式。XPath 是一种用于在 XML 文档中定位和选择元素的语言,通过 XPath Assertion,可以使用 XPath 表达式来验证响应中的特定内容,例如检查特定元素、属性或文本是否存在或符合条件。

3.3.2 参数配置介绍

  1. XML Parsing Options (XML 解析选项)

    • Use Tidy:当需要处理的页面是 HTML 格式时,必须选中该选项;如果是 XML 或 XHTML 格式(例如 RSS 返回),则取消选中,默认是 quiet;
    • Quiet 表示只显示需要的 HTML 页面,
    • Report errors 表示显示响应报错,
    • Show warnings 表示显示警告;
    • Use Namespaces:如果启用该选项,后续的 XML 解析器将使用命名空间来分辨;
    • Validate XML:根据页面元素模式进行检查解析;
    • Ignore Whitespace:忽略空白内容;
    • Fetch external DTDs:如果选中该项,外部将使用 DTD 规则来获取页面内容。引用名称:下一个请求要引用的参数名称,如填写 title,则可用${ var_regexp2}引用它。 (一些 XML 元素具有属性,属性包含应用程序使用的信息,属性仅在程序对元素进行读、写操作时,提供元素的额外信息,这时候需要在 DTDs 中声明)
  2. Xpath Assertion 用于填写 xpath 表达式,点击 Validate 验证其正确性,勾选 True if nothing matches 表示确认都不匹配,才会断言验证通过。

3.3.3 实战案例

检查百度首页的请求响应的内容包含 Xpath 表达式://input[@id="kw"]

1. 步骤一:添加百度的 HTTP Request,添加对应的 XPath Assertion,添加查看结果树。

如下图所示:

2. 步骤二:在 Xpath Assertion 元件中添加对应配置

如下图所示:

3. 步骤三:查看结果如图所示:断言成功。

3.4 JSON Assertion(Json 断言)

3.4.1 简介

        JSON Assertion 是 JMeter 中的一种断言元件,用于验证 JSON 格式的响应数据是否符合预期。在进行 API 接口性能测试时,通常会返回 JSON 格式的响应数据,通过 JSON Assertion,可以根据预定义的 JSON 断言规则来验证返回的 JSON 数据是否正确。

3.4.2 参数配置介绍

  • Assert JSON Path exists: 用于断言的 JSON 元素的路径(实际结果)
  • Additionally assert value: 如果想要用某个值生成断言,请选择复选框。
  • Match as regular expression 使用正则表达式断言。
  • Expected Value: 期望值 (期望结果)
  • Expect null: 如果希望为空,请选择复选框。
  • Invert assertion (will fail if above conditions met): 反转断言(如果满足以上条件则失败)

3.4.3 实战案例

检查天气请求响应的 JSON 数据中,city 对应的内容是否为'北京'。

步骤一:添加天气的 HTTP Request,添加对应的 JSON Assertion,添加查看结果树。

如下图所示:

步骤二:在 JSON Assertion 元件中添加对应配置

如下图所示:

步骤三:查看结果如图所示:断言成功。


http://www.ppmy.cn/news/1552456.html

相关文章

@Cacheable加缓存导致的跳过校验 self自调用

Cacheable加缓存导致的跳过校验 & self自调用 Cacheable加缓存导致的跳过校验 Service public class DataServiceImpl implements DataService {// 这个属性指向当前类的代理对象Autowiredprivate DataService self;OverrideCacheable(value "dataCache", key…

Oracle 插入数据的存储过程

Oracle 插入数据的存储过程 这是用来,把实时表里面的数据插入到某个表A获取到的字段neid,然后拼接成xxx_xxx_neid历史表,接着往里面插入数据 CREATE OR REPLACE PROCEDURE XXX自定义名 IS-- 定义变量v_ne_id_table_name VARCHAR2(100); …

Debian 的更新原理

Debian 是一个遵循点版本(point release)模式的 Linux 发行版,更新原理是基于点版本发布模式,通过 APT 工具来管理和同步软件包,同时考虑到依赖性、安全性和稳定性。用户可以通过简单的命令来更新系统,而不…

【Vue3】【Naive UI】<NAutoComplete>标签

【Vue3】【Naive UI】标签 <NAutoComplete> 是 Naive UI 库中的一个组件&#xff0c;用于实现自动完成或联想输入功能。 它允许用户在输入时看到与当前输入匹配的建议列表&#xff0c;从而帮助用户更快地填写表单字段。 这个组件通常用于搜索框、地址输入等场景&#xff…

python使用python-docx处理word

文章目录 一、python-docx简介二、基本使用1、新建与保存word2、写入Word&#xff08;1&#xff09;打开文档&#xff08;2&#xff09;添加标题&#xff08;3&#xff09;添加段落&#xff08;4&#xff09;添加文字块&#xff08;5&#xff09;添加图片&#xff08;6&#xf…

蓝桥杯真题——砍竹子(C语言)

问题描述 这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排, 一开始第 ii 棵竹子的 高度为 ​.他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为 H, 那么用一次魔法可以,把这一段竹子的高度都变为, 其中 [x]表…

爬虫抓取的数据能用于商业分析吗?

引言 在数字化时代&#xff0c;数据已成为企业获取竞争优势的关键资源。网络爬虫作为一种数据收集工具&#xff0c;能够从互联网上抓取大量数据&#xff0c;这些数据在商业分析中扮演着重要角色。然而&#xff0c;使用爬虫技术获取的数据是否合法、能否用于商业分析&#xff0…

大数据新视界 -- 大数据大厂之 Hive 数据质量保障:数据清洗与验证的策略(上)(17/ 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…