分布式压测条件
1、运行相同版本的JMeter
2、使用相同的java版本
3、都在一个网段
4、server.rmi.ssl.disable开关一致
5、关闭防火墙
6、使用的JMeter插件一致
一、首页实现分布式压测,两台计算机需要在同一网段
什么是同一网段呢,ip地址分类
A类网段:第一位一致就是同一网段
B类网段:前两位一致就是同一网段
C类网段,前三位一致就是同一网络
二、前期准备
1、分布是压测,分为控制器(controller)和代理(agent),也用的叫master机和slave机
controller 负责把脚本分发给 agent执行。
agent 负责执行脚本,产生对服务器的实际压力
agent 执行脚本后,把压测的结果发送给 controller。
controller 作为控制器不加入实际测试,只负责发送和收集 agent 信息。
2、前期这两个电脑要能ping得通,ping不通主要原因可能如下
(1)防火墙问题,两台机器的防火墙没有关闭
(2)系统——>高级系统设置——>远程——>勾选允许远程协助
三、配置master机和slave机
1、开始配置master机和slave机
例如:master机,我们管他叫master,有两台slave机,我们管他叫slaveA ,slaveB
(1)首先,获取到slaveA 和 slaveB的ip地址,并记住,后面要用
(2)修改slaveA和slaveB bin下的jmeter.properties文件
remote_host=127.0.0.1 打开注释
server_port = 1099 只要1099端口没被别的应用占用,可不改,改的话mater和slave的端口要保持一致
server.rmi.ssl.disable = true 禁止认证
(3)启动 slave端 jmeter-server 服务
仍然在 bin 目录下哦
如果压力机是 linux 或 mac:./jmeter-server-Djava.rmi.server.hostname=压力机ip
如果压力机是windows: jmeter-server.bat-Djava.rmi.server.hostname=压力机ip
例“ .\jmeter-server -Djava.rmi.server.hostname=192.168.1.103”( 注意host等于号两边不可以有空格)
(4)配置mater端:修改bin下的jmeter.properties文件
remote_hosts=192.168.1.103:1099(slave的ip和端口号,如果是多个,用逗号隔开)
server_port=1099 (与slave端一致)
server.rmi.ssl.disable = true 禁止认证
mode=Standard 如果设置,则结果树中查看不到slave的请求和响应信息
2、开始压测
master端
slave端收到mater端开始执行的命令后
四、代csv参数化,分布式压测的配置方式
只要将csv的文件夹,master机和slave机放在同样的路径下就可以
但注意的是,master机的csv插件一定要和slave机的一致,笔者遇到的坑是用了一个csv的随机插件,但slave机上没有,结果就会报如下错误
后来将slave机同样安装了csv的随机插件,就解决了