使用 JMeter 进行 Performance Testing 指北

1. 概述

在本文中,我们将使用 Apache JMeter 来配置和执行性能测试。

2. 配置 JMeter

首先我们需要从官 网下载 JMeter,并解压缩,进入 bin 文件夹下并双击可执行文件(Windows 中可执行文件为 .bat,Linux/Unix 中可执行文件为 .sh)。

接下来,我们只需要将 bin 添加到系统环境变量中,这样我们就可以从命令行访问。

截止目前,最稳定的版本是 5.5,点击这里查看最新版本。

3. 创建 JMeter 脚本

现在来编写第一个 JMeter 脚本(一个包含测试技术描述的文件)。

我们要测试的 API 是一个简单的 SpringBoot 应用程序提供的 REST API 服务。

先更新 Test Plan 的名称,然后添加一个 Thread Group。

Thread Group 可以通过模拟用户行为与应用程序交互,在 GUI 界面上右击的脚本名称,然后按照下图进行操作:

在这里插入图片描述

接着配置 Thread Group,指定同时向应用程序发出请求的用户数:

在这里插入图片描述

这里我们指定了如下参数配置:

  • Name:Thread Group 的名称
  • The number of Threads(users):并发用户数
  • Ramp-up:从 0 到设置的并发数的时间
  • Loop count:重复次数

添加一个 HTTP Request Sampler,模拟 5 个用户调用这个请求。

填入 API 的地址描述信息,如下图所示:

在这里插入图片描述

只需填写 URL 地址、端口和请求的 URI 即可。

接下来,点击 “Add>Listener” 菜单,添加 “View Result Tree”(如果返回结果是一个记列表,使用 View Results in Table),然后模拟用户请求。

点击顶部的绿色箭头按钮执行测试并查看响应数据:

在这里插入图片描述

我们可以在“采样器结果”选项卡上看到更详细的响应表示。

最后在 HTTP Sampler 中添加一个 Duration Assertion ,设置每个持续时间超过 5 毫秒的请求都将被认为是失败的测试:

在这里插入图片描述

在重新运行测试后,我们看到有一些(这里是1个)用户无法在 5 毫秒内获得响应:

在这里插入图片描述

将扩展名为.jmx的测试脚本保存在 API 应用程序(Spring Boot 应用)的 resources 文件夹中。

除了上面提到的组件之外,还有更多组件可用于配置我们的测试文件:

  • JDBC Request:用于向数据库发送 JDBC 请求(SQL查询),在使用之前,我们需要设置一个JDBC连接配置(JDBC
    Connection Configuration)
  • XML Assertion:测试响应数据是否是正确的 XML 文档
  • Size Assertion:断言响应中包含正确的字节数
  • JMS Publisher:按照 J2EE 消息传递规范将消息发布到给定的目标(主题/队列)

所有组件都在用户手册中作了详细介绍

4. 运行 JMeter 测试

运行JMeter测试有两种方法,一种是使用可用的 Maven 插件,另一种是非 GUI 模式下的 JMeter 应用程序。
无论哪一种方式,两者都需要配置 JMeter 脚本的访问路径。

4.1. JMeter Maven插件

JMeter Maven Plugin 是一个 Maven 插件,它将运行 JMeter 测试的功能作为构建的一部分;该插件的最新版本是3.6.1,与Apache JMeter 5.5兼容。

在 pom.xml 中添加 JMeter Maven Plugin:

<plugin>
    <groupId>com.lazerycode.jmeter</groupId>
    <artifactId>jmeter-maven-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>jmeter-tests</id>
            <goals>
                <goal>jmeter</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <testFilesDirectory>${project.basedir}/src/main/resources</testFilesDirectory>
        <resultsDirectory>${project.basedir}/src/main/resources</resultsDirectory>
    </configuration>
</plugin>

接着可以使用 mvn-verify 运行所有测试,或者只使用 JMeter 运行 mvn-jmeter:jmeter;以下是命令的控制台输出:

在这里插入图片描述

注意:这里我们指定了脚本所在的目录:

  • 脚本默认目为:${project.basedir}/src/test/jmeter*。
  • 结果存储默认目录为:${project.basedir}/target/jmeter/results。

插件文档可点击这里访问。

4.2. 非 GUI 模式

另一种方法是通过 JMeter 可执行文件,假设它可以通过命令行使用,我们可以这样做:

jmeter -Jjmeter.save.saveservice.output_format=xml
-n -t src/main/resources/JMeter.jmx -l src/main/resources/JMeter.jtl

我们将XML设置为输出格式,它填充了精确的测试文件和结果文件。
注意:建议不要将 GUI 模式用于测试执行,GUI 模式仅用于测试创建和调试。

5. 结论

在本文中,我们在通过配置 Apache JMeter 实现 SpringBoot 应用的性能测试,使用 Maven 插件运行性能测试,同时了解如何设计基本性能测试用例。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值