使用JMeter进行API性能压测(执行篇)
前言:
Jmeter的安装配置就不多说了...自行教程吧
6个步骤,直接上车!^_^
1、创建线程组:

创建线程组之后,我们就可以设置线程组名称和压测参数。线程组有以下几个重要参数需要配置:
线程数(Users):模拟的用户数量,即并发用户数
Ramp-Up时间(秒):JMeter启动所有线程所需的秒数,用于控制用户加载速度
循环次数:每个线程执行测试用例的次数
调度器:可以设置测试的持续时间和其他调度选项

2、创建HTTP请求--压测地址

输入请求的协议类型(HTTP/HTTPS)、服务器地址、端口号、请求路径、参数

3、创建HTTP信息头管理器(POST)
配置Content-Type头部信息来告知JMeter我们当前发起的请求是参数为JSON格式的POST请求。

注意必须是JSON格式:请求体数据必须是有效的JSON格式,注意括号匹配和逗号分隔符

4、添加结果树和聚合报告
然后我们就可以进行压测了,但是为了能够查看测试结果和性能指标,我们需要添加结果树和聚合报告。


结果树(View Results Tree)用于查看每个请求的详细响应信息,包括请求头、响应头、响应体等。它可以帮助我们:
验证请求是否正确发送
检查响应数据是否符合预期
调试测试脚本中的问题
查看详细的响应时间信息
聚合报告(Aggregate Report)用于查看整体的性能统计数据,包括平均响应时间、最小响应时间、最大响应时间、吞吐量等关键性能指标。
5、点击启动进行压测
(1)点击这个绿色按钮即可开始压测

注意:梯度施压,不要一次性加到最大压力,便于观察拐点,到达出现error%时,多跑几遍。
(2)点击结果树就能看到请求结果

(3)点击聚合报告就能看到性能测试报告

聚合报告包含了以下关键性能指标:
Label(标签):表示请求的名称标识,通常是HTTP请求的路径或自定义的请求名称,用于区分不同的请求类型。
Samples(样本数):表示在测试期间发送的请求数量,即JMeter执行该请求的总次数。
Average(平均值):表示所有请求的平均响应时间,单位为毫秒。这个值越小说明系统响应速度越快。
90% 响应时间
把所有响应时间的数值从小到大排序,取前 90% 位置的值,即为该分位的值。例如: 将采集到的 100 个数据,从小到大排列,取出第 90 个用户的数据做统计。
95% 响应时间
把所有响应时间的数值从小到大排序,取前 95% 位置的值,即为该分位的值。例如: 将采集到的 100 个数据,从小到大排列,取出第 95 个用户的数据做统计。
99% 响应时间
把所有响应时间的数值从小到大排序,取前 99% 位置的值,即为该分位的值。例如: 将采集到的 100 个数据,从小到大排列,取出第 99 个用户的数据做统计。
Min(最小值):表示所有请求中的最小响应时间,单位为毫秒。反映了系统在最佳状态下的响应速度。
Max(最大值):表示所有请求中的最大响应时间,单位为毫秒。反映了系统在最差状态下的响应速度。
Std. Dev.(标准偏差):表示响应时间的离散程度,标准偏差越小说明响应时间越稳定,性能越可预测。
Error %(错误率):表示请求失败的百分比,计算公式为(失败请求数/总请求数)×100%。错误率越低说明系统越稳定。
Throughput(吞吐量):表示单位时间内处理的请求数量,单位为请求/秒。吞吐量越高说明系统处理能力越强。
Received KB/sec(每秒接收数据量):表示服务器每秒向JMeter发送的数据量,单位为KB。反映了网络传输和服务器返回数据的大小。
Sent KB/sec(每秒发送数据量):表示JMeter每秒向服务器发送的数据量,单位为KB。反映了请求数据的大小。
6、生成压测报告
(1)在桌面创建一个空文件夹来存放报告
我自己的路径为:C:\Users\EDY\Desktop\HttpReports

(2)再在Jmeter的bin路径下cmd打开命令行输入(替换你自己的路径):
jmeter -n -t D:\Jmeter\apache-jmeter-5.6.3\bin\fantis.jmx -l C:\Users\EDY\Desktop\HttpReports\html.csv -e -o C:\Users\EDY\Desktop\HttpReports(3)回车运行
看见end of run字样就是已全部生成完毕。

打开以下两个报告即可。(注意后面想再次运行需要清空文件夹才能运行成功)

尾声:
单个接口压测非常之简单易懂~
下一篇出一下压测报告的分析
关注主包不迷路(。・ω・。)/~
