Jmeter分布式部署及运行

一、执行机配置(远程linux服务器作为执行机)

1.上传jmeter包,解压

2.配置jemeter环境变量

 vim ~/.bashrc  最后一行添加jmeter的bin目录地址;

# User specific aliases and functions
export PATH=$PATH:/home/test_tool/apache-jmeter-5.1/bin

 修改完成后启用配置:source ~/.bashrc;运行 jmeter -v 能正常打印版本则ok 

ps : jmeter -v 无java环境,安装:yum -y install java 

3.bin目录下jmeter、jmeter-server文件授权:chmod 777 XX

 4.修改jmeter-server配置:当前服务器ip,端口默认1099(netstat -lnp | grep 1099 查看端口是否被占用,如被占用则需要修改下方默认端口)

 RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx 取消注释or新增一行,后面填写本机ip地址

 

 5.执行jmeter-server(建议后台方式执行):在jmeter的bin目录下执行命令:nohup ./jmeter-server &

tail -f nohup.out 日志文件:

 6.要用到的csv,txt等文件需要放到执行机相同的目录下 

二、调度机配置(windows、linux都可以)

1.修改jmeter的bin目录下jmeter.properties 文件(远程执行机ip:端口,多个用逗号分隔,建议调度机不要作为执行机)

2.windows系统GUI方式执行(确保txt,csv等文件在每个执行机都有,且目录相同,本地执行脚本的目录需要用linux服务器对应文件的目录)

3.windows系统非GUI方式执行(配置了环境变量,否则需要在jmeter的bin目录执行):

jmeter.bat -n -t E:TestDatajmx营业厅YYTV301-28-15min.jmx -R 10.40.7.59:1099,10.40.7.51:1099 -l E:TestDatajmx营业厅jtl2801.jtl -e -o E:TestDatajmx营业厅 eport 

ps:report存放生成的html,文件夹需要存在且为空;

--windows 执行,指定2台远程执行器,同步生成html报告
jmeter.bat -n -t E:TestDatajmx营业厅YYTV301-28-15min.jmx -R 10.40.7.59:1099,10.40.7.51:1099 -l E:TestDatajmx营业厅jtl90701.jtl -e -o E:TestDatajmx营业厅 eport

-windows 执行 ,指定2台远程执行机,不生成html报告
jmeter.bat -n -t E:TestDatajmx营业厅YYTV301-28-15min.jmx -R 10.40.7.59:1099,10.40.7.51:1099 -l E:TestDatajmx营业厅jtl90701.jtl

--linux 执行,所有远程执行器执行,不生成html报告
jmeter -n -t /home/test_tool/testdata/jmx/YYTV301-28-15min.jmx -r -l /home/test_tool/testdata/jmx/1.jtl

---用已生成的jtl来生成html报告
jmeter -g E:TestDatajmx营业厅jtl90701.jtl -o E:TestDatajmx营业厅 eport

参考文档:

https://blog.51cto.com/6183574/2322003

https://www.cnblogs.com/L-Test/p/9427795.html

https://www.cnblogs.com/leeboke/p/5238269.html

 https://www.cnblogs.com/wangxianglong/p/12845111.html

window命令行执行输出html报告报错

https://www.jianshu.com/p/45307338c298  

如果执行命令出现以下错误:Creating summariser <summary>

Error in NonGUIDriver java.lang.IllegalArgumentException: Report generation requires csv output format, check 'jmeter.save.saveservice.output_format' property

解决方法:修改jmeter的bin目录下user.properties配置参数或者直接复制以下配置,再次执行命令后即可生成html可视化报告了

jmeter.save.saveservice.output_format=csv

jmeter.save.saveservice.bytes=true

jmeter.save.saveservice.label=true

jmeter.save.saveservice.latency=true

jmeter.save.saveservice.response_code=true

jmeter.save.saveservice.response_message=true

jmeter.save.saveservice.successful=true

jmeter.save.saveservice.thread_counts=true

jmeter.save.saveservice.thread_name=true

jmeter.save.saveservice.time=true

jmeter.save.saveservice.timestamp_format=ms

jmeter.save.saveservice.timestamp_format=yyyy-MM-dd HH:mm:ss

jmeter.save.saveservice.print_field_names=true

---定时任务

增加定时任务:crontab -e 

*/15 * * * * /bin/sh /home/test_tool/apache-jmeter-5.1/bin/jmeter.sh -n -t /home/test_tool/testdata/jmx/YYTV301-28-15min.jmx -r -l /home/test_tool/testdata/jmx/1.jtl

 查看定时任务执行情况:tail -f /var/log/cron

参考文档:

原文地址:https://www.cnblogs.com/forest-sunshine/p/13602475.html