性能工具之Taurus使用(入门篇)

本文介绍如何使用Taurus结合JMeter进行性能测试,包括运行现有JMeter脚本和使用YAML创建新脚本的方法。通过示例展示了Taurus简化测试配置和结果展示的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

在上篇文章中,我们详细介绍了 Taurus 的常规和 docker 安装,这篇我们一起来看下如何入门使用 Taurus 结合 JMeter做压测。

性能工具之Taurus入门(安装篇)

二、运行现有 JMeter 脚本

Taurus 能够支持现有 JMeter(或 Grinder 或 Gatling 或 Selenium)测试引擎的能力,
同时也能够支持直接解析原生脚本,如 JMeter JMX文件。其默认执行引擎是 JMeter,因此,如果已经使用 JMeter创建了 JMX 文件,那么使用 Taurus 可以很容易地运行,只需使用 bzt 命令以及 JMX 路径即可。

我在这里简单使用示例脚本:build-web-test-plan.jmx
在这里插入图片描述

执行命令:

bzt example.jmxbzt build-web-test-plan.jmx -o modules.jmeter.version=5.2.1

将能够看到包含所有 Taurus 报告的全屏仪表板。该仪表板具有 ASCII 图,可显示有关测试的关键统计数据和各种指标。
在这里插入图片描述
测试后摘要报告如下所示:
在这里插入图片描述

注意:
这里我使用可以使用 -o 参数从命令行覆盖配置选项,因为默认配置的 JMeter 版本为 5.1 会报 404 无法下载的错误,因为镜像网站已经不存在了。

报错信息如下:
在这里插入图片描述

镜像地址:https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/
在这里插入图片描述

上面我们演示了直接运行 JMX 文件,但对于 YAML,将 JMX 文件 传入 Taurus 也是一个相当简单的过程:

编写 exist_jmx_conifg.yml

settings:
  env:
    BASE_DIR: /home/taurus/taurus_container_scripts   # 脚本目录
  artifacts-dir: /home/taurus/taurus_container_artifacts/simple1/%Y-%m-%d_%H-%M  # path where to save artifacts, default is %Y-%m-%d_%H-%M-%S.%f
  
execution:
- scenario: simple1   # 场景名称

scenarios:
   simple1:
        script: '${BASE_DIR}/build-web-test-plan.jmx'  # 脚本

modules:
    jmeter:
        download-link: 'https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-{version}.zip' # 下载地址
        version: 5.2.1  # 版本号

reporting:
- module: final-stats   # 摘要报告
- module: console       # 控制台

三、使用 YAML 创建 JMeter 脚本

如果你不想使用 JMeter 创建脚本,还可以使用 Taurus 的简单配置语法将测试场景使用 YAML 或 JSON 来描述 JMeter 脚本,这就是我们想要的 test as code。

例如,一个简单的测试,其中有 10 个并发用户,启动时间为 1 分钟,持续时间为 2.5 分钟,并使用 HTTP GET 请求访问 example.com 网站,看起来很简单:

编写 example.yml 脚本:

settings:
  env:
    BASE_DIR: /home/taurus/taurus_container_scripts  # 脚本目录
  artifacts-dir: /home/taurus/taurus_container_artifacts/simple1/%Y-%m-%d_%H-%M  # path where to save artifacts, default is %Y-%m-%d_%H-%M-%S.%f
  
scenarios:
  my_scenario:
    requests:
      - label: Home
        url: /       #路径
        method: GET  #请求方式

execution:
- concurrency: 10  #并发线程数
  ramp-up: 1m      # 启动时间
  hold-for: 2m30s  # 持续时间
  scenario:        # 测试场景
    default-address: http://www.example.com/  # 请求地址
    requests: 
      - include-scenario: my_scenario  # 场景名称

reporting:  
- module: final-stats # 摘要报告
- module: console     # 控制台

modules:
    jmeter:
        download-link: 'https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-{version}.zip' # 下载地址
        version: 5.2.1  # 版本号

运行命令:

bzt example.yml

按下 Enter 键后,Taurus 引擎将开始执行测试。

这是 Taurus 测试执行的显示方式:
在这里插入图片描述
测试后摘要报告如下所示:
在这里插入图片描述
生成的过程文件如下:

[root@localhost 2019-12-28_12-15]# ll
total 3352
-rw-r--r--. 1 root root   23716 Dec 28 12:18 bzt.log
-rw-r--r--. 1 root root    6572 Dec 28 12:18 effective.json
-rw-r--r--. 1 root root    5336 Dec 28 12:18 effective.yml
-rw-r--r--. 1 root root      83 Dec 28 12:18 error.jtl
-rw-r--r--. 1 root root     877 Dec 28 12:15 example.yml
-rw-r--r--. 1 root root     436 Dec 28 12:15 jmeter-bzt.properties
-rw-r--r--. 1 root root       0 Dec 28 12:15 jmeter.err
-rw-r--r--. 1 root root 2858758 Dec 28 12:18 jmeter.log
-rw-r--r--. 1 root root     365 Dec 28 12:18 jmeter.out
-rw-r--r--. 1 root root  484169 Dec 28 12:18 kpi.jtl
-rw-r--r--. 1 root root     815 Dec 28 12:15 merged.json
-rw-r--r--. 1 root root     608 Dec 28 12:15 merged.yml
-rw-r--r--. 1 root root    7810 Dec 28 12:15 modified_requests.jmx
-rw-r--r--. 1 root root    5704 Dec 28 12:15 requests.jmx
-rw-r--r--. 1 root root      23 Dec 28 12:15 system.properties

