当前位置: 首页 > 知识库问答 >
问题:

带有Not Gui模式的蚂蚁任务JMeter无法在从节点上运行

夏侯枫
2023-03-14

我已根据本手册配置了 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) 

如何进行分布式测试?

共有2个答案

广献
2023-03-14

接下来的解决方案是:

> < 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错误:无法返回样本。有关详细信息,请参见日志文件。

即使有这个奇怪的例外,它也能正常工作。

郭浩穰
2023-03-14

您需要在两个 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{}标记上添加依赖项,但仍然不起作用。到处找都找不到解决方案 提前感谢!