项目上线前——测试新手的jMeter压测实战记录

文章目的

作者是Java后端程序员,在测试方面属于零基础测试人员
在使用jMeter对即将上线的项目进行压测时,遇到了很多问题。于是边学习,边总结。最终目的是:能够设计一个合理的测试方案,并得到一份测试报告。

一、测前准备

token问题

问题:接口需要登录后获取token才能访问、登录接口需要对密码进行RSA加密、jMeter跨线程组无法读取token变量。

压力机性能问题

问题:个人电脑无法给服务器足够的压力——可能是性能不够、可能是网速太慢;
解决:使用分布式压测。多台机器共同给服务器上压力,并将各自的压测结果汇总在一起。
参考:Linux下Jmeter安装与实战_linux上安装jmeter的安装路径在批量执行是取到哪一级-CSDN博客
参考:Jmeter-分布式压测配置及常见问题(一文全)_jmeter压测-CSDN博客

二、压测方案

  • 本次采用:
    1. 阶梯压测:逐步提升压力,例如从1000、1500、2000、3000、4500并发用户下,分别进行30分钟的压力测试,根据汇总图表,分析系统对用户数量的支持情况。
    2. 混合接口测试:假设系统中各个模块分别有一定比例的用户正在访问,不同的页面有不同的访问频次。用户在访问不同的页面时有不同的思考时间(思考要点击哪个按钮)和停留时间(查看页面内容)。最终设计出混合接口测试方案,并得到jmx文件放在服务器的bin路径下。

三、测试环境配置

参考:超全面!性能测试:JMeter分布式压测环境部署_jmeter分布式部署-CSDN博客
参考:jmeter更改报告的保存频率_jmeter 更改granularity-CSDN博客

操作系统IP地址类型环境
Centos(APP-1)xxController(控制机)jmeter-5.6.3,JDK21.0.2
Centos(APP-2)xxSlave(执行机)jmeter-5.6.3,JDK21.0.2
Centos(APP-3)xxSlave(执行机)jmeter-5.6.3,JDK21.0.2

启动准备:

# 后台启动(在jmeter安装路径的bin目录下)
nohup jmeter-server & 
# 验证启动
ps -ef | grep jmeter

压测方案执行:

# 在Controller机器的jmeter安装路径的bin目录下执行
# 1:1000线程*3台主机=3000用户
# 混合测试最最终版-阶梯1.jtl: jtl文件,可导入jmeter进行分析
# 混合测试最最终版-阶梯1-结果:可视化文件的文件夹
jmeter -n -t ./混合测试最最终版-阶梯1.jmx -r -l 混合测试最最终版-阶梯1.jtl -e -o ./混合测试最最终版-阶梯1-结果
# 2:1500线程*3台主机=4500用户
jmeter -n -t ./混合测试最最终版-阶梯2.jmx -r -l 混合测试最最终版-阶梯2.jtl -e -o ./混合测试最最终版-阶梯2-结果
# ……………… 其他方案

三、压测结果分析

压测结果将在汇总后,由jmeter自动生成,放置在主机jmeter安装路径bin目录下的文件夹内。
不做展示:但认为可主要关注:每秒响应数量、平均响应时间、活跃线程数量、每秒点击(hits)数量、响应时间百分位、响应时间VS线程数。


本人本次测试系统,发现压力主要来自于对单独资源频繁访问时的MySQL行锁(通过加判断条件或先存入缓存解决)、数据库单库写压力(上读写分离不能解决,暂时这样,可考虑云数据库),以及一些其他问题,工期小的修改、大的先不管。

在进行JMeter压测实战时,首先需要启动JMeter服务。在Linux系统中,可以使用命令"./jmeter-server"来启动服务;在Windows系统中,可以使用命令"jmeter-server.bat"来启动服务。然后,可以按照以下步骤进行JMeter压测实战: 1. 编写测试计划:打开JMeter软件,创建一个新的测试计划。在测试计划中,可以设置压测的目标、虚拟用户数量、持续时间等参数。还可以添加各种不同类型的Sampler,如HTTP请求、FTP请求等,来模拟真实场景下的用户行为。 2. 配置线程组:在测试计划中,添加一个线程组。线程组用于模拟并发用户。可以设置线程数、启动延迟、循环次数等参数。通过调整线程组的配置,可以模拟不同的压力情况。 3. 添加Sampler:在线程组下添加不同类型的Sampler。Sampler用于发送各种类型的请求,如HTTP请求、FTP请求等。可以根据实际需求添加相应的Sampler,并设置请求的URL、参数、请求方法等。 4. 添加监听器:在测试计划中添加监听器,用于收集和分析测试结果。常用的监听器有查看结果树、聚合报告、图形结果等。可以根据需要选择相应的监听器,并设置输出的格式和详细度。 5. 配置压测环境:在进行JMeter压测实战,需要配置好压测环境。确保目标系统正常运行,并根据需要进行参数调整。 6. 运行压测:完成以上步骤后,可以点击JMeter界面上的运行按钮,开始进行压测测试过程中,可以实时查看监控数据、请求结果和报告等。 7. 分析测试结果:在压测结束后,可以通过监听器输出的结果进行分析。可以查看请求的响应时间、吞吐量、错误率等指标,以评估系统性能和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值