性能常识 Jmeter 单接口性能测试(登录、添加用户、上传文件接口)

高春琪 · 2023年03月23日 · 4263 次阅读

背景

新系统上线,验证关键业务接口(登录、添加用户、上传文件接口)性能是否满足预期的性能需求,探测不同环境下的性能瓶颈。

目标

执行测试:

登录

  1. 脚本设计:
    1. 线程组:设置线程数 30,循环勾选为永远
    2. Throughput Shaping Timer:设置起始终止 RPS“0-300”,采用持续增加的方式持续时间 60s。
    3. http 请求:利用计数器参数化实现多用户账号登录。
  2. 查看执行结果:

    1. TPS 监听器:随着时间的增加 RPS 逐步提升,实际的 TPS 也随之线性增长;在脚本运行 12s 时出现拐点,达到性能瓶颈。
    2. 聚合报告:平均响应时间:0.343s,异常率 0%,平均 Tps:53/sec
    3. 资源占用情况:CPU 占用率 max=44.46%,内存 used=2.01GiB

添加用户

  1. 测试脚本准备:

    1. 线程组:设置线程数 30,循环勾选为永远。
    2. Throughput Shaping Timer:设置起始终止 RPS“0-300” 和持续时间 60s,采用持续增加的方式。
    3. http 请求:通过计数器设置 username 参数化,防止添加用户重复;在 Http 信息头中维护 Token 信息。
  2. 查看执行结果:

    1. TPS 监听器: 随着时间的增加 RPS 逐步提升,实际的 TPS 也随之线性增长,说明目前还没有到接口及服务器的极限。
    2. 聚合报告:平均响应时间:0.056s,异常率 0%,平均 Tps:150.4/sec
    3. 资源占用情况:CPU 占用率 max=38.60%,内存 used=1.99GiB。

上传文件

  1. 测试脚本准备:

    1. 线程组:设置线程数 10,循环勾选为永远。
    2. Throughput Shaping Timer:设置起始终止 RPS“0-60” 和持续时间 60s,采用持续增加的方式。
    3. csv 参数化文件存放 1000 张图片路径,模拟批量图片上传
  2. 查看压测环境带宽、网速:

    1. 带宽:72.2Mbps
    2. 网速:
  3. 执行结果

    1. TPS 监听器:TPS 在 1~3/sec 区间。
    2. 聚合报告:平均响应时间:9.562s,异常率 0%,平均 Tps:56.8/min
    3. 资源占用情况:CPU 占用率 Max=5.27%,内存 used=2.01GiB;根据 CPU 占用率分析,可能由于本地带宽限制,系统资源未达到饱和状态。
  4. 在 linux 服务器中部属 jmeter 执行相同脚本,查看执行结果

    1. 聚合报告:平均响应时间:0.380s,异常率 0%,平均 Tps:128.5/sec
    2. 资源占用情况:CPU 占用率 max=97.59%,内存 used=2.33GiB

分析与结论

  1. 登录接口:根据 TPS 监听器折线图分析,随着时间的增加 RPS 逐步提升,实际的 TPS 也随之线性增长;但提前出现了拐点;提高内存上限和不同网络环境下压测实际 TPS 均不满足目标值。
  2. 添加用户接口:根据 TPS 监听器折线图分析,RPS 达到最大值前 TPS 未出现明显拐点;在不同环境下压测,实际 TPS 接近目标值。
  3. 上传文件接口:在本机压测时,由于本机带宽限制 TPS 较低;在服务器环境压测,线程数=100 实际 TPS 达到 128.5/sec。

  4. 用户登录接口:
    标题 接口 压测环境 内存上限 线程数 实际 Tps CPU 占用率 max 内存使用率 max
    用户登录负载测试 /login WiFi 1G 30 53/sec 44.46% 2.01GiB
    用户登录负载测试 /login WiFi 1G 100 48.4/sec 44.75% 2.01GiB
    用户登录负载测试 /login WiFi 2G 30 49.7/sec 60.42% 1.74GiB
    用户登录负载测试 /login WiFi 2G 100 53.2/sec 50.29% 1.75GiB
    用户登录负载测试 /login 服务器 2G 100 74.3/sec 82.63% 2.19GiB

  5. 添加用户接口:
    标题 接口 压测环境 内存上限 线程数 实际 Tps CPU 占用率 max 内存使用率 max
    添加用户负载测试 /user/add WiFi 1G 300 150.4/sec 38.60% 1.99GiB
    添加用户压力测试 /user/add WiFi 1G 300 301.1/sec 97.60% 2.02GiB
    添加用户压力测试 /user/add WiFi 2G 300 230.4/sec. 97.60% 1.82GiB
    添加用户压力测试 /user/add 服务器 2G 300 283.5/sec. 97.78% 2.20GiB

  6. 上传文件接口:
    标题 接口 压测环境 内存上限 线程数 实际 Tps CPU 占用率 max 内存使用率 max
    上传文件负载测试 /common/upload WiFi 1G 10 56.8/min 5.27% 2.01GiB
    上传文件压力测试 /common/upload WiFi 2G 10 1.2/sec 11.76% 1.81GiB
    上传文件负载测试 /common/upload 以太网 2G 10 3.1/sec 12.36% 1.99GiB
    上传文件压力测试 /common/upload 以太网 2G 10 3.4/sec 14.76% 2.00GiB
    上传文件压力测试 /common/upload 服务器 2G 100 128.5/sec 97.59% 2.33GiB

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册