Jmeter分布式测试

1.背景 

   由于Jmeter本身瓶颈,当需要模拟数以千计的并发用户数时,使用单台机器模拟所有并发用户有些力不从心,甚至还会引起Java内存溢出错误,要解决这个问题,可以使用分布式测试,运行多台机器运行Agent来分担Jmeter自身压力,以此获取更大的并发用户数。

2.分布式执行原理

2.1 Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

2.2 执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。
2.3 执行后,Agent会把结果回传给Controller,Controller会收集所有Agent的信息并汇总。
 
3.操作步骤
3.1 代理配置(agent)
3.1.1Agent机上需要安装JDK、Jmeter,并且配置好环境变量。
3.2.2打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.149
3.3.3打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,1099是端口号,可以随意自定义。

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启动的线程数等于线程组中的配置

 

 

 

 

 

 

posted @ 2019-05-28 10:40  emaly  阅读(226)  评论(0编辑  收藏  举报