这个简短的教程解释了如何使用多个系统进行压力测试。 在我们开始之前,有几件事要检查。
1.关闭防火墙。
2.所有的客户端都在同一个子网上。
3.如果使用192.x.x.x或10.x.x.x ip地址,则服务器要位于同一子网中。 如果是服务器不使用 192或10 段的ip地址,就不会有任何问题。
4.确保JMeter可以访问服务器。
5.确保在所有系统上使用相同版本的JMeter。 混合版本可能不会正常工作
一旦你确定系统准备好了,那么是时候安装远程测试了。 教程假设您已经在所有系统上安装了JMeter。 JMeter工作的方式是1个master(主机)控制器多个slave(从机)开启测试。
术语
在我们一步步深入学习之前,最好定义下术语并且确定能清晰的理解这些术语
Master - 此系统运行Jmeter GUI,用于控制测试
Slave - 此系统运行jmeter-server,它从GUI中接收命令并发送请求到目标系统
Target - 我们计划压力测试的网络服务器
一步一步地
1.在Slave系统上,转到jmeter / bin目录并执行jmeter-server.bat(在linux上是jmeter-server )。 在windows上,你应该看到一个dos窗口出现,并带有“jre \ [version] \ bin \ rmiregistry.exe”。如果没有发生这种情况,或者意味着环境设置是不正确的,或者是系统上安装了多种的JRE。注意:[version]将是系统上应该安装的jre版本。
1.在文本编辑器中打开jmeter-server.bat
2.转到第44行,找到“:setCP”
3.编辑“ START rmiregistry”到完整的路径。 示例:“START”C:\ <JAVA_HOME> \ jre \ bin \ rmiregistry“
2.在作为控制台的master系统上,打开Windows资源管理器并转到jmeter / bin目录
3.在文本编辑器中打开jmeter.properties
4.编辑行“remote_hosts = 127.0.0.1”
5.添加IP地址。 例如,如果我在192.168.0.10,11,12,13和14上运行jmeter服务器,所有就像:remote_hosts = 192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13,192.168.0.14
6.启动Jmeter。
7.打开您要使用的测试计划
开始测试
此时,您已准备好开始加载测试。 如果要再次检查slave系统的工作情况,在记事本中打开jmeter.log。 您应该在日志中看到以下内容:
Jmeter.engine.RemoteJMeterEngineImpl:启动后备引擎
如果您没有看到此消息,则表示jmeter-server未正确启动。 有关调试的提示问题,请到提示部分。有两种启动测试的方法:单个系统和全部系统。
启动单一客户端
1.在顶部点击运行
2.选择远程启动
3.选择IP地址
启动所有客户端
1.在顶部单机运行
2.选择远程启动全部或使用CTRL-Z
限制
分布式测试有一些基本限制。以下是已知的具体内容。
1.没有代理的话,RMI不能跨子网进行通信; 因此,没有一个代理,就不能Jmeter。
2.由于JMeter将所有测试结果发送到控制台,容易使网络IO饱和。使用simple data writer 监听器保存结果并使用图表监听器查看文件是一个好主意。
3.除非服务器是大型多处理器系统,否则大多数情况下,1-2个客户端就足够了压测服务器。
4.依据测试类型,运行在2-3Ghz CPU(最近的CPU)的单个JMeter客户端可以处理300-600个线程。 (Webservices是例外)。 XML处理是CPU级的,并将快速消耗所有CPU周期。 作为一般规则,XMLcentric应用程序的性能将比使用二进制协议的应用程序慢4到10倍。作为一般规则,以XML为中心的应用程序的性能将比使用二进制协议的应用程序慢4到10倍。
额外的资源
https://wiki.apache.org/jmeter/JMeterFAQ#How_to_do_remote_testing_the_.27proper_way.27.3F
http://jmeter.apache.org/usermanual/remote-test.html
注意事项
在某些情况下,防火墙可能仍然阻止RMI流量。
赛门铁克防病毒和防火墙
在某些情况下,Symantec防火墙需要从Windows服务中停止。
1.打开控制面板
2.开放管理工具
3.双击服务
4.转到symantec反病毒,右键单击并选择停止
windows防火墙
1.打开网络连接
2.选择网络连接
3.右键单击并选择属性
4.选择高级选项卡
5.取消选中互联网连接防火墙
Linux
在Suse linux上,ipchains默认打开。 有关说明,请参阅用户手册中的“远程测试”。
在RedHat(或派生系统)上,iptables(netfilter)默认打开。 执行“service iptables stop“来停止Linux netfilter防火墙。