我已根据本手册配置了 JMeter 集群测试 - JMeter 分布式测试分步
两台机器都是CentOS 6,禁用了防火墙,并且具有相同版本的JMeter。
项目是用JMeter的Java示例构建的:
所有的电话都会转到后端。如果要准确,请通过RMI电话。
主节点配置:
更新了jmeter.properties
与从IP
运行Jenkins工作-
JDK 1.7.25 /蚂蚁1 . 9 . 4/JMeter 2.11;
从节点配置:
JDK 1.7.90 /蚂蚁1 . 7 . 1/JMeter 2.11;
已启动 jmeter 服务器
。
启动测试作业后。它只在主节点上执行。没有向从属节点发送请求。< br >我不知道为什么会这样。
以下是ant任务的片段:
<target name="jmeter-test" depends="jmeter-init, is_run_remote">
<jmeter jmeterhome="${jmeter.home}"
testplan="${basedir.unix}/${test.testplan.path}"
resultlog="${basedir.unix}/${results.report.jmeter.generated.path}"
failureproperty="test_failed"
runremote="${is_remote}">
<!-- jvm settings -->
<jvmarg value="-Xms${jvm.xms}"/>
<jvmarg value="-Xmx${jvm.xmx}"/>
<!-- jmeter remoting properties -->
<property name="remote_hosts" value="${remote_hosts}" />
<property name="client.rmi.localport" value="${client.rmi.localport}" />
<property name="java.rmi.server.hostname" value="${java.rmi.server.hostname}" />
<property name="server.exitaftertest" value="${server.exitaftertest}" />
<property name="client.rmi.localport" value="${client.rmi.localport}" remote="true" />
<property name="server.rmi.localport" value="${server.rmi.localport}" remote="true" />
<property name="sample_sender_client_configured" value="${sample_sender_client_configured}" remote="true" />
<property name="mode" value="${remote.results.sending.mode}" remote="true" />
<property name="asynch.batch.queue.size" value="${asynch.batch.queue.size}" remote="true" />
与jmeter.log
的主要区别在于,通常的测试是通过编译采样器进行的:
jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.functions.StringFromFile: setParameters(${LISTING_USERS_CSV})
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: post.PostFreightSearchSampler. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: post.PostVehicleSearchSampler. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: post.region.PostFreightRegionalSearchSampler. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: post.region.PostVehicleRegionalSearchSampler. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: post.country.PostFreightCountrySearchSampler. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: post.country.PostVehicleCountrySearchSampler. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: search.execute.ExecuteFreightSearch. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: search.execute.ExecuteVehicleSearch. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: search.execute.ExecuteFreightSearch. Uses tearDownTest: false
2016/07/19 14:36:17 INFO - jmeter.protocol.java.sampler.JavaSampler: Created class: search.execute.ExecuteVehicleSearch. Uses tearDownTest: false
在远程运行的情况下,它有不同的行为:
jmeter.engine.ClientJMeterEngine: sent test to 127.0.0.1 basedir='.'
... set the run props
jmeter.engine.ClientJMeterEngine: sent run command to 127.0.0.1
2016/07/25 14:59:13 INFO - jmeter.JMeter: Remote engines have been started
2016/07/25 14:59:13 INFO - jmeter.JMeter: Started remote host: 127.0.0.1 (1469447953598)
2016/07/25 14:59:13 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times
2016/07/25 14:59:13 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1
2016/07/25 14:59:13 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true
2016/07/25 14:59:13 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000
2016/07/25 14:59:13 INFO - jmeter.reporters.Summariser: summary = 1 in 0s = ******/s Avg: 0 Min: 0 Max: 0 Err: 1 (100.00%)
2016/07/25 14:59:13 INFO - jmeter.JMeter: Finished remote host: 127.0.0.1 (1469447953740)
如何进行分布式测试?
接下来的解决方案是:
> < li>
在从属机器上正确< code>jmeter-server:
DIRNAME=目录名$0
RMI _ HOST _ DEF =-DJ ava . RMI . server . hostname = 10 . 6 . 216 . XXX
$ { DIRNAME }/jmeter $ { RMI _ HOST _ DEF }-Dserver _ port = 60000-s-j jmeter-server . log " $ @ "
只需取消对RMI_HOST_DEF的注释,分配这台机器的IP地址,并指定port - 60000(默认端口)。
在主工作站(Windows 8.1)上,根据从机架构(CentOS 6)调整测试计划-将所有资源路径更新为Unix样式,并以相同的方式为每个从机实例定位它们。
使用主mashine的IP地址和端口更正远程主机
:
remote_hosts=10.6.216.XXX:60000,10.6.216.XXX:60000
在所有从服务器上启动jmeter-server
:
[user@ECSC00103331~]$jmeter服务器使用本地端口:60000创建的远程对象:UnicastServerRef[liveRef:[endpoint:10.6.216.40:60000,objID:[2f100b79:15630b4bb73:-7fff,6552789263830402879]]
还增加了每个实例的ulimit
值:
ulimited-u 50000
默认情况下,它是 1024。您可以使用 ulimit -a
命令进行检查。
从捷讯 UI 开始运行 - 运行
-
在主机上开始测试10 . 6 . 216 . XXX:60000 @ Thu Jul 28 11:53:12 MSK 2016(1469695992526)SLF4J:类路径包含多个SLF4J绑定。SLF4J:在[jar:file:/etc/jmeter/lib/slf4j-nop-1 . 7 . 5 . jar]中找到绑定!/org/slf4j/impl/staticloggerbinder . class]SLF4J:在[jar:file:/var/lib/Jenkins/jobs/Fx-Performance-Tests-RMI/workspace/Fx-Performance-Tests/lib/slf4j-log4j 12-1 . 7 . 10 . jar中找到绑定!/org/slf4j/impl/staticloggerbinder . class]SLF4J:请向http://www.slf4j.org/codes.html#multiple_bindings寻求解释。SLF4J:实际绑定的类型为[org . slf4j . helpers . noploggerfactory]未捕获的异常org . Apache . JOR phan . util . jmeter错误:无法返回样本。有关详细信息,请参见日志文件。
即使有这个奇怪的例外,它也能正常工作。
您需要在两个 Jmeter 主服务器上运行“jmeter 服务器”
然后像这样执行脚本。
./jmeter-n-tjmeterscript.jmx-R172.0.0.1(master-ip),(serve-ip)-llogfile.jtl
参考:http://jmeter.apache.org/usermanual/remote-test.html
环境: IntelliJ IDEA 2016.3.1构建#IU-163.9166.29,构建于2016年12月9日JRE:1.8.0_112-release-408-b2 x86_64 JVM:OpenJDK 64位服务器虚拟机JetBrains s.r.o Mac OS 10.12.2 我在IntelliJ中安装了Ant支持插件,正在执行一个构建。xml脚本(请参见下面的build.xml内容)
我正在努力解决与JMeter一起运行蚂蚁的问题。 > < li> 我下载了apache-ant-1.10.3-bin.zip并将其放在C:\ant中 我提取了ZIP,它创建了另一个蚂蚁文件夹(见图),这是bin文件夹C:\蚂蚁\ant\bin 我进入控制面板- 在用户变量下输入路径;C: \tant\ant\bin 我错过了什么?
我想使用Hibernate和Gradle从现有数据库生成POJO。Gradle可以轻松调用Ant任务,Hibernate为逆向工程数据库提供了Ant任务。 我在网上找到了这个旧的Gradle任务定义,并将其修改为最新版本的Gradle,但它不起作用: 我得到了一个错误: 我如何修改它以从数据库生成模式文件?(我知道这还不会生成POJO,但这是第一步!) 我的依赖项看起来像:
问题内容: 我正在尝试在Ant中编译Flex应用程序(这里没有问题,我可以做得很好)。当我尝试将项目的内容发布到Windows网络驱动器(系统上称为“ Z:\”)时,我收到Java / Ant抛出的以下 LAME 异常: 哪种烂。我找不到任何解决这个问题的方法,而对于我的项目来说,使它正常工作至关重要。我知道我对网络驱动器具有读/写/执行权限,通过Windows资源管理器就可以在驱动器上创建/编辑
jps输出正确: 在主机上: 在5个从节点上:
我有以下蚂蚁任务: 我正在尝试将其转换为渐变,到目前为止,我有以下任务: 另外,我的sourceset定义如下: 在ant编译中,它工作得很好,但在gradle上,它无法识别源集中声明的任何依赖项。还尝试在我的dependencies{}标记上添加依赖项,但仍然不起作用。到处找都找不到解决方案 提前感谢!