JMeter 使用多台机器产生负载的操作步骤如下:

关于linux环境运行jmeter,分布式测试 见 http://www.51testing.com/html/55/383255-847895.html

  (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。然后运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.0.100 和192.168.0.101 作为agent)

  (2)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:

  查找:

  remote_hosts=127.0.0.1

  修改为:

  remote_hosts=192.168.0.100:1099,192.168.0.101:1099

  这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。

  (3)启动controller 机子上的jmeter应用,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。

原文地址: http://www.cnblogs.com/heygirl/p/4908853.html

注意问题(非常重要):
在分布式的测试中,会遇到很多问题,如:
(1)控制机 连不上 agent 机
解决方法:telnet 192.168.1.117 1099  看IP 端口通不通,如果通 OK,不通,检查防火墙

(2)agent 机 连不上控制机
查看 agent 机上,日志文件:jmeter-server.log,看具体的报错提示;另外,查看 jmeter-server 这个服务绑定该 agent机的IP是否正确,如果绑定的IP不正确,肯能是 C:\Windows\System32\drivers\etc中HOST文件中设置有问题。

最好的方法就 agent和controller机器都是新安装的干净的机器,不然会有一堆的问题,让你崩溃。

(3)各个agent和controller机器上的时间必须是同步的,要不然 最后的结果会有差别,这个非常重要。

* 遇到的问题及解决方法

Controller 机(192.168.1.117);Agent 机器(192.168.1.132)
Agent 机 上的jmeter-server已经启动OK;

遇到的问题:

启动remote测试后,Agent 机器 收到任务,且控制台显示:”Starting the test on host 192.168.1.132:1099 @ ***“,说明控制机分派上agent机上的测试成功,但是 一直卡在这里不动了,控制机一直没有显示 任务执行状况以及收到测试结果(任务一直不结束,卡住了)。

解决方法:

(1)telnet 192.168.1.132 1099  是通的,说明 控制机 连agent 机是OK了,问题排除。

(2)查看 agent机上 c:\apache-jmeter-2.13\bin 中 jmeter-server.log 日志文件,发现有错误: jmeter.samplers.RemoteListenerWrapper: testStarted(host) java.rmi.ConnectException: Connection refused to host: 169.254.123.36; nested exception is: 
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at $Proxy1.testStarted(Unknown Source)
at org.apache.jmeter.samplers.RemoteListenerWrapper.testStarted(RemoteListenerWrapper.java:85)
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:216)
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:336)
at java.lang.Thread.run(Unknown Source)

推断原因是 agent 连不了控制机,被拒绝,连接超时。

问题产生了: 为何 控制机 IP变成了 169.254.123.36, IP不是 192.168.1.117 吗?(问题的根源在于:我安装的VMware的一个windows虚拟机的网络设置成了“Bridge 并勾选 Replicate physical network IP address所以在controller机器的网络路由设置中,显示的网络连接为:VirtualBox Host-Oly Network,在这个连接上右键,选择“Disable“,禁用掉,然后重新运行jmeter-server.bat,在窗口中发现IP已经正确了,这样问题就解决了) 估计问题就在这里。

(3) 果断换了一台新安装的 windows 机器作为控制机,然后 重新试了一下,没有问题。在控制机运行测试,agent机器会收到测试“Starting the test on host 192.168.1.132:1099 @ **”,执行结束后,agent机上有日志“Finished the test on host 192.168.1.132:1099 @ ***”,控制机上也有相应的测试结果,问题解决。

总结: 问题还是 连接的问题,如果控制机和agent机连接有问题,就会有此类问题,所以建议 控制机和测试机都是干净的机器,这样避免 安装了一些软件,修改了 C:\Windows\System32\drivers\etc中HOST文件,等问题。

