命令行模式運行jmeter,主從方式運行jmeter


jmeter很小,很快,使用方便,可以在界面運行,可以命令行運行。簡單介紹下命令行運行的方式:

 sh jmeter.sh  -n -t my-script.jmx -R 10.6.5.31,10.6.5.35,10.6.5.36,10.6.5.37,10.6.5.72 -l 8.jtl

上面一條命令應該可以滿足大部分需求。

    -n:使用命令行模式運行
    -t:指定要運行的jmx腳本
    -R:指定使用那些slave節點壓測
    -l:壓測記錄保存在哪里
使用-R指定節點時,當然要首先在這些節點上啟動jmeter-server的服務,-l指定日志,jmeter運行過程中的所有請求記錄,都會保存在這個jtl文件中。

調試壓測請求

命令行下,如果想查看每個請求返回的結果,需要修改jmeter.properties配置文件,

    #jmeter.save.saveservice.assertion_results=none
    #jmeter.save.saveservice.data_type=true
    #jmeter.save.saveservice.label=true
    #jmeter.save.saveservice.response_code=true
    # response_data is not currently supported for CSV output
    #jmeter.save.saveservice.response_data=false
    # Save ResponseData for failed samples
    #jmeter.save.saveservice.response_data.on_error=false
    #jmeter.save.saveservice.response_message=true
    #jmeter.save.saveservice.successful=true
    #jmeter.save.saveservice.thread_name=true
    #jmeter.save.saveservice.time=true
    #jmeter.save.saveservice.subresults=true
    #jmeter.save.saveservice.assertions=true
    #jmeter.save.saveservice.latency=true
    #jmeter.save.saveservice.samplerData=false
    #jmeter.save.saveservice.responseHeaders=false
    #jmeter.save.saveservice.requestHeaders=false
    #jmeter.save.saveservice.encoding=false
    #jmeter.save.saveservice.bytes=true
    #jmeter.save.saveservice.url=false
    #jmeter.save.saveservice.filename=false
    #jmeter.save.saveservice.hostname=false
    #jmeter.save.saveservice.thread_counts=false

將上面的注釋打開,並且值修改成true,就會打開該條記錄,jmeter就會將該條信息輸出到我們指定的jtl文件中,不要要注意壓測過程中,會產生大量的這樣的記錄,真正壓測時,最好不要開太多的日志記錄。

 

 

實時查看壓測結果

jmeter命令行下,也可以實時查看壓測結果,同樣是修改配置文件jmeter.properties。

    # Summariser - Generate Summary Results - configuration (mainly applies to non-GUI mode)
    #---------------------------------------------------------------------------
    #
    # Define the following property to automatically start a summariser with that name
    # (applies to non-GUI mode only)
    #summariser.name=summary
    #
    # interval between summaries (in seconds) default 30 seconds
    #summariser.interval=30  //這個表示統計頻率
    #
    # Write messages to log file
    #summariser.log=true
    #
    # Write messages to System.out
    #summariser.out=true //是否將統計結果輸出到控制台


打開上面的summariser.name、summariser.interval、summariser.out這三個配置項,保存,重新運行jmeter,應該就可以在shell里看到統計信息了。

    Remote engines have been started
    Waiting for possible shutdown message on port 4445
    summary +   3036 in     3s = 1001.6/s Avg:    25 Min:    14 Max:    58 Err:  3036 (100.00%) Active: 61 Started: 58 Finished: 0
    summary +  25670 in  10.3s = 2494.7/s Avg:    61 Min:    11 Max:   190 Err: 25670 (100.00%) Active: 261 Started: 258 Finished: 0
    summary =  28706 in  13.1s = 2192.0/s Avg:    57 Min:    11 Max:   190 Err: 28706 (100.00%)
    summary +  27300 in  10.3s = 2654.9/s Avg:   129 Min:    10 Max:   407 Err: 27300 (100.00%) Active: 461 Started: 458 Finished: 0
    summary =  56006 in  23.1s = 2426.7/s Avg:    92 Min:    10 Max:   407 Err: 56006 (100.00%)
    summary +  27200 in  10.4s = 2606.1/s Avg:   202 Min:    10 Max:   528 Err: 27200 (100.00%) Active: 660 Started: 657 Finished: 0
    summary =  83206 in  33.1s = 2512.8/s Avg:   128 Min:    10 Max:   528 Err: 83206 (100.00%)
    summary +  26300 in    11s = 2478.3/s Avg:   284 Min:    11 Max:   702 Err: 26300 (100.00%) Active: 861 Started: 858 Finished: 0
    summary = 109506 in  43.1s = 2541.1/s Avg:   166 Min:    10 Max:   702 Err: 109506 (100.00%)
    summary +  26200 in    11s = 2439.0/s Avg:   355 Min:    10 Max:   866 Err: 26200 (100.00%) Active: 1000 Started: 997 Finished: 0
    summary = 135706 in  53.1s = 2556.0/s Avg:   202 Min:    10 Max:   866 Err: 135706 (100.00%)

