标签:
如果你的JMeter客户机不能进行属性,来模拟 足够的用户强调您的服务器或在网络水平是有限的,存在一个选项来控制多个远程JMeter 引擎从一个JMeter客户机。 通过运行JMeter远程,你可以复制 一个测试在许多低端电脑,从而模拟服务器上的负载更大。 一个 JMeter的实例客户端可以控制任意数量的远程JMeter实例,并收集 所有的数据。 这提供了以下功能:
然而,远程模式并使用更多的资源比独立运行相同数量的非gui测试。 如果使用了许多服务器实例,客户机JMeter可以成为重载,因为客户端网络连接。 这是提高了切换到剥夺模式(见下文),但你应该经常检查你的客户不是超载。
注意,虽然您可以执行JMeterEngine在您的应用程序 服务器,您需要注意这一事实,这将是增加处理 开销在应用服务器上,因此您的测试结果 有些污染。 推荐的方法是有一个或多个机器上 相同的以太网段配置运行您的应用程序服务器 JMeter引擎。 这将最小化网络测试的影响 结果而不影响应用程序服务器的性能 本身。
步骤0:配置节点
确保所有节点(客户机和服务器):
如果测试使用任何数据文件, 请注意,这些都不是跨由客户机发送 确保这些在每个服务器上相应的目录 。 如果有必要你可以定义不同的值通过编辑属性 user.properties 或 system.properties 在每个服务器上的文件。 这些属性将会捡起当服务器启动和可能 测试计划中使用影响其行为(例如,连接到一个不同的远程服务器)。 或者使用不同的内容所使用的任何数据文件来完成测试 (例如,如果每个服务器必须使用独特的id,把这些数据文件)之间的
步骤1:启动服务器
运行JMeter远程节点,在所有机器上启动JMeter服务器组件你希望通过运行上运行 的 JMETER_HOME / bin / jmeter-server (unix)或JMETER_HOME / bin / jmeter-server.bat (windows)脚本。
注意,在每个节点上只能有一个JMeter服务器不同,除非使用RMI端口。
JMeter 2.3.1以来,JMeter服务器应用程序启动RMI注册中心本身; 没有必要开始单独RMI注册表。 回到之前的行为,定义JMeter的财产
server.rmi.create=false
在服务器主机系统。
默认情况下,RMI使用动态端口为JMeter服务器引擎。 这可能会导致问题防火墙、 所以您可以定义JMeter属性 server.rmi.localport控制这个端口号。 如果这是零,它将被用作本地端口号服务器引擎。
步骤2:添加服务器IP客户的属性文件
编辑属性文件 在控制JMeter的机器 。 在 JMETER_HOME / bin / jmeter.properties , 找到属性命名。” remote_hosts ”, 添加的值运行JMeter服务器的IP地址。 可以添加多个这样的服务器,以逗号分隔。
请注意,您可以使用 - r 命令行选项 而不是指定远程主机(s)使用。 这有同样的效果 - r 和 -Jremote_hosts = { }一旦 。 如。
jmeter -Rhost1,127.0.0.1,host2
如果您定义JMeter属性 server.exitaftertest = true 后退出,那么服务器将运行一个测试。 看到也 - x 标志(下面描述)
步骤3:从GUI客户机启动JMeter客户端检查配置
现在您已经准备好开始控制JMeter客户机。 微软视窗系统,启动客户端脚本” bin / jmeter.bat ”。 对于UNIX, 使用脚本” bin / jmeter”。 你会注意到Run菜单包含两个子菜单:“遥控起动”和“远程停止” (见图1)。这些菜单包含您在属性文件中设置客户端。 使用远程启动和停止的 正常的JMeter启动和停止的菜单项。
步骤3 b:启动JMeter从非gui客户机
GUI模式只能用于调试,作为一个更好的选择,你应该在远程服务器上启动测试(s)从非GUI客户机(命令行)。 命令就是:
jmeter -n -t script.jmx -r
或
jmeter -n -t script.jmx -R server1,server2,…
其他旗帜可能有用:
第一个例子将开始测试在任何服务器上定义在JMeter属性 remote_hosts ;
第二个例子将定义 remote_hosts 从服务器列表中,然后开始测试在远程服务器上。
命令行客户端将退出当所有的远程服务器已停止。
在某些情况下,jmeter-server脚本可能不会为你工作(如果您正在使用一个操作系统平台没有预期到的JMeter开发人员)。 下面是如何开始JMeter服务器(步骤1),更多的手动过程:
步骤1:启动RMI注册表
JMeter 2.3.1以来,JMeter的RMI注册表启动服务器,所以本节不适用在正常的情况下。 回到之前的行为,定义JMeter的财产server.rmi.create = false 在服务器主机系统 遵循下面的说明。
JMeter使用远程方法调用(RMI)作为远程通信机制。 因此,您需要 运行RMI注册应用程序(名为,“ rmiregistry ”)与JDK和位于”本 ” 目录中。 在运行之前 rmiregistry ,确保以下jar文件在你的系统类路径:
步骤1 b:启动JMeter服务器
RMI注册应用程序运行后,启动JMeter服务器。 使用“ - s jmeter启动脚本”选项(“ jmeter - s ”)。
步骤2和3是相同的。
JMeter / RMI需要从客户端到服务器的连接。 这将使用你选择端口,默认 1099年 。
JMeter / RMI还需要反向连接,以便从服务器返回的样本结果给客户端。
这将使用一个端口。
这个端口通过jmeter属性可以控制 client.rmi.localport 在 jmeter.properties 。
如果有防火墙或其他网络过滤器JMeter客户机和服务器之间, 您将需要确保他们通过设置允许连接。 如果有必要,使用监控软件展示交通生成。
如果你运行Suse Linux,这些建议可能会有帮助。 默认的安装可能会启用防火墙。 在这种情况下, 远程测试将不会正常工作。 下面的建议被谢尔盖十了。
如果你看到连接拒绝,打开调试通过以下选项。
rmiregistry -J-Dsun.rmi.log.debug=true -J-Dsun.rmi.server.exceptionTrace=true -J-Dsun.rmi.loader.logLevel=verbose -J-Dsun.rmi.dgc.logLevel=verbose -J-Dsun.rmi.transport.logLevel=verbose -J-Dsun.rmi.transport.tcp.logLevel=verbose
JMeter 2.3.1以来,RMI注册中心服务器启动的;然而JMeter的选项仍然可以通过命令行。 例如:“ jmeter - s -Dsun.rmi.loader.logLevel =冗长 ”(即省略了 - j 前缀)。 或者可以定义的属性 system.properties 文件。
解决问题是消除回路 127.0.0.1 和 127.0.0.2 从 设置 。 发生了什么是 jmeter-server 不能连接到rmiregistry如果127.0.0.2 回送是不可用的。 使用以下设置来解决这个问题。
取代
`dirname $0`/jmeter -s "$@"
与
HOST="-Djava.rmi.server.hostname=[computer_name][computer_domain] -Djava.security.policy=`dirname $0`/[policy_file]" `dirname $0`/jmeter $HOST -s "$@"
还创建一个政策文件和添加 [computer_name][computer_domain] 行 设置 。
为了更好地支持使用RMI通信通道的ssh隧道 远程测试,因为JMeter 2.6:
默认情况下,JMeter使用标准RMI端口 1099年 。 可以改变这种情况。 对于这个工作成功, 所有需要同意如下:
Jmeter 2.1.1以来,jmeter-server脚本改变端口提供支持。 例如,假设您想要使用的端口 1664年 (也许 1099年 已经使用)。
在Windows上(在一个DOS框)C:\JMETER> SET SERVER_PORT=1664 C:\JMETER> JMETER-SERVER [other options]在Unix:
$ SERVER_PORT=1664 jmeter-server [other options](注意: 使用大写的环境变量)
在这两种情况下,脚本开始rmiregistry指定端口, 然后开始JMeter在服务器模式,定义了” server_port ”属性。
选择端口将登录服务器 jmeter.log 文件( rmiregistry 不创建一个日志文件)。
听众在测试计划将结果发送回客户端JMeter将结果写入指定的文件 默认情况下,样品返回同步生成。 这可能会影响服务器的最大吞吐量测试;样本结果必须在线程可以发回 继续下去。 有一些JMeter属性可以设置为改变这种行为。
适用于以下属性 批处理 和 统计 模式:
为大规模的测试有可能将部分远程服务器不可用。 例如,当您使用自动化脚本分配许多云机器和使用它们作为发电机, 要求机器可能会失败的一些引导因为云的问题。 因为JMeter 2.13有新的属性来控制这种行为。
首先你可能希望重试失败节点的初始化尝试希望稍微推迟他们的引导。 要启用重试,你应该设置 client.tries 房地产总数量的连接尝试。 默认情况下它只有一个尝试。 控制重试延迟,设置 client.retries_delay 财产 之间的毫秒数睡觉尝试。
最后,您可能还想要运行的测试与发电机成功初始化和跳过失败节点。 启用,设置 client.continue_on_fail = true 财产。
标签:
原文地址:http://www.cnblogs.com/kuihua/p/5537054.html