JMeter分布式测试

Apache JMeter分布式测试分步骤

这个简短的教程解释了如何使用多个系统来执行压力测试。在我们开始之前,有几件事要检查。

  • 系统上的防火墙被关闭或正确的端口被打开。
  • 所有的客户端都在同一个子网上。
  • 如果使用192.xxx10.xxx IP地址,服务器在同一个子网中。如果服务器不使用192.xx10.xx IP地址,则不应该有任何问题。
  • 确保JMeter可以访问服务器。
  • 确保在所有系统上使用相同版本的JMeter和Java。混合版本将无法正常工作。

一旦确定了系统已经准备就绪,就可以开始远程测试了。本教程假定您已经在所有系统上安装了JMeter。JMeter的工作方式是一个主控制器在多个从属系统上启动测试。

 
在本教程中,我们仅使用GUI模式进行演示。在现实生活中,你应该使用非GUI模式来开始你的负载测试
 

一个主人控制多个奴隶一个主人控制多个奴隶

1术语

在我们深入分步说明之前,最好定义一些术语并确保清晰。

运行JMeter GUI的系统,它控制测试
奴隶
运行jmeter-server的系统,它接受来自GUI的命令并向目标系统发送请求,
目标
我们打算强调测试的网络服务器
系统类别系统类别

2分步

  1. 在从属系统上,转到jmeter / bin目录并执行 jmeter-server.bat在unix上的jmeter-server)。
  2. 在作为控制台的主系统上,打开Windows资源管理器并转到 jmeter / bin目录
  3. 在文本编辑器中打开jmeter.properties
  4. 编辑行remote_hosts = 127.0.0.1
  5. 添加IP地址。例如,如果我有运行在192.168.0.10,...,192.168.0.15上的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. 打开你想要使用的测试计划
简单的测试计划简单的测试计划

2开始测试

此时,您已准备好开始负载测试。如果您想仔细检查从属系统是否正常工作,在您的编辑器中打开jmeter.log您应该在日志中看到以下内容。

将日志文件写入:/XXXX/XXXXX/bin/jmeter-server.log
创建的远程对象:UnicastServerRef [liveRef:[endpoint:[192.XXX:XXXXX](local),objID:[ -  6a665beb:15a2c8b9419:-7fff,3180474504933847586]]]

如果你没有看到这个消息,这意味着jmeter-server没有正确启动。有关调试问题的提示请转到提示部分有两种方法来启动测试:一个系统和所有系统。

3启动一个客户端

  1. 点击顶部的运行
  2. 选择远程启动
  3. 选择IP地址
开始一个奴隶开始一个奴隶

4启动所有客户端

  1. 点击顶部的运行
  2. 选择远程全部开始或使用Ctrl  +  Shift  +  R
启动所有的奴隶启动所有的奴隶

5限制

分布式测试有一些基本的限制。这是已知项目的列表,没有特定的顺序。

  1. RMI不能在没有代理的情况下跨子网进行通信; 因此JMeter也不能没有代理。
  2. 从版本2.9开始,JMeter将所有测试结果剥离响应数据发送到控制台,这样可以减少对网络IO的影响。确保您监控您的网络流量,以免流量造成争用
  3. 运行在2-3 GHz CPU(最新CPU)上的单个JMeter客户端可以根据测试类型处理1000-2000个线程。

 

7提示

在某些情况下,防火墙可能仍然阻塞RMI流量。

防病毒和防火墙

 
在负载测试期间应该停止杀毒软件,因为它会严重影响导致错误结果的时间。
 

防火墙需要停止从Windows服务或至少一些端口需要打开。

  1. 打开控制面板
  2. 打开管理工具
  3. 双击服务
  4. 进入赛门反病毒,右键单击并选择停止

Windows防火墙

  1. 打开网络连接
  2. 选择网络连接
  3. 右键单击并选择属性
  4. 选择高级选项卡
  5. 取消选中互联网连接防火墙

Linux的

在RedHat(或衍生产品)上,iptables默认是开启的。执行

服务iptables停止
停止Linux防火墙或确保您打开正确的端口。
原文地址:https://www.cnblogs.com/yingfei/p/8384271.html