一:
由于Jmeter本身的瓶颈,当模拟数以千计的用户并发的时候,使用单台机器会有些力不从心,甚至还会引起Java内存溢出的错误,要解决这个问题,就要使用分布式测试,运行多台机器,也就是所谓的Agent来分担Jmeter自身的压力,并且借此来获得更大的并发用户数,
因此我们需要进行相关的修改和配置:
1,安装Jmeter,并且定其中一台机器为controller机器,其他的机器位Agent机器,然后运行所有的Agent机器的jmeter-server.bat文件,假如现在使用两台Agent机器:172.19.1.94,另一台是:172.19.1.10,(所有的Agent机器必须安装jdk)
2.在controller机器的目录bin目录下边编辑:jmeter.properties文件,把这里面的remote_hosts修改成为你的Agent的IP;这里如果controller也进行并发测试的话,也就直接把对应的IP加入进来就可以了;这里面的1099是端口号,可以不是1099,可以自己定的;
3.然后保存,
4.然后启动controller机器的jmeter.bat文件,然后在
这里就可以看到对应的Agent机器了;
5.然后运行全部就可以了;
6.有时候代理机器比较少,controller机器也要作为代理机器用来测试,这时候,就需要把controller机器的IP地址加入到刚刚修改的文件里面去;然后在按照上述步骤重新启动就可以了;每次我们需要先启动:jmeter-server.bat,然后在启动jmeter.bat文件;
二:
自己在使用时候踩过的坑:
agent机器不用配置东西,Apache4.0以后分布式要创建密钥:双击:create-rmi-keystore.bat,按照提示创建密钥----然后会生成一个密钥文件:rmi_keystore.jks;然后吧这个密钥文件拷贝到每个agent机器上,放到对应的bin目录下边,然后controller机器就可以控制对应的agent机器了;
jmeter 远程的时候,要打开服务,jmeter.server.bat,
jmeter.bat 打开
报Java错误的时候要加:环境变量;
最好jmeter的版本和,Java版本一致;
1,对于Agent机器上启动了jmeter-server.bat后会出现报错的现象:can not find ApacheJmeter_core.jar;
解决方法:
这个事开始的时候没有找到对应: ApacheJmeter_core.jar;或者如果不希望看到:can not find的字样,需要我们添加环境变量,变量为bin的上级目录,这样就不会看到can not find的字样了;
2.在jmeter分布是测试中,所有的Agent的线程数,等于在controller机器中线程组的配置;