這里的錯誤率是100%,正常情況下應該是0%。

 

使用非 GUI 模式,即命令行模式運行 JMeter 測試腳本能夠大大縮減所需要的系統資源。使用命令

jmeter -n -t <testplan filename> -l <listener filename>

D:\Jmeter\bin>jmeter -n -t testplan.jmx -l listener.jtl
Created the tree successfully using testplan.jmx
Starting the test @ Thu Oct 29 11:23:49 CST 2009 (1256786629265)
Waiting for possible shutdown message on port 4445
Generate Summary Results +     5 in   8.5s =    0.6/s Avg:   981 Min:   296 Max:  2344 Err:     0 (0.00%)
Generate Summary Results +     1 in   0.2s =    4.3/s Avg:   232 Min:   232 Max:   232 Err:     0 (0.00%)
Generate Summary Results =     6 in   9.6s =    0.6/s Avg:   856 Min:   232 Max:  2344 Err:     0 (0.00%)
Tidying up ...    @ Thu Oct 29 11:24:02 CST 2009 (1256786642453)
... end of run
        這次我們可以清晰地看到每個線程的執行情況。
        這里是我們使用非 GUI 模式運行測試腳本時可以使用的一些命令:

    • -h 幫助 -> 打印出有用的信息並退出
    • -n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
    • -t 測試文件 -> 要運行的 JMeter 測試腳本文件
    • -l 日志文件 -> 記錄結果的文件
    • -r 遠程執行 -> 啟動遠程服務
    • -H 代理主機 -> 設置 JMeter 使用的代理主機
    • -P 代理端口 -> 設置 JMeter 使用的代理主機的端口號
      執行結果可以使用 GUI 模式下的聚合報告查看,比如你想要看 addCustomerScript201411060954.jtl 的報告,可以

 

        打開 JMeter GUI 界面 -> 測試計划 -> 添加線程組 -> 添加聚合報告 -> 點擊"所有數據寫入一個文件"下的 "瀏覽..." 按鈕找到你剛生成的 jtl 文件就可以對執行結果進行直觀分析了:

聚合報告





如何生成html測試報告

如果未生成結果文件(.jtl),可運行如下命令生成報告:

jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport

參數:
-n :以非GUI形式運行Jmeter
-t :source.jmx 腳本路徑
-l :運行結果保存路徑(.jtl),此文件必須不存在
-e :在腳本運行結束后生成html報告
-o :保存html報告的地址, 此文件必須不存在

如果已經生成結果文件(.jtl),可運行如下命令生成報告

jmeter -g result.jtl -o /tmp/ResultReport

Parameters:
-g :specifies the existing result file(.jtl)



打開頁面 /tmp/ResultReport 文件夾中的 **index.html ** 可查看報告

我們可以通過修改 ** user.properties** 文件來配置報告, 詳細說明和配置可參考 Jmeter性能測試html報告

報告詳解

 
 

Dashboard

Test and Report informations
  • 測試和報告信息: 測試結果保存文件/測試開始時間/測試結束時間/展示過濾器。
APDEX(Application Performance Index)
  • 應用程序性能滿意度的標准,范圍在 0-1之間,1表示達到所有用戶均滿意,可以在配置文件設置
  • Requests Summary: 請求的通過率(OK)與失敗率(KO),百分比顯示。
  • Statistics: 數據分析,基本將 Summary Report 和 Aggrerate Report 的結果合並。
  • Errors: 錯誤情況,依據不同的錯誤類型,將所有錯誤結果展示。

Charts

  • 用圖表的形式展示測試數據,讓測試報告更加 直觀。
  • 特點:
    • 將測試過程中 經常使用的數據,用圖表的形式展示,讓測試結果更加直觀
    • 每個圖表數據,有兩種展示形式。
    • 支持請求樣例過濾顯示
    • 支持導出 PNG圖片格式
Over Time
  • Response Times Over Time: 響應時間
  • Bytes Throughput Over Time: 字節 接收/發送的數量
  • Latencies Over Time: 延遲時間
Throughput
  • Hits Per Second: 每秒點擊率
  • Codes Per Second: 每秒狀態碼數量
  • Transactions Per Second: 每秒事務量
  • Response Time Vs Request: 響應時間點請求的 成功/失敗數
  • Latency Vs Request: 延遲時間點請求的 成功/失敗數
Response Times
  • Response Time Percentiles: 響應時間百分比
  • Active Threads Over Time: 激活線程數
  • Time Vs Threads: 測試過程中的線程數時續圖
  • Response Time Distribution: 響應時間分布




 


免責聲明!

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



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