2016-07-22 48 views
3

我已經根據本手冊配置JMeter的羣集測試 - JMeter Distributed Testing Step-by-stepJMeter的用Not桂模式螞蟻任務不從節點上運行

兩種機器的CentOS 6與禁用防火牆和具有相同的版本的JMeter。

項目已建成使用JMeter的Java示例

enter image description here

所有呼叫都去往後端。通過RMI調用,如果要準確。

主節點配置

更新jmeter.properties與從IP

Run Jenkins job -> ant calls JMeter ant task -> launches test on Jmeter (it has built jar with java's sampler).

JDK 1.7.25/ant 1.9.4/JMeter 2.11;

從屬節點配置:

JDK 1.7.90/ant 1.7.1/JMeter 2.11;

已開始jmeter-server

啓動測試工作後。它只在主節點上執行。請求發送到從節點沒有發生。
我無法得到一個爲什麼這種事情發生。

這裏是螞蟻任務片段:

<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) 

如何進行分佈式測試?

回答

1

將溶液下:

  1. 在從站的機器正確jmeter-server

    DIRNAME = dirname $0

    RMI_HOST_DEF = -Djava.rmi。 server.hostname = 10.6.216.XXX

    $ {} DIRNAME/JMeter的$ {} RMI_HOST_DEF = -Dserver_port 60000 -s -j JMeter的-server.log的 「$ @」

只是取消註釋RMI_HOST_DEF和分配的IP地址這臺機器,並指定端口 - 60000(默認值)。

在主工作站(Windows 8.1)上對Slave架構(CentOS 6)進行了適應性測試計劃 - 更新了所有資源路徑到Unix樣式,並以相同的方式爲每個從屬實例定位它們。

  • 糾正remote-hosts與IP地址和端口,用於主mashine:

    remote_hosts = 10.6.216.XXX:60000,10.6.216.XXX:60000

  • 開始jmeter-server上所有從站:

    [用戶@ ECSC00103331〜] $ JMeter的服務器 使用本地端口:60000 創建遠程對象:UnicastServerRef [liveRef:端點:10.6.216.40:60000,OBJID:[2f100b79 :15630b4bb73: -7fff,6552789263830402879]]]

    還爲每個實例增加ulimit值:

  • ulimit -u 50000

    默認情況下,它是。您可以使用ulimit -a命令進行檢查。

    1. 從JMeter UI開始運行 - Run - >Remote Start All。從CentOS的控制檯片段:

      啓動主機10.6.216.XXX:60000測試@星期四07月28日11點53分十二秒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/job/:有關說明,請參閱http://www.slf4j.org/codes.html#multiple_bindings。 SLF4J:實際綁定類型爲[org.slf4j.helpers.NOPLoggerFactory] ​​ 未捕獲異常org.apache.jorphan.util.JMeterError:無法返回示例。詳情請參閱日誌文件。

    它甚至可以處理這個奇怪的例外。