Jmeter 多台机器产生负载及问题解决方法的更多相关文章

  1. Jmeter 多台机器产生负载

    使用多台机器产生负载的操作步骤如下: (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent .然后运行 ...

  2. Nginx一台机器上负载均衡多个Tomcat

    默认你的机器上安装了Java环境,解压了Tomcat,安装了Nginx.默认这几个tomcat都部署在一台机器上. 对于Tomcat需要改三个地方[你部署的所有tomcat这三个地方都不能一样,如果你 ...

  3. JMeter一台机器可以支持多大的并发量

    Support for concurrent thread is basically depends on many factors like OS, free RAM and connections ...

  4. appium 启动了2个端口,但是只有一台机器在跑的 问题解决 (还没试,记录在此)

    appium启动了2个,端口分别设置为了4723 4725, 在测试类中也分别指定了设备和端口,用device来指定.然而每次都是运行一个设备. 后来添加了udid这个来指定才发现可以.deviceN ...

  5. 【转】同一台机器部署两个jboss方法

    更改jboss的端口信息 1) 更改webservic的端口信息D:\jboss-new\server\default\conf\jboss-service.xml文件 <mbean code= ...

  6. JMeter联机负载及问题解决

    主控制机:存放JMeter脚本的机器叫做主控制机 负载机:被连接并用来运行脚本的机器叫做负载机 操作步骤: 1.修改主控制机上,JMeter安装目录bin目录下的JMeter.properties文件 ...

  7. 关于一台机器部署多个tomcat的小记

    一台机器部署多个tomcat在很多时候都是有可能的,比如说多个tomcat配合nginx负载更可能好的利用CPU,或者更新程序时做主备切换等. 1.直接下载或者复制一个已有的tomcat,第一个tom ...

  8. 震惊!线上四台机器同一时间全部 OOM,到底发生了什么?

    案发现场 昨天晚上突然短信收到 APM (即 Application Performance Management 的简称),我们内部自己搭建了这样一套系统来对应用的性能.可靠性进行线上的监控和预警的 ...

  9. 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息

    ARP欺骗的作用 当你在网吧玩,发现有人玩LOL大吵大闹, 用ARP欺骗把他踢下线吧 当你在咖啡厅看上某一个看书的妹纸,又不好意思开口要微信号, 用arp欺骗,不知不觉获取到她的微信号和聊天记录,吓一 ...

随机推荐

  1. 1.spring环境的搭建

    1.app.config <?xml version="1.0" encoding="utf-8" ?><configuration> ...

  2. 前端之css笔记1

    1  css引入方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  3. 2018.07.08 NOIP模拟 ABCD(背包)

    ABCD 题目背景 SOURCE:NOIP2016-AHSDFZ T2 题目描述 有 4 个长度为 N 的数组 a,b,c,d .现在需要你选择 N 个数构成数组e ,数组e 满足 a[i]≤e[i] ...

  4. dev ChartControl 备忘

    一个chartControl 里包括以个diagram(图表) diagram里可以设置 x-axis与y-axis ,另外还可以设置SecondaryXAxis与SecondaryYAxis,在Se ...

  5. python读取文件,python读取的1变成\ufeff1

    '\ufeff1' movies={} fm=open(self.path+'/movie.txt',encoding='utf-8') w2=open('./data/1.txt','a') for ...

  6. I2C笔记

      SCL:上升沿将数据输入到每个EEPROM器件中:下降沿驱动EEPROM器件输出数据.(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系. ...

  7. vivado用法

    声明为”DEBUG”,即使没有连接到其他模块,也不会被优化掉.但并不是所有的信号都是在声明为“debug”属性之后就不会优化掉. (2)同一个bank中能设置一个电平. (3)

  8. DEVEXPRESS 破解方法

    Devexpress 是.net的一个非常好用的插件.能够轻松的帮你实现一个非常炫的UI,无论是C#的Winform还是ASP.NET的网站. 鄙人这两天在用DEVEXPRESS的过程中发现在网上并未 ...

  9. SecureCRT和乱码

    示例: # ls /usr/local/r3c/bin/lib /bin/ls: /usr/local/r3c/bin/lib: ????????? 查看系统字符集设置: # locale LANG= ...

  10. go指针的一个小坑

    几乎可以肯定的说,go语言中除了闭包在引用外部变量的时候是传引用的,其他的时候都是传值的.如果你说形参可以定义为指针.好吧,那么告诉你这个指针的值其实是按照传值的方式使用的. 下面看个很浅显的例子: ...