JMeter學習筆記--JMeter監聽器


監聽器(Listeners)是一種展示采樣結果的測試元件,采樣結果可以通過樹、表格、圖片加以展示,或者簡單地寫入某個結果文件之中。

注:不同的監聽器通過不同的方式展示服務器響應信息,但它們都將同樣的原始數據記錄到某個輸出文件中(在某個監聽器中指定一個輸出文件)

”Configure“ 按鈕可以被用來配置哪些數據會被寫入到結果文件之中,以及結果文件的格式CSV或者XML。與XML文件相比,csv文件占用的磁盤空間要小很多,當采樣次數較多時,建議使用csv格式。另外測試人員可以使用簡單控制器將一系列采樣器組合起來,並為簡單控制器添加一個監聽器,多個采樣器可使用相同的結果文件,前提是它們有相同的配置。

  • 監聽器默認配置:監聽器默認保存哪些數據域,可以在jmeter.properties(或者user.properties)文件中通過屬性定義。這些屬性會作為監聽器配置對話框的默認設置,還會影響命令行-l標識指定的日志文件(通常針對非GUI模式)。如在jmeter.properties中找到如下行:jmeter.save.saveservice.output_format=    如何保存采樣信息是可以配置的,要獲取最全面的信息,請選擇“XML”格式,並在測試計划選中“Function Test Mode"復選框,如果復選框沒有選中,那么默認保存的數據中會包含時間戳、數據類型、線程名、標簽、相應時長、消息、編碼以及成功標志。
    • sample_variables屬性用來定義一些補充JMeter變量,這些變量的值會和采樣結果一起被保存到JTL文件中。這些變量會作為補充列寫入到CVS文件中,或作為補充屬性寫入到XML文件中。
    • 配置采樣結果的保存格式:使用配置對話框來設置將哪些數據保存到結果文件中(JTL)以CSV結尾的選項只影響CSV格式的結果文件;以XML結尾的選項只影響XML格式的結果文件。目前CSV格式的結果文件,不能記錄包含換行符的數據。注意:cookies、method和查詢語句會作為”Sampler Data“的一部分加以保存。
  •  非GUI模式運行測試:當JMeter以非GUI模式運行時,可以使用-l(這是字幕,非數字1)標簽為測試創建一個監聽器(位於測試樹的最頂層)。該監聽器是測試計划新增的監聽器,並不影響測試計划中原有的監聽器。可以通過jmeter.properties文件中定義的屬性來對該監聽器進行配置。示例如下:jmeter -n -t testplan.jmx -l testplan_01.jtl -j testplan_01.log,需要注意,JMeter日志消息默認會寫到jmeter.log中,每次測試運行都會重新創建該文件,若需要保存每次運行的日志文件,就需要用到-j選項,JMeter2.3.1及以后版本,支持在日志文件名中使用變量。如果文件名中包含成對的單引號,那么文件名就會以Simple Date Format格式來處理,而且文件名會攜帶上當前時間。例如:log_file='jmeter_'yyyyMMddHHmmss'.tmp',它能為每個日志文件生成唯一的文件名。
  • 監聽器資源占用:如果監聽的采樣器數目很多,那么監聽器會占用大量內存。目前大多數監聽器會保存每一次采樣的數據備份,如:
    • Simple Data Writer
    • BeanShell/BSF Listener
    • Mailer Visualizer
    • Monitor Results
    • Sunmary Report

而下面的這些采樣器不再保存所有單次采用的副本,因為采用周期相同的采樣會被聚合起來,如此一來,監聽器需要的內存會減少,特別是在大多數采用只耗費一秒或兩秒的情況下

    • Aggregate Report
    • Aggregate Graph
    • Distribution Graph

要減少監聽器占用的內存,請選擇Simple Data Writer,並使用CSV格式保存結果文件

  • CSV記錄格式:依賴於配置監聽器過程中選擇的數據域,只有指定的數據會被記錄到結果文件之中,列的順序在結果文件中是固定的。

 

    • timeStamp - in milliseconds since 1/1/1970
    • elapsed - in milliseconds
    • label - sampler label
    • responseCode -e.g. 200,404
    • responseMessage - e.g. OK
    • threadName
    • dataType  -e.g. text
    • success - true or false
    • failureMessage - if any
    • bytes - number of bytes in the sample
    • grpThreads-number of active threads in this thread group
    • allTreads- total number of active threads in all groups
    • URL
    • Filename - if Save Response to File was used
    • latency - time to first response
    • encoding
    • SampleCount - number of samples(1,unless multiple samples are attregated)
    • ErrorCount - number of errors (0 or 1,unless multiple samples are attregated)
    • Hostname - where the sample was generated
    • IdleTime - number of milliseconds of "Idle" time (normally 0)
    • variables --if specified
  • XML記錄格式:采用節點的名稱可以是“sample"或者”httpSample"
  • 采樣屬性:
    • by - Bytes
    • de - Data encoding
    • dt - Data type
    • ec - Error count(0 or 1 , unless mulitple samples are aggregated)
    • hn - Hostname where the sample was generated
    • it - Idle Time
    • lb -Label
    • lt - Latency=time to initial response(milliseconds) -not all samplers support this
    • na - Number of active threads for all thread groups
    • ng- Number of active threads in this group
    • rc -Response Code(e.g. 200)
    • rm - Response Message(e.g. OK)
    • s - Success flag(true/false)
    • sc- Sample count
    • t - Elapsed time(milliseconds)
    • tn - Thread Name
    • ts -timeStamp
    • varname -Value of the named variable
  • 保存響應數據:使用Save_Responses_to_a_file 它會為作用域內的每個采樣器產生一個結果文件,文件名同采樣器名稱。
  • 加載(讀取)響應數據
  • 保存監聽器GUI的數據:JMeter可以將任何監聽器保存為一個PNG文件,用戶可以在測試樹種選擇某個監聽器后,右擊選擇“Save Screen As Image

 

  


免責聲明!

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



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