当前位置: 代码迷 >> 综合 >> jmeter windows分布式压测
  详细解决方案

jmeter windows分布式压测

热度:88   发布时间:2023-12-02 17:20:47.0

manage主

jmeter.properties

# Remote Hosts - comma delimited
remote_hosts=192.168.3.2:1099,192.168.3.2:1098    奴隶机

server.rmi.ssl.disable=true 远程

mode=Standard 日志返回

返回日志的设置

JMeter集群: window作为controller(master),2个linux作为负载机(slave)_qq_38368494的博客-CSDN博客

主机启动jmeter

slave 奴隶机

# Remote Hosts - comma delimited
remote_hosts=192.168.3.2:1099
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099    奴隶机器的端口号可以更改

奴隶机启动server

wifi 处理

方案:这是服务器双网卡造成的问题

在linux上 修改jmeter-server

RMI_HOST_DEF=-Djava.rmi.server.hostname=slave机器名

在windows上 修改jmeter.bat

新增set rmi_host=-Djava.rmi.server.hostname=本机ip

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

当主机没报告的时候,启动主机的jmeter-server是不是 正在使用的ip,双网卡,就会出现返回的报告没展示问题

分布式的启动,就是启动所有即可

[工具]Jmeter分布式并发配置及常见问题,超详细 - 知乎

给Testers看的Jmeter分布式压测教程_一个Tester的博客-CSDN博客

master

执行的脚本,执行的报告放的位置,执行的测试报告放的文件夹(里面必须是空,重复执行,需要先清空),-R是执行的slave机器  -X是远程执行完关闭

rm -rf  /home/jmeter/html

mkdir /home/jmeter/html

 ./jmeter -n -t /home/jmeter/tmp/login.jmx  -l /home/jmeter/tmp/result3.jtl -e -o /home/jmeter/html/  -R 10.91.129.61:1099,10.91.129.63:1099 -X

其实配置可以不用加,都通过命令行方式启动,减少误操作,同时,有个误区就是master要也参与远程压测jmeter-server 是否也要启动,不然监听不到

slave

1.脚本复权,.bin目录下的脚本需要进行赋权才能执行

2.需要关闭防火墙,

systemctl stop firewalld.service 关闭防火墙

systemctl start firewalld.service   开启

systemctl status firewalld 查看状态

添加白名单

firewall-cmd --zone=public --add-port=1099/tcp --permanent

firewall-cmd --reload

./jmeter-server -Djava.rmi.server.hostname=10.91.129.61
./jmeter-server -Djava.rmi.server.hostname=10.91.129.63

一般不用jtl作为报告文件,太大,影响性能

建议使用csv文件

同时不要用beanshell是每次都用实例,改为用groovy的不是每次都去实例

因为生成这个jtl文件是要实时指标数据写入本地文件的,这个对压力机影响很大,统计误差就大,一般都不会直接用这种方式压测,尤其是tps很高的话,jtl文件非常大,几个G都有,你可以放到时序数据库里面,或者通过kafka  mysql+Prometheus 这些来展示指标,

  相关解决方案