Java后端研发神兵利器之JMeter接口并发测试

1.1 写在前面的话

相信很多人都知道,并发是后端开发中比较棘手的问题之一,如果只是靠Swagger, PostMan 等简单的API 测试工具是无法测试出并发问题的。

为此我们需要学习使用一款并发压力测试神器——JMeter

1.2 什么是JMeter?

JMeter 是Apache 旗下一款开源的100%使用Java编写的性能压力测试工具。

1.3 JMeter 可以做什么?

JMeter 可谓是测试人员最爱的神兵利器之一。

JMeter 由于完全使用Java编写,因此支持跨平台,不仅可以用于Windows ,更可用于Mac OSX ,Linux 等多个平台。

而且,JMeter 还可以帮助测试人员生成各种格式的测试报告,支持测试的协议和组件也很广泛:

  • Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
  • SOAP / REST Webservices
  • FTP
  • Database via JDBC
  • LDAP
  • Message-oriented middleware (MOM) via JMS
  • Mail - SMTP(S), POP3(S) and IMAP(S)
  • Native commands or shell scripts
  • TCP
  • Java Objects

并且,完整的多线程框架允许通过多个线程进行并发采样,并通过单独的线程组同时对不同的函数进行采样。

而这一点正是我们这篇博文学习使用的重点——使用JMeter 对接口进行压力并发测试。

1.3 如何使用JMeter?

接下来我们讲解如何使用JMeter.

1.3.1 下载JMeter

点击官网Download Releases,我们可以看到这样的界面:
在这里插入图片描述
接下来点击上图中的*.tgz 压缩包,当然如果你的电脑不是Mac OSX 而是windows 的话则应该下载*.zip 压缩包。

1.3.2 配置环境变量

下载完成后我们解压到电脑里任意你喜欢的路径,然后设置环境。

如果是Mac OSX 则需要执行如下命令,将解压后的JMeter添加到环境变量:

# Config JMeter
export JMETER_HOME=/Users/zhaoqingfeng/documents/app/jmeter/apache-jmeter-5.3
export PATH=$PATH:$JMETER_HOME/bin

配置文件立即生效,如果是新的Mac OSX 系统需要执行如下命令:

source /etc/zshrc

如果是老系统,那么执行如下命令

source /etc/profile

值得注意的是,Mac OSX 新版本升级后环境变量不再在 /etc/profile 中,而是默认使用/etc/zshrc.
关于这个问题的更多讨论见:Mac OSX 每次打开shell执行maven命令都需要source /etc/profile 怎么办?

1.3.3 修改默认的字符编码

由于JMeter 默认使用的是ISO-8859-1 并不支持中文汉字,因此在开始之前我们最好修改下这个默认配置。

打开/Users/zhaoqingfeng/Documents/app/jmeter/apache-jmeter-5.3/bin/jmeter.properteis 配置文件,修改如下:

# The encoding to be used if none is provided (default ISO-8859-1)
sampleresult.default.encoding=UTF-8

如果不改这个配置,请求的结果如果包含汉字就会乱码。

其实还有一个比较简单的方法:图形用户界面即可修改。。。

在这里插入图片描述

1.3.4 运行JMeter

要想运行JMeter 可以通过执行jmeter.bat (Windows系统)或者jmeter (Mac OSX或其他Linux系统)来启动。

该文件位于bin目录下,比如我的在如下路径下:

/Users/zhaoqingfeng/Documents/app/jmeter/apache-jmeter-5.4.3/bin/jmeter.bat
/Users/zhaoqingfeng/Documents/app/jmeter/apache-jmeter-5.4.3/bin/jmeter
  • 如果是windows 电脑我们可以通过jmeter.bat 来启动我们的JMeter.
  • 如果是Mac OSX 或Linux 我们可以通过jmeter.sh 来启动我们的JMeter
sh jmeter

除了jemeter.bat 和jmeter 这俩脚本之外,还有很多其他脚本。

  • jmeter.bat 运行 JMeter(默认在 GUI 模式下)
  • jmeterw.cmd 在没有 Windows shell 控制台的情况下运行 JMeter(默认在 GUI 模式下)
  • jmeter-n.cmd 在此放置一个 JMX 文件以运行 CLI 模式测试
  • jmeter-nr.cmd 在此放置一个 JMX 文件以远程运行 CLI 模式测试
  • jmeter-t.cmd 在此放置一个 JMX 文件以在 GUI 模式下加载它
  • jmeter-server.bat 以服务器模式启动 JMeter
  • mirror-server.cmd 在 CLI 模式下运行 JMeter 镜像服务器
  • shutdown.cmd 运行 Shutdown 客户端以优雅地停止 CLI 模式实例
  • stoptest.cmd 运行 Shutdown 客户端突然停止 CLI 模式实例 JMeter 默认带有GUI 图形用户界面,如果想启动JMeter, 我们需要执行bin 目录下的jmeter 可执行文件。

执行效果如下
在这里插入图片描述

1.3.5 配置JMeter

接下来我们开始配置JMeter

  • 填写测试名称Name 用于区分测试用例,
    在这里插入图片描述

这里的Name建议英文名称,comments 备注这里可以写中文解释。

假如我们想模拟500个用户线程,来访问一个投票接口的话,那么我们需要这么做:

  • 选中刚才创建的模块名称,右键,Add-----> Threads(Users)-------> Thread Group
    在这里插入图片描述
  • 接下来我们填写线程组配置,我们这里配置500个线程,这将会模拟500个用户同时请求一个投票接口,
  • 选中线程组层级,右键,Add ---- > Sampler ------>Http Request.在这里插入图片描述
    因为我们要模拟用户请求投票接口因此这里是Http Request ,这应该也会是我们最常用的一种。

创建完成后我们可以看到如下图所示

最主要的是配置域名,端口,请求方法GET/POST , 请求路径以及请求参数
在这里插入图片描述
值得注意的是,如果你第一次玩这个,可能不晓得如何添加参数。

请注意看最下方有一个添加按钮可以添加参数
在这里插入图片描述

  • 配置完请求参数后我们需要配置下请求结果监听。
    在这里插入图片描述

1.3.6 执行请求

点击如下按钮执行请求在这里插入图片描述

1.3.7 查看请求结果

执行等待一小会便可以在view Results Tree 视图中看到如下请求JSON 结果内容:
在这里插入图片描述
如果想看每个请求的具体请求时间可以修改展示结果类型为 Text在这里插入图片描述
如果你仔细看你会发现,这500个请求,请求时间精确到秒级别都是一摸一样的。

当然他还有更多高级用法,这里只介绍下最常用的用法。

如果想了解更多,请参考JMeter官方文档

本篇完~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客星云

谢谢认可,希望对你的学习有帮助

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

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

打赏作者

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

抵扣说明:

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

余额充值