jmeter非GUI運行的坑


1、解壓后進入bin目錄,執行 jmeter -v查看是否成功,報以下錯誤

 main ERROR FileManager (jmeter.log) java.io.FileNotFoundException: jmeter.log (Permission denied) java.io.FileNotFoundException: jmeter.log (Permission denied)

解決方案:在bin目錄下手動創建Jmeter.log文件並賦予執行權限 chmod 777 jmeter.log

nmon在/home/atapserver/nmon路徑下

2、跑腳本:jmeter -n -t /home/mcbadm/jmeter-test/atap.jmx  -l /home/mcbadm/jmeter-test/atap.jtl

jmeter -n -t /home/mcbadm/jmeter-test/atap.jmx -r -l /home/mcbadm/jmeter-test/atap.jtl -e -o/home/mcbadm/apache-jmeter-5.2.1/resultReport

進入Jmeter啟動位置: cd /home/mcbadm/apache-jmeter-5.2.1/bin

報以下錯誤:

Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/home/mcbadm/jmeter-testscript'. 
Cause:
CannotResolveClassException: kg.apc.jmeter.vizualizers.CorrectedResultCollector

原因:Jmx腳本中包含其他插件的內容,需先刪除或者先安裝插件

安裝插件:

將jmeter-plugins-manager-1.4.jar,JMeterPlugins-Extras.jar,JMeterPlugins-Standard.jar上傳到服務器jmeter安裝目錄的lib/ext

 

3、輸出dashboard網頁版結果輸出,加上-e -o參數,需要確保report文件夾是不存在或為空

jmeter -n -t /home/mcbadm/atap.jmx(測試腳本) -l atap.csv(測試結果) -e -o /home/mcbadm/apache-jmeter-5.2.1/report(放index.html文件的目錄)

4、報錯:

報錯信息:
Configuring remote engine: 127.0.0.1
Exception creating connection to: 127.0.0.1; nested exception is: 
        java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
Failed to configure 127.0.0.1
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[127.0.0.1]
An error occurred: Error in NonGUIDriver Following remote engines could not be configured:[127.0.0.1]

解決方案:

修改server.rmi.ssl.disable=true (記得去除server.rmi.ssl.disable=true前的#)

5、linux在文件編輯頁面查找內容  用   /+查找內容,回車,按n向下查找

 6、jmeter輸出結果如果結果文件名稱一致,需要將原輸出文件內容清除,否則輸出結果疊加

7、jmeter運行過程注意點:

(1)相同文件名的文件注意清除,否則輸出結果會疊加

(2)配置/bin/user.properies文件,添加以下配置(可在GUI模式下配置並打開html文件)

#---------------------------------------------------------------------------
# Reporting configuration
#---------------------------------------------------------------------------
jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.bytes = true
jmeter.save.saveservice.label = true
jmeter.save.saveservice.latency = true
jmeter.save.saveservice.response_code = true
jmeter.save.saveservice.response_message = true
jmeter.save.saveservice.successful = true
jmeter.save.saveservice.thread_counts = true
jmeter.save.saveservice.thread_name = true
jmeter.save.saveservice.time = true
# the timestamp format must include the time and should include the date.
# For example the default, which is milliseconds since the epoch: 
jmeter.save.saveservice.timestamp_format = ms
# Or the following would also be suitable
jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
jmeter.save.saveservice.assertion_results_failure_message = true
# Configure this property to change the report title
#jmeter.reportgenerator.report_title=Apache JMeter Dashboard

# Change this parameter if you want to change the granularity of over time graphs.
# Granularity must be higher than 1000 (1second) otherwise Throughput graphs will be incorrect
# see Bug 60149
#jmeter.reportgenerator.overall_granularity=60000

 Change this parameter if you want to change the granularity of Response time distribution
# Set to 500 ms by default
#jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=500

# Change this parameter if you want to override the APDEX satisfaction threshold.
jmeter.reportgenerator.apdex_satisfied_threshold=1500

# Change this parameter if you want to override the APDEX tolerance threshold.
jmeter.reportgenerator.apdex_tolerated_threshold=3000

# Sets the destination directory for generated html pages, it is better to change it for every generation
# This will override the value set through -o command line option
# jmeter.reportgenerator.exporter.html.property.output_dir=/tmp/test-report

# Indicates which graph series are filtered (regular expression)
# In the below example we filter on Search and Order samples
# Note that the end of the pattern should always include (-success|-failure)?$
# Transactions per second suffixes Transactions with "-success" or "-failure" depending 
# on the result
#jmeter.reportgenerator.exporter.html.series_filter=^(Search|Order)(-success|-failure)?$

# Indicates whether series filter apply only on sample series
jmeter.reportgenerator.exporter.html.filters_only_sample_series=true

(3)配置完成后,可將在GUI輸出結果jtl文件轉化為html解析文件,方便分析(解析需要一定時間)

jmeter -g atap.jtl -e -o D:\2020\linux\resultReport(最后必須是空目錄或者不存在目錄,否則會報錯)

(4)打開index文件會有分析圖表

 

 8、報錯信息如下:

Error in NonGUIDriver com.thoughtworks.xstream.io.StreamException

解決方案:在testplan層進行保存,而非thread層

9、參數化文件拷貝到負載機上的路徑要保持一致,因此負載機的系統要統一

10、分布式壓測:

(1)選擇GUI界面的Jmeter作為controller遠程啟動slave

(2)slave跟controller的jmeter跟jdk版本需要保持一致

(3)在controller的jmeter.properties配置slave的主機跟端口,有多個則用 , 隔開

remote_hosts=XXXXXXXXXXXX:port

 

 

(4)修改slave的jmeter.properties為本機主機ip,端口可以在server.rmi.localport = 1099處設置(若有多台slave則重復)

slave:在slave機的Jmeter的bin目錄下,找到jmeter.properties文件,修改如下兩個配置項,比如我這里修改為1888:

      server_port=1888

      server.rmi.localport=1888

      remote_hosts=ip

 

 

(5)啟動:在controller遠程啟動slave,注意用-r 參數

注意:啟動controller前需要先啟動slave,進入Bin目錄執行Jmeter-server

          命令行遠程啟動用:controller

    • jmeter -n -t 監聽設置.jmx -r -l log.jtl
    • 參數說明 :
      -n  告訴jmeter使用非GUI模式執行測試
      -t   執行的測試腳本名
      -r  遠程執行 , 在Jmter.properties文件中指定的所有遠程服務器
      -l  結果文件,如果不寫路徑,則在執行目錄生成

 

11、controller的日志看bin目錄下面的jmeter.log

 壓力機的日志看bin目錄下面的jmeter-server.log

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM