爱陪小樱桃

导航

 

jmeter容易混淆的概念:

线程组并不是并发数量:

1.线程组不是并发数量,这个一定要知道,是代表用户数量。

2.100个线程组,Ramp-up时间和性能结果没有关系,这个也要清楚100以内可以设置为1秒。这个和并发数量没有关系,不要搞混淆。这个是表示多长时间内,用户集合起,例如右上角有个"10/10"类似这种,大家可以观察一下。

3.还有我们在命令窗口输入jmeter可以看到:jmeter提示:不要使用GUI界面进行压测:
因为GUI压测对于jmeter来说:jmeter的内存默认是1个G,我们在使用jmeter GUI界面的时候,会产生很多数据:比如:聚合报告,查看结果树等等。所有不能使用界面模式,要使用命令模式,具体命令jmeter界面的时候有提示:
所以当你发现jmeter界面在运行的时候,你点击了停止,它还是不停止,在运行的时候,就知道它溢出了。内存溢出了。所以要使用命令的模式进行压测。

4,具体命令,大家可以通过DOS窗口输入:jmeter可以看到提示的命令:
jmeter -n -t [jmx file] -l [results file] -e -o [reporter file]

例如:jmeter -n -t aaa.jmx -l result.jtl -e -o reporters

注意:
-n:非界面模式
-t:jmx脚本
-l:生成jtl报告,(必须先不存在)
-e:把jtl报告转化为html报告
-o:输出html报告。

上述命令的时候:前提:reporter File 是原来没有的,results File 也是原来没有的。不然会报错的

并发的目标怎么获得:
如果是上线的项目,可以通过生产上的日志观察:
并发的来源:来源于业务评估和需求评估。

如何在jmeter中进行对应的并发的设置:比如并发30个:

首先我们要明白一个点:
线程数不是并发数据,Ramp-up也不是响应时间,不要用线程数/ramp-up来计算并发这是错误的。这只是代表有多少用户量。

我们需要需要设置并发量的时候,我们需要在取样器,下边增加一个配置:具体就是:配置元件--同步定时器,设置为30,时间设置为0,这就是30个并发。

并发的量的目标获取

第一种已经上线的项目:

平均并发用户数:C=nL/T
峰值并发用户数:C=C+3*根号C

n:平均每天访问的用户数量,可以直接用日活用户数代替:
L:一天内用户从登录到退出的平均时间,可以理解用户平均使用的时长
T:考察时间长度,一天内多长时间用户在使用系统。

重点记住:jmeter GUI界面只能用来调试脚本,不能用来压测。

根据经验一般按照上边做压测就可以了:
如果并发数量小于500,就上述就够用了,官方说法:小于1000,上述就够了,如果大于1000可以考虑分布式压测。

生成报告可以看:

在报告里面我们需要关注三个图表:
1.Response Times Over Time :随着时间变化的响应时间的图:
2.Active Threads Over Time :随着时间变化的活跃线程图:
3.Transaction Per Second :吞吐量TPS

分布式压力

当并发大于>1000的时候,要分布式压力
1.压力机和助攻压力机,并且jmeter版本和插件都一致
2.服务器和压力机必须要通网
3.压力机里面可以没有脚本,但是脚本中的csv文件,驱动文件必须要有,并且最好用相对路径。
4.压力机系统可以win,mac,linux都可以,公司里面一般主控机器是win,助攻机器是Linux。

如何配置分布式压力机(主控机器):

1.在jmeter:bin/jmeter.propties这个文件里面的:server.rmi.ssl.disable=true
这个表示;我们主控几和助攻机,在进行通信的时候不要加密。

2.remote_hosts=182.46.89.09:2213(这里输入的时候助攻机的IP和端口)

3.mode=Standard(把#去除,放开),表示用于图形界面的时候可以看到结果。

然后把脚本复制到:bin目录下边,然后压缩apache-jmeter 这个目录。(可以copy到助攻机,也可以不copy,如果copy了,那么apropties这个文件里面的配置就是主机器的了,要配置要改一下。)

配置助攻机:

1.配置:bin/jmeter.propties,这个文件里面的:server.rmi.ssl.disable=true
2.配置:server_port =(主工机上边的配置的助攻机的端口一样)
3.remote_hosts=127.0.0.1
4.systemctl stop fierwalled.service 关闭防火墙。
5.把bin文件设置为可执行文件。不然执行不了。
6.启动助攻机器。(注意IP要换成助攻机器的IP)
image
7.助攻机器一定要装jdk不然无法运行。

:注意主控机器不实施压力,只是控制助攻机器,如果不使用助攻机器,

jmeter -n -t aaa.jmx -l result.jtl -e -o reporters -r(后边增加个-r就说明启动所有的分布式助攻机,进行压测。)

注意:线程数一定要比并发大,至少一样。

posted on 2025-12-07 23:04  cherry小樱桃  阅读(3)  评论(0)    收藏  举报