使用 JMeter 进行灵活的接口自动化测试

简介: JMeter 是一个开源的负载测试工具,它可以模拟多种协议和应用程序的负载,包括 HTTP、FTP、SMTP、JMS、SOAP 和 JDBC 等。在进行接口自动化测试时,使用 JMeter 可以帮助我们快速地构建测试用例,模拟多种场景,发现接口的性能问题。下面是一些 JMeter 接口自动化测试的步骤和技巧。

JMeter 是一个开源的负载测试工具,它可以模拟多种协议和应用程序的负载,包括 HTTP、FTP、SMTP、JMS、SOAP 和 JDBC 等。在进行接口自动化测试时,使用 JMeter 可以帮助我们快速地构建测试用例,模拟多种场景,发现接口的性能问题。下面是一些 JMeter 接口自动化测试的步骤和技巧。

步骤

第 1 步:创建测试计划

JMeter 中,测试计划是测试的最高级别,它包含了各种元素和配置,如线程组、断言、监听器等。测试人员需要在 JMeter 中创建一个新的测试计划,并添加必要的元素和配置。

要创建新的测试计划,请选择: 文件 > 新建 > 填写计划名称。

第 2 步:添加线程组

测试 计划中,测试人员需要添加一个或多个线程组。线程组是测试的基本单位,它定义了测试的并发用户数量、持续时间和其他属性。测试人员需要根据需求设置线程组的属性。

要创建线程组,请右击测试计划并选择: 添加 > 线程(用户) > 线程组。

填写线程组信息。

  • 线程数:10 个线程就是模拟 10 个用户。
  • Ramp-Up 时间 (秒):线程准备时长。如果线程数为 10,准备时长为 10,那么需要 1秒钟启动 1 个线程。
  • 循环次数。如果线程数为 10,循环次数为 10,那么每个线程发送 10 次请求。总请求数为 10*10 = 100。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止。

第 3 步:添加取样器

取样器 是 JMeter 测试的核心组件,它模拟了用户执行的操作。测试人员需要添加一个或多个取样器,并设置它们的属性。常见的取样器类型包括 HTTP 请求、TCP 请求、FTP 请求、JDBC 请求等。

这边以添加 HTTP 请求为例。添加 HTTP 请求,右击线程组并选择:添加 > 取样器 > HTTP 请求。

填写 HTTP 的调用信息。

传过去的数据是 json 格式的,因此要添加头信息:Content-Type:application/json。右击 HTTP 请求并选择:添加 > 配置元件 > HTTP 信息头管理。

添加头信息:Content-Type:application/json

第 4 步:添加断言

断言是 JMeter 测试中的重要组件,它用于验证服务器的响应是否符合预期。测试人员需要添加一个或多个断言,并设置它们的属性。

常见的断言类型包括响应断言 和 JSON 断言:

  • 响应断言包括:文本、响应代码、响应头、响应时间等。
  • JSON 断言允许用户指定 JSON 路径表达式并验证 JSON 响应是否符合该表达式。

响应断言

添加响应断言: 右击接口 > 添加 > 断言 > 响应断言。

对 响应文本中 包含字符串 “Apple” 做断言:

对 HTTP 的响应码 做断言:

JSON 断言

添加 JSON 断言: 右击接口 > 添加 > 断言 > JSON断言。

对接口返回的 total 做断言:

对接口返回的 data 的第 1 项 name 做断言:

上面的 JSON Path 指的是 JSON 路径表达式。表达式由一系列的属性名和数组索引组成:以 “$.” 开头,用“.”和“[]”分隔。例如,以下 JSON 响应:

"name": "John",
    "age": 30,
    "cars": [
        {
            "name": "Ford",
            "models": [
                "Fiesta",
                "Focus",
                "Mustang"
            ]
        },
        {
            "name": "BMW",
            "models": [
                "320",
                "X3",
                "X5"
            ]
        }
    ]
}

可以使用以下表达式获取相应的值:

  • $.name:获取 "John"。
  • $.cars[0].name:获取 "Ford"。
  • $.cars[1].models[2]:获取 "X5"。

断言结果

运行用例。如果 响应符合断言,则什么都不会发生。否则,在 结果树监听器 中会看到报错信息。

