Jmeter压力测试——接口压测和服务器资源监控

最近使用Jmeter对接口进行了压测,总结一下。本次压测是单机执行,并未涉及分布式执行。

一、压测要用命令行执行,不要用GUI。

因为GUI模式下客户端的资源消耗比较高。

执行截图:

命令:jmeter -n -t testplan.jmx -l result.jtl

testplan.jmx是使用的测试计划。

result.jtl是生成的结果文件,我们可以在测试结束后,在GUI模式下导入到聚合报告里,后面会有详细介绍。

二、测试计划准备,参数的设置

在GUI模式下调试好脚本,保存,就可以用作压测调用。

有个重点,就是设置压测的参数。

线程组的压测参数主要有3个:

1、线程数:模拟不同的用户数量

2、完成时间:所有线程的启动完成时间,也可以理解为准备时间,以秒为单位。比如我设定了20个线程,10秒完成,20/10=2,那么每秒会启动2个线程。让所有线程组的启动,在时间上是均匀,避免最开始时压力最大。

3、循环次数:每次线程执行的次数。这个循环次数的目的是,保证最后一个线程启动时,第一个线程还没结束,这样保证了压力。

压测参数的设置要结合当前的性能表现、性能目标综合考虑,压测的结论也不是跑一两次就能得到的。同样的参数,同样的条件,我一般会多跑几次,在差别不大的前提下取平均值,作为测试结果。如果各次的结果有较大差异,就得分析影响因素。

三、测试结果的查看和分析

1、针对接口性能的数据分析

把生成的jtl文件,导入到GUI模式下的聚合报告中,就会得到常用的指标。

2、服务端性能数据的收集和分析

这里我用了Jmeter的Perfmon插件。首先要在服务器上安装探针,用来采集性能指标的数据;然后在本地配置要监控的指标。要注意Jmeter的版本,perfmon和server端探针的版本,版本不匹配会获取不到数据。(我就遇到Jmeter3.2无法获取服务端指标数据的问题,换了3.3就好了)

服务端的探针,可以在github上直接下载,在服务器的根目录解压就可以,要执行.sh脚本,启动探针。

客户端的jmeter要配置IP和端口,连上探针。

perfmon的数据写入一个文件,测试结束后,在这里导入下生成的测试结果文件即可。

猜你喜欢

转载自www.cnblogs.com/brigth-9V/p/9850335.html