分布式压测
分布式测试步骤:
系统HOSTS文件中进行类似 本机IP 主机名的配置,如10.0.0.23 zhoucentos,否则启动jmeter server会报错!
1,在每台机器上都部署 jmeter
2,如果是java脚本,将java脚本和相关lib包都放在jmeter目录lib/ext下
3,将jmeter的场景文件jmx上传到服务器上的任意位置
4、修改jmeter.properties中server.rmi.ssl.disable=true
5,在每台机器上进入到jmeter的bin目录下,都启动nohup ./jmeter-server &(后台启动jmeter-server服务)
6,进入到jmeter目录下,将两台机器上的jmeter下所有文件都赋予可执行权限,chmod -R +x ./*
7,在主jmeter的bin目录下,修改jmeter.properties,将其中的remote_hosts修改为作为压力机的两台机器ip,remote_hosts=127.0.0.1,192.168.0.102?
8,在主jmeter的机器上,执行/export/servers/apache-jmeter-xxx/bin/jmeter -n -t jdbc.jmx -l result -jtl -r(示例,具体目录和路径自定义)
注意:
1、如果是http脚本,在controller的机器上有脚本文件即可;
2、如果是Java脚本,在每一台机器上都得有脚本文件和依赖的jar包
jmeter - 命令行模式 结果分析
三种方式来获取Jmeter的结果报表
一、在GUI模式下跑Jmeter的脚本,用tps插件实时展示图表
二、在命令行模式下跑Jmeter的脚本,生成的jtl文件,在GUI界面的聚合报告里打开,可以展示tps和 响应时间等数据
三、在命令行模式下跑Jmeter的脚本,生成的jtl文件,通过Jmeter自带命令,生成html报表
注意:
在实际工作中,不推荐第一种执行方式,会影响Jmeter的性能。
-
Html报表生成步骤:
1,进入jmeter的bin目录下,修改reportgenerator.properties
2,修改jmeter.reportgenerator.overall_granularity=1000(报表中数据展示间隔1秒)
3,创建一个存放数据报表的文件夹
4,执行命令:jmeter –g result.jtl –o ./output
其中:
-g 指定jtl文件的路径
-o 指定html报表生成到哪个文件夹下
注意:只有Jmeter3.0版本以上支持此功能
1,控制台取样间隔的设置
summariser.interval=10,默认为30s,最低可修改为6s
2,Jvm参数优化
bin目录下,vi jmeter,修改HEAP的size大小,默认1024M,可以设置成2048M
3,默认编码修改
sampleresult.default.encoding=UTF-8
jmeter相关问题可以多看日志:
controller的日志看bin目录下面的jmeter.log
压力机的日志看bin目录下面的jmeter-server.log
Jmeter分布式测试的各种坑之jmeter-server修改ip
第一坑:启动压力机的时候,直接./jmeter-server,会报如下错误
错误原因:127.0.0.1是本机, 一个回路地址, 没有指定地址
正确的启动方式:启动命令加一个参数, IP地址写压力机对应的地址
./jmeter-server -D java.rmi.server.hostname=118.24.178.224
1、master、slave的时间要同步,否则tps结果误差较大。
w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /reliable:yes /update
同步时间的命令:
Windows下:w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manu
al /reliable:yes /update
Linux下:ntpdate time.windows.com
https://blog.csdn.net/weixin_30542079/article/details/99624774