Jmeter进行分布式性能测试

上一篇 / 下一篇  2012-07-20 11:47:35 / 个人分类:jmeter

由于Jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的Agent来分担JMeter自身的压力,并借此来获取更大的并发用户数,但是需要进行相关的一些修改,具体如下。
 
1.安装JMeter,并确定其中一台机器作为Controller,其他的机器作为Agent。然后运行所有Agent机器上的JMeter-server.bat文件——假定我们使用两台机器192.168.0.11192.168.0.12作为Agent
Agent机器上必须安装jdk,并设置环境变量)
 
2.Controller机器的%JMeter_home%/bin下,编辑JMeter.propertiesremote_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,选择菜单RunRemote Start”中的192.168.0.11:10099192.168.0.121099来运行Agent
 
4.有时代理的机器太少,仍不能满足需要,则需要将作为Controller的电脑也当作Agent,则同样需要修改JMeter.properties文件,将ControllerIP地址写入。这时,需要打先打开Controller电脑中JMeterbin目录下的jmeter-server.bat,然后再打开JMeter.bat,此时,进入Run -> Remote Start菜单,可以看到Controller也作为远程机器进行运行。

当远程访问时,会看到控制台上打印出一行:Starting the test on host [ip]:1099 @....,远程执行结束,会打印一行:Finished the test on host [ip]:1099 @...

常见问题:
1、确定在controller机器上安装jdk,版本和jmeter一致,配置环境变量:Java_home
  Agent机器上安装jdk,配置环境变量:Java_homeJMeter_home
2
Agent机器启动Jmeter_server.bat时,后台提示:"could not find ApacheJmeter_core.jar"
解决方法:这个是开始没有找到ApacheJmeter_core.jar,后来去JMETER_HOME目录下去查找,最后找到了,如果不希望看到Could not find的字样,需要添加环境变量JMETER_HOME,路径为bin目录的上一级目录,这样启动jmeter-server服务时,就只会看到Found ApacheJMeter_core.jar

3Jmeter分布式控制过程中,各个Agent启动的线程数等于线程组中的配置,不是均分线程组中的配置

4. Jmeter安装目录不要放在例如:C:/Program Files/**,因为jmeter-server.bat不支持含空格的文件夹路径。

TAG:

 

评分:0

我来说两句

Open Toolbar