1、背景:
由于jmeter 本身的瓶颈,当需要模拟数以千计的用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAV内存溢出的错误,要解决这个问题就要采用分布式测试来解决,运行多台机器Agent 来分担jmeter 自身的压力
2、操作步骤:
1):安装jmeter 并确认其中一台机器作为controller,其他机器作为Agent,然后运行所有agent机器上的jmeter-server.bat文件
假定我们使用两台机器:192.168.0.11和192.168.0.12作为agent,(agent机器上必须安装jdk 并设置环境变量)
2):在controller 机器的%JMeter_home%/bin 下,编辑JMeter.properites 中 "remote_hosts = 127.0.0.1",其中的127.0.0.1 表示运行JMeter Agent的机器,这里需要修改为:"remote_hosts = 192.168.0.11:1099,192.168.0.12:1099" -其中1099 位端口号。
3):启动 controller 机器上的jmeter.bat,选择菜单Run 中 "Remote Start" 中的 192.168.0.11:1099 和192.168.0.12:1099来运行Agent
4):如果想要某个电脑执行,可以点击该电脑的ip地址就可以,如果两个都要执行,可以点击Run 菜单下的 远程运行全部 按钮即可
5):有时候用作代理的机器太少,忍不能满足需求,则需要将作为Controller 的电脑也当做Agent,则同样修改JMeter.properites 中 的remote_hosts ,将controller的ip 填进去,同时,这个时候需要打开controller 电脑中Jmeter下 bin目录下的jmeter-server.bat ,然后再打开JMETER.bat,此时 进入 run --remote start 菜单,可以看到controller也作为远程机器进行运行
3、常见问题:
agent 机器启动jmeter-server.bat 时,后台提示:“could not find ApacheJmeter_core.jar”
解决方法:添加环境变量:JMETER_HOME,路径为bin 目录的上一级目录,