ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jmeter接口压测

2022-07-05 11:05:14  阅读:202  来源: 互联网

标签:Tomcat 次数 压测 接口 report 循环 线程 test Jmeter


参考资料

Jmeter如何配置和使用

https://www.cnblogs.com/stulzq/p/8971531.html

配置与执行

可变参数配置

参数定义:${__P(参数名,默认值)}
image.png
参数使用:在执行jmeter时,通过“-J参数名”的方式对参数进行调用
image.png

执行命令

windows版本命令

# windows版本命令
jmeter -n -t test.jmx -Jip=localhost -Jport=8000 -JthreadNum=10 -JloopNum=1 -l -Jx=34.20818280000000 -Jy=113.54014170000000 E:\test-report\test.log -e -o E:\test-report\report

linux版本命令

# linux版本命令
./jmeter -n -t test.jmx -Jip=11.8.242.14 -Jport=8000 -JthreadNum=400 -JloopNum=1 -Jx=30.58779530000000 -Jy=104.03337630000000 -l /data/test-report/test.log -e -o /data/test-report/report

测试环境压力源及脚本执行命令

压力源:

  • app:10.29.40.193
    • 脚本路径:/var/apache-jmeter-5.4.3/bin
    • 测试报告:/home/sunbox/test-report
  • 小程序:11.8.242.13
    • 脚本路径:/data/apache-jmeter-5.4.3/bin
    • 测试报告:/data/test-report

执行脚本:

APP
./jmeter -n -t test.jmx -l /home/sunbox/test-report/test.log -e -o /home/sunbox/test-report/report

小程序
./jmeter -n -t test.jmx -l /data/test-report/test.log -e -o /data/test-report/report

压测过程及结果记录

  1. 原始状态:

线程数10,循环次数1。
test-report-1#10-1
image.png

  1. 原始状态:

线程数100,循环次数1。
test-report-2#100-1
image.png

  1. 坐标计算修改为多线程

线程数100,循环次数1。
test-report-3#100-1
image.png

  1. 相对v3没有修改

线程数200,循环次数2。
CPU满负荷,全部超时,压测失败。

  1. 提升Tomcat线程数:200 -> 400

线程数200,循环次数1。
CPU满负荷,全部超时,压测失败。

  1. 提升客户端的redis连接数配置:100 -> 300

线程数300,循环次数1。
Java服务报GC异常,内存溢出。
test-report-4#300-1

  1. 优化油站缓存结构,调整为分片缓存

线程数300,循环次数1。
没有出现超时情况,效率显著提高。
test-report-5#300-1
image.png

  1. 相对v7没有修改

线程数1000,循环次数1。
test-report-6#1000-1
image.png

  1. 修改入参坐标,调整坐标为最大的HASH中的坐标,HASH大小为1476

参数:104.13370520000000,30.82013920000000
线程数500,循环次数1。
test-report-7#500-1
image.png

  1. 相对v9没有修改

线程数200,循环次数1。
test-report-8#200-1
image.png

  1. 修改应用程序的Redis连接数为默认的100,Tomcat连接数为400

线程数200,循环次数1。
test-report-9#200-1
image.png

  1. 相对v11没有修改

线程数400,循环次数1。
test-report-10#400-1image.png

  1. Tomcat连接数400,等待队列长度1000。Redis客户端连接数100。

线程数400,循环次数1。
观察nginx日志,请求的响应速度均在10ms~30ms之间。

  1. Tomcat和Redis配置同v13

线程数800,循环次数1。
观察nginx日志,接口响应速度均在10ms~30ms之间,与v13的压测结果大致相同。

  1. Tomcat和Redis配置同v13

线程数分别调整至1400、1200、1000,循环次数1。
均出现了性能衰减,接口响应速度在100ms~4000ms之间,已经出现了性能问题。

  1. Tomcat和Redis配置同v13

线程数1600,循环次数1。
出现了18%左右的请求丢失,原因是超过了Tomcat的最大连接数和最大等待队列长度之和,超过了Tomcat的请求处理能力范围。
同时,没有丢失的请求,出现了响应速度慢的现象,响应时间在3000ms~8000ms之间。

附件

测试报告及压测脚本

标签:Tomcat,次数,压测,接口,report,循环,线程,test,Jmeter
来源: https://www.cnblogs.com/zkm1992/p/16445578.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有