1.背景
由于Jmeter本身瓶颈,当需要模拟数以千计的并发用户数时,使用单台机器模拟所有并发用户有些力不从心,甚至还会引起Java内存溢出错误,要解决这个问题,可以使用分布式测试,运行多台机器运行Agent来分担Jmeter自身压力,以此获取更大的并发用户数。
2.分布式执行原理
2.1 Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。
3.4.4打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。
3.2控制机(Controller)配置
3.2.1Controller机上需要安装JDK、Jmeter,并且配置好环境变量。
3.2.2打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.174
3.2.3打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。
3.2.4打开jmeter-server.bat文件,设置完成了。
4 开始添加线程组和请求来运行查看结果
4.1打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。
4.2 打开controller,启这动代理,可以全部启动,也可以选中某个代理启动
4.3 这里以点击远程全部启动为例。运行结束后,查看聚合报告,每台电脑设置的线程数为200,这里一共是两台电脑,所以是200*2=400个线程数。
5.常见问题
5.1确定在controller机器上安装jdk版本和jmeter一致
5.2jmeter分布式控制过程中,各个agent启动的线程数等于线程组中的配置