一、Jmeter 分布式执行原理:
- Jmeter 分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机 (slave)。
- 执行时,master 会把脚本发送到每台 slave 上,slave 拿到脚本后就开始执行,slave 执行时不需要启动 GUI,我理解它应该是通过命令行模式执行的。
- 执行完成后,slave 会把结果回传给 master,master 会收集所有 slave 的信息并汇 总。
二、执行机(slave)配置:
- slave 机上需要安装 Jmeter,具体如何安装这里不详细介绍了。
- 添加环境变量:JMETER_HOME=D:\B_TOOLS\apache-jmeter-2.13,此处为你 Jmeter 的路径
-
启动 bin 目录下的:jmeter-server,如下图
- 上图上标红的 IP 和端口会在 master 里配置时用到。IP 就是 slave 机器 IP,端口默 认是 1099,端口也可以自定义,这里我自定义为 1099,这个后面会讲。 5、多台 slave 的话,重复 1~4 步骤就好。
三、调度机(master)配置:
- 例如:脚本:简单的一个访问百度的脚本(这个可以根据自行定义):
- 找到 Jmeter 的 bin 目录下 jmeter.properties 文件,修改如下配置,IP 和 Port 是 slave 机的 IP 以及自定义的端口(这里端口我自定义为 100,后面会讲如何自定义): remote_hosts=10.13.11.202:1099,10.13.11.12:1099
修改jmeter.properties中server.rmi.ssl.disable=true 不启动SSL
多台 slave 之前用","隔开,我这配置了 2 台,可以看到标红的这个就是上面截图 slave 的 IP 和 Port.
-
打开 Jmeter 脚本,加上远程地址的仓库的 ip。执行命令,master 会提示
Slave 机上会提示:开始和结束的两个线程,如图:
四、自定义端口:
上面其实已经实现了 Jmeter 的分布式测试,这部分主要介绍下如何自定义 slave 端口:
- slave:在 slave 机的 Jmeter 的 bin 目录下,找到 jmeter.properties 文件,修改如 下两个配置项,比如我这里修改为 1888: server_port=1888 server.rmi.localport=1888
- 启动 slave 机上的 jmeter-server.bat
- master:修改 master 机器的 jmeter.properties 文件: remote_hosts=10.13.223.202:1000,10.13.225.12:1888
修改jmeter.properties中server.rmi.ssl.disable=true 不启动SSL - 重启 jmeter.bat
五、其它说明:
- 调度机(master)和执行机(slave)最好分开,由于 master 需要发送信息给 slave 并且 会接收 slave 回传回来的测试数据,所以 mater 自身会有消耗,所以建议单独用一台机器作 为 mater。
- 参数文件:如果使用 csv 进行参数化,那么需要把参数文件在每台 slave 上拷一份 且路径需要设置成一样的。
- 每台机器上安装的 Jmeter 版本和插件最好都一致,否则会出一些意外的问题。