JMeter分布式环境搭建

bluesbruce

JMeter分布式环境搭建

image

  • 控制机(controller):负责测试脚本的分发、启动、停止、收集负载机的测试结果。
  • 负载机(worker nodes):负责接收控制机的指令,向被测服务器发送并发请求。

在实际运行过程中,控制器运行bin/jmeter.sh,执行器运行bin/jmeter-server.sh。(windows系统分别执行jmeter.batjmeter-server.sh

环境

  • 所有主机(控制机和负载机)都在同一网段。
  • 所有主机开启时间同步。
  • 所有主机上使用相同版本的JMeterJDK,混合版本可能无法正常工作。
  • 所有负载机能正常访问被测应用。

配置

本例中,负载机使用Centos7,控制机使用Windows 10

配置环境变量

vim /etc/profile

export JMETER_HOME=/usr/apache-jmeter-5.4.1
export CLASSPATH=${JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${JMETER_HOME}/lib/jorphan.jar:${JMETER_HOME}/lib/logkit-2.0.jar:${CLASSPATH}
export PATH=${JMETER_HOME}/bin/:${PATH}

source /etc/prifle

RMISSL设置

如果配置SSL,需要配置相关证书,本例中直接关闭SSL模式。
配置范围:所有主机

vim bin/user.properties

# 关闭rmi的ssl
server.rmi.ssl.disable=true

指定RMI端口

默认RMI会随机开放一个端口,如果有防火墙就没法制定规则。
配置范围:负载机

vim bin/jmeter.properties

server.rmi.localport=2099
firewall-cmd --zone=public --add-port=1099/tcp --permanent
firewall-cmd --zone=public --add-port=2099/tcp --permanent
firewall-cmd --reload

配置负载机

指定负载机的IP

vim bin/jmeter-server

RMI_HOST_DEF=-Djava.rmi.server.hostname=当前负载机的IP

配置控制机

将负载机的IP和端口写入控制机的配置文件,多个用逗号分隔。

vim bin/jmeter.properties

remote_hosts=192.168.1.20:1099,192.168.1.21:1099,192.168.1.22:1099

运行

  1. 负载机启动jmeter-server
  2. 控制机启动jmeter.bat,配置任务后,在图形界面上依次点击Run -- Remote Start All
  • 负载机日志: bin/jmeter-server.log
  • 控制机日志: bin/jmeter.log

注意事项

  1. 分布式测试总样本数 = 线程数 x 循环次数 x 负载机数量
  2. 控制机如果有多个网卡(包括虚拟网卡),建议只保留与负载机同网段的网卡
  3. 当脚本有依赖文件时,必须要拷贝到负载机相同目录下。
  4. 在2-3GHz的CPU上运行的单个JMeter客户端可以处理1000-2000个线程,具体取决于测试的类型。

参考资料

阅读 498
169 声望
13 粉丝
0 条评论
你知道吗?

169 声望
13 粉丝
宣传栏