使用JMeter进行API性能压测(执行篇)

前言:

Jmeter的安装配置就不多说了...自行教程吧

6个步骤,直接上车!^_^

1、创建线程组:

创建线程组之后,我们就可以设置线程组名称和压测参数。线程组有以下几个重要参数需要配置:

  1. 线程数(Users):模拟的用户数量,即并发用户数

  2. Ramp-Up时间(秒):JMeter启动所有线程所需的秒数,用于控制用户加载速度

  3. 循环次数:每个线程执行测试用例的次数

  4. 调度器:可以设置测试的持续时间和其他调度选项

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

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

3、创建HTTP信息头管理器(POST)

配置Content-Type头部信息来告知JMeter我们当前发起的请求是参数为JSON格式的POST请求。

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

4、添加结果树和聚合报告

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

结果树(View Results Tree)用于查看每个请求的详细响应信息,包括请求头、响应头、响应体等。它可以帮助我们:

  1. 验证请求是否正确发送

  2. 检查响应数据是否符合预期

  3. 调试测试脚本中的问题

  4. 查看详细的响应时间信息

聚合报告(Aggregate Report)用于查看整体的性能统计数据,包括平均响应时间、最小响应时间、最大响应时间、吞吐量等关键性能指标。

5、点击启动进行压测

(1)点击这个绿色按钮即可开始压测

++注意:梯度施压,不要一次性加到最大压力,便于观察拐点,到达出现error%时,多跑几遍。++

(2)点击结果树就能看到请求结果

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

聚合报告包含了以下关键性能指标:

  1. Label(标签):表示请求的名称标识,通常是HTTP请求的路径或自定义的请求名称,用于区分不同的请求类型。

  2. Samples(样本数):表示在测试期间发送的请求数量,即JMeter执行该请求的总次数。

  3. Average(平均值):表示所有请求的平均响应时间,单位为毫秒。这个值越小说明系统响应速度越快。

|----------|---------------------------------------------------------------------------------|
| 90% 响应时间 | 把所有响应时间的数值从小到大排序,取前 90% 位置的值,即为该分位的值。例如: 将采集到的 100 个数据,从小到大排列,取出第 90 个用户的数据做统计。 |
| 95% 响应时间 | 把所有响应时间的数值从小到大排序,取前 95% 位置的值,即为该分位的值。例如: 将采集到的 100 个数据,从小到大排列,取出第 95 个用户的数据做统计。 |
| 99% 响应时间 | 把所有响应时间的数值从小到大排序,取前 99% 位置的值,即为该分位的值。例如: 将采集到的 100 个数据,从小到大排列,取出第 99 个用户的数据做统计。 |

  1. Min(最小值):表示所有请求中的最小响应时间,单位为毫秒。反映了系统在最佳状态下的响应速度。

  2. Max(最大值):表示所有请求中的最大响应时间,单位为毫秒。反映了系统在最差状态下的响应速度。

  3. Std. Dev.(标准偏差):表示响应时间的离散程度,标准偏差越小说明响应时间越稳定,性能越可预测。

  4. Error %(错误率):表示请求失败的百分比,计算公式为(失败请求数/总请求数)×100%。错误率越低说明系统越稳定。

  5. Throughput(吞吐量):表示单位时间内处理的请求数量,单位为请求/秒。吞吐量越高说明系统处理能力越强。

  6. Received KB/sec(每秒接收数据量):表示服务器每秒向JMeter发送的数据量,单位为KB。反映了网络传输和服务器返回数据的大小。

  7. 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字样就是已全部生成完毕。

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


尾声:

单个接口压测非常之简单易懂~

下一篇出一下压测报告的分析

关注主包不迷路(。・ω・。)/~

相关推荐
爆更小哇4 天前
jmeter插件下载+创建梯度线程组+命令生成性能测试报告
测试工具·jmeter·自动化
抓到小松鼠5 天前
jmeter-事务控制器
jmeter
张永清-老清5 天前
每周读书与学习->Jmeter中如何使用Bean Shell脚本(三)Bean Shell的基础语法之运算符和控制流语句
学习·jmeter·性能优化·性能测试·jmeter性能测试·beanshell·每周读书与学习
张永清6 天前
每周读书与学习->Jmeter中如何使用Bean Shell脚本(三)Bean Shell的基础语法之运算符和控制流语句
jmeter·性能测试·性能调优·jmeter性能测试·性能分析·性能监控·性能诊断·每周读书与学习·bean shell
半个俗人6 天前
13.jmeter性能测试高并发及高频率弱压力及持续高并发
jmeter
程序员杰哥7 天前
Jmeter正则表达式提取器和JSON提取器基础用法
自动化测试·软件测试·测试工具·jmeter·正则表达式·json·测试用例
半个俗人7 天前
12.jmeter跨越线程组传值-全局变量
jmeter
半个俗人7 天前
14.jmeter图形化报告
jmeter
爆更小哇7 天前
JMeter配置和使用入门指南
java·开发语言·测试工具·jmeter·自动化