有时候我们接到的需求是秒杀或者抽奖类的功能开发,这时候可能会在某一时间点大量请求并发,我们手工自测很难发现一些高并发场景下的问题,这时候可以借助一些压测工具帮我们模拟出大量请求来测试我们的接口是否能满足业务要求。JMeter是Apache 旗下的开源软件。

JMeter支持测试的应用/服务/协议有很多例如:Web服务 (HTTP, HTTPS )、 Webservices、Database via JDBC、FTP、LDAP、Mail – SMTP(S), POP3(S) and IMAP(S)、Native commands or shell scripts、TCP、Java Objects等等。

1.JMeter下载

访问Apache官方网站https://jmeter.apache.org/download_jmeter.cgi

点击apache-jmeter-5.5.zip即可开始下载

下载完成后解压apache-jmeter-5.5.zip

2.使用

进入bin目录点击jmeter.bat文件即可打开主jmeter界面

2.1切换中文

Options->Choose Language->Chinese(Simplified)

2.2创建测试计划

如下界面中可设置激活名称、注释等信息。一个计划中可创建多个线程组

2.2.1创建线程组

TestPlan->添加->线程(用户)->线程组

线程组可设置名称和注释,一个线程相当于一个用户请求。比如线程数填100,Ramp-up时间填1,循环次数填1,就表示在1秒内发送100次请求,执行一次。

2.2.2创建HTTP请求

在线程组上点击右键,添加->取样器->HTTP请求

Web服务器:设置请求的协议,默认是http,ip填写测试服务器地址,端口号是是测试应用的端口。

HTTP请求:选择接口支持的请求方法,路径为url的请求路径(GET请求的参数可以直接带在路径上或在下面的参数配置表格中通过点击“添加”按钮来添加请求参数)

2.2.3创建察看结果树

在HTTP请求上点击右键,添加->监听器->察看结果树

2.3.4添加聚合报告

在HTTP请求上点击右键,添加->监听器->聚合报告。

说明:

TestPlan:测试计划,相当于一个工程,

Thread Group:线程组,相当于模拟的请求数,一个线程相当于一个用户请求

察看结果树:监听发送请求时各个请求的状态

聚合报告:汇总一次测试的数据

2.3.5 开始测试

点击界面工具栏的绿色三角按钮

2.3.6查看报告

选择其中的请求可以在右边看到这个请求地址、请求时间、请求数据长度等详细信息

选择聚合报告可以查看本轮测试的数据报告

说明:

样本:请求的次数(线程数*循环次数)
平均值:响应时间的平均用时,单位是毫秒
中位数:响应时间的中位数,单位是毫秒
90%百分位:90%的响应时间小于该数值,单位是毫秒
95%百分位:含义和90%类似
99%百分位:含义和90%类似
最小值:该次测试最小响应时间,单位是毫秒
最大值:该次测试最大响应时间,单位是毫秒
异常%:该次测试出现异常的请求比例
吞吐量:等同QPS(测试的接口处理请求的能力)
接收KB/Sec:响应数据的接收速率
发送KB/Sec:请求数据的发送速率