文件说明:

  • bzt.log :Taurus 日志。包含 Taurus 的全部输出,对于故障排除非常有用;
  • effective.json:最终的 Taurus JSON 格式的配置文件。它包含合并的输入文件,配置默认值,任何覆盖的属性等;
  • effective.yml:与 effective.json 相同,但采用 YAML 格式。Taurus 不会在 YAML 和 JSON 之间进行区分,并且能够使用任何格式,因此任何一种都很好;
  • errors.jtl:启用了所有诊断字段的 XML 格式的 JMete 结果文件。能够在“ 查看结果树”监听器中查看完整的请求和响应详细信息;
  • example.yml:通过命令行提供给 Taurus 的 YAML 配置文件;
  • jmeter-bzt.properties:任何 JMeter 属性覆盖;
  • jmeter.log:一个非常默认的 JMeter 日志文件;
  • kpi.jtl:主要结果文件,其名称代表关键绩效指标,其中包括:
    • 采样器时间戳,标签和持续时间
    • 响应消息和代码
    • 采样器是否成功
    • 连接和延迟指标
    • 活动线程号
  • merged.json:Taurus 配置文件。它包含合并的,用户提供的配置文件(YAML或JSON),但未应用默认值或替代值;
  • merged.yml:与上述相同,但采用 YAML 格式;
  • modified_requests:与 requests.jmx 相同,并且通过 YAML 由 Taurus 驱动的更改;
  • requests.jmx:将 YAML 配置文件转换为 JMeter.jmx 格式;
  • system.properties:有效的 JVM 系统属性。

如前所述,就 JMeter 而言,Taurus提供以下报告:

  • 运行时的摘要控制台
  • 测试结束时的统计数据;
  • 2个.jtl 结果文件:
  • CSV-适用于成功的采样器;
  • XML-包含请求/响应的完整详细信息的失败采样器;

因此,kpi.jtlerrors.jtl 用于结果分析,而其他用于调试目的。

注意:

内网环境下,可以将最新的 JMeter 版本(带有最新的插件)下载到 〜/ .bzt / jmeter-taurus文件夹(如果使用自定义插件,则还有一个选项可以指定现有的 JMeter 位置。

四、小结

Taurus 的全部思想–提供一种统一的简化方式来配置和运行自动化测试,并以最有效的形式表示结果。整体上大概有下面几个步骤:

  • 根据提供的 example.yml 准备 JMeter.jmx 脚本;
  • 开始实际的 JMeter 压测;
  • 在文本控制台中显示实时统计信息和基本的 ASCII 图;
  • 测试完成后将摘要打印到控制台;
  • 将 JMeter 测试结果保存为开箱即用,且由 JMeter Plugins提供的 JMeter 监听器可以理解的格式。

示例脚本:

  • https://github.com/zuozewei/blog-example/tree/master/Performance-testing/01-test-tool/taurus
记录所有的HTTP流量并在10分钟内创建一个负载测试(Apache JMeter兼容)。 BlazeMeter Chrome扩展程序使您可以-录制。 浏览。 上载。 跑。 Chrome扩展程序会记录浏览器发送的所有HTTP / S请求和实际用户交互,创建同步的JMeter和Selenium脚本,然后将其自动上传到BlazeMeter,您可以在其中单击即可执行。 无需安装JMeter或Selenium即可记录或运行性能测试,Chrome扩展程序会自动创建JMeter和Selenium脚本。 该扩展程序还允许您在本地Chrome浏览器上调试和测试录制的Selenium会话。 通过在本地使用JMeter,您可以调试和增强Chrome扩展程序创建的JMX文件,以确保脚本可以使用。 新功能:https://guide.blazemeter.com/hc/en-us/articles/115004970329-Chrome-Extension-Changelog-Chrome-Extension-Changelog此扩展程序提供一种模式:记录-为您创建JMeter和Selenium脚本您的所有浏览活动都可以为您记录的场景创建JMeter和Selenium脚本,在本地调试它们或将其上载到BlazeMeter。 单击即可执行,或将其导出为JMeter .jmx / Taurus Selenium YAML或JMeter和Selenium的合并文件。 在不到十分钟的时间内运行负载测试功能和要求-记录浏览器发出的所有HTTP / S请求-记录用户GUI操作-在Selenium步骤中添加断言-记录期间添加事务标签(对于JMeter和Selenium)-如果要记录交易,需要使用Chrome版本58-建议的最低Chrome版本是58-与Apache JMeter兼容-对于某些功能,需要一个免费的BlazeMeter帐户(例如,转换为JMX)-与Taurus Selenium兼容-在没有测试脚本应用程序的情况下运行测试-为以下版本运行测试最多3,000,000个并发用户-运行API功能测试-并发运行Selenium测试和JMeter测试,以充分利用两者的优势 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zuozewei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值