第 5 步:添加监听器

监听器是 JMeter 测试中的另一个重要组件,它用于收集测试结果并生成报告。测试人员需要添加一个或多个监听器,并设置它们的属性。以下是一些常用的 JMeter 监听器:

  • 聚合报告:提供有关事务响应时间、吞吐量和错误率的信息。
  • 查看结果树:显示每个请求的响应,包括请求头、请求正文和响应正文。
  • 监听器图形结果:将测试结果可视化,以便更轻松地分析性能问题。
  • 断言结果:验证响应是否满足特定条件。
  • 分布式负载测试图:显示不同服务器上的负载情况。

添加监听器:请右键单击线程组(或取样器) > 添加 > 监视器 > 具体的监视器。这里以最常用的 “查看结果树” 为例。

第 6 步:运行测试计划,查看报告

测试人员完成测试计划的配置后,可以运行测试计划并收集测试结果。测试人员可以通过监听器生成报告,并根据结果调整测试计划的配置。

等用例运行结束,可以在配置不同的监视器中看到对应的结果。

查看结果树:

汇总报告:

图形结果:

技巧

使用 CSV 数据文件

如果你需要模拟多种场景,可以使用 CSV 数据文件。你可以将不同的请求参数保存在 CSV 文件中,然后在 JMeter 中使用 CSV 数据文件配置请求参数。这样可以快速地生成多个测试用例,提高测试效率。

使用 JMeter 插件

JMeter 插件 有很多可以扩展其功能。例如,你可以使用 JSON Path Extractor 插件,从接口返回的 JSON 数据中提取特定的字段。你还可以使用 Response Assertion 插件,验证接口返回的结果是否符合预期。

如果你需要使用插件,你需要按照以下步骤进行安装:

1、下载插件管理器

首先,你需要下载 JMeter 插件管理器。插件管理器是一个用于安装和升级 JMeter 插件的工具。你可以在官方网站上下载最新版本的插件管理器。

2、安装插件管理器

将下载好的插件管理器文件复制到 JMeter 的 lib/ext 目录下,并重启 JMeter。

3、安装插件

打开 JMeter 并选择 Options -> Plugins Manager。在 Plugins Manager 界面中,你可以搜索要安装的插件,并点击 Install 按钮进行安装。

4、重启 JMeter

完成插件的安装后,你需要重启 JMeter 才能使其生效。

使用分布式测试

如果你需要模拟大量并发用户访问接口,可以使用 JMeter 的分布式测试功能。你可以将测试计划分发到多个 JMeter 客户端,同时运行多个线程组,模拟大量并发用户访问接口。这样可以提高测试效率,发现接口的性能问题。

总之,使用 JMeter 进行接口 自动化测试 是一种快速、高效、可靠的测试方法。通过合理的配置和技巧,可以发现接口的性能问题,提高应用程序的质量和稳定性。

更多 Jmeter 使用技巧:

相关文章
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
131 3
|
2月前
|
测试技术 UED Python
探索软件测试的边界:自动化与手动测试的协同
【8月更文挑战第59天】在追求效率和质量的软件生产中,自动化测试与手动测试的辩论从未停止。本文将通过实际案例,揭示二者如何相辅相成,共同构建更健壮的软件测试体系。我们将深入探讨自动化测试的优势、手动测试不可替代的角色以及它们如何在实际项目中协同工作,旨在为读者提供一种平衡的视角来看待软件测试的实践。
130 65
|
7天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
7天前
|
机器学习/深度学习 SQL 安全
如何确保自动化安全测试的全面性和准确性?
如何确保自动化安全测试的全面性和准确性?
|
8天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
37 3
|
14天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
41 3
|
13天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
30 1
|
1月前
|
测试技术
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
本文是关于自动化测试项目实战笔记,主要介绍了如何测试用户注册功能,包括验证码错误、注册成功以及弹框处理的测试步骤和代码实现。
87 2
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
|
1月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
175 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
1月前
|
测试技术 Python
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
本文介绍了Python的unittest框架的基础用法,包括测试初始化(setup)、清除(tearDown)函数的使用,以及assertEqual和assertGreaterEqual等断言方法,并展示了如何创建测试用例,强调了测试函数需以test_开头才能被运行。
63 1
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)