1. 程式人生 > >六:Listener

六:Listener

alt ntb head indicator 解決 x文件 version 含義 header

參考:http://jmeter.apache.org/usermanual/listeners.html

Listener是用來展示Sampler結果的元件。

結果可以被展示在樹、表格、圖表或者簡單寫入到一個log文件。

看所有Sampler的具體內容,可使用的Listeners:"View Results Tree" 或者 "View Results in table"。

如果Sample很多的話,Listener可能會用掉很多內存。如果想最小化使用的內存量,可以使用 Simple Data Writer,並且使用CSV格式。

輸出到文件

不同的Listener以不同的方式來展示響應信息。然而,不同的listener寫入到輸出文件的數據是相同的。

技術分享

1. 輸出文件路徑

Filename:可以輸入相對路徑,也可以輸入絕對路徑。

相對路徑是相對於當前工作路徑,一般默認是“Jmeter安裝路徑\bin\”。比如,直接在Filename中輸入log,則“Jmeter安裝路徑\bin\”下會出現一個文件為log。

相對路徑也可以是相對於當前測試計劃的路徑。如果filename以“~/”開始,說明是相對於JMX文件位置的路徑。比如輸入”~/log“,當前測試計劃路徑為“E:\TestPlan3.jmx”,則輸出文件路徑為“E:\log”。

如果想使用除了“~/”的前綴,可以在jmeter.properties中定義。比如下面定義為“#/”,則filename輸入“#/log”即可。

# Prefix used to identify filenames that are relative to the current base
#jmeter.save.saveservice.base_prefix=~/
jmeter.save.saveservice.base_prefix=#/

2. 輸出文件類型

在jmeter.properties中可以直接定義輸出的文件默認類型。

# legitimate values: xml, csv, db.  Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=csv

也可以點擊 Configure按鈕,直接勾選中“Save As XML”保存文件為XML類型。

技術分享

CSV文件比XML文件小很多,所以如果產生很多sample的話,建議使用CSV。

如果想輸出最多的信息,我們需要選擇保存文件為xml,並且在Test Plan中勾上 “Functional Test Mode”。

“Functional Test Mode”不勾上的話,默認存儲:time stamp, the data type, the thread name, the label, the response time, message, code, a success indicator。

“Functional Test Mode”勾上的話,所有的信息,包括整個響應數據都會被存儲下來。參見XML中 responseData。

3. 輸出文件的內容

點擊Configure,可以配置需要輸出的內容。

帶有(CSV)後綴的項,只能應用於CSV格式的文件。

帶有(XML)後綴的項,只能應用於XML格式的文件。

Sample Result Save Configuration默認選中項參見jmeter.properties的配置。

技術分享

查看文件

1. CSV格式的文件

CSV顯示的列取決於Configure中選中的項。顯示順序如下:

timeStamp - 以milliseconds 為單位,顯示自從 1/1/1970以來的時間段
elapsed - 以 milliseconds為單位
label - sampler 標記,一般就是Sampler 名
responseCode - 比如 200, 404
responseMessage - 比如 OK
threadName
dataType - 比如 text
success - true 或者 false
failureMessage - 如果有的話就顯示
bytes - sample的字節數
sentBytes - sample發送的字節數
grpThreads -  該 thread group active的線程數
allThreads - 所有組的所有active的線程數
URL
Filename - 使用 Save Response to File 時,文件名
latency - 從第一次 response開始的時間
connect - 從建立連接開始的時間
encoding
SampleCount -  sample 數 (一般是1 ,除非合計了多個sample)
ErrorCount - errors數 (一般是0或1,除非合計了多個sample)
Hostname - 發送 sample的機器名
IdleTime - 以 milliseconds為單位顯示 Idle 時間(一般是0)
Variables- 如果定義變量的話,這裏就顯示變量

2. XML格式的文件

示例如下:

<?xml version="1.0" encoding="UTF-8"?>
  <testResults version="1.2">

     ………… 

    <sample t="0" lt="0" ts="1144372616082" s="true" lb="Example Sampler"  rc="200" rm="OK" tn="Listen 1-1" dt="text" de="ISO-8859-1" by="10">
        <responseHeader class="java.lang.String"></responseHeader>
        <requestHeader class="java.lang.String"></requestHeader>
        <responseData class="java.lang.String">Listen 1-1</responseData>
        <responseFile class="java.lang.String">Mixed2.unknown</responseFile>
        <samplerData class="java.lang.String">ssssss</samplerData>
    </sample> 

</testResults>

每個屬性的含義如下:

技術分享

保存Response數據

XML格式的輸出文件可以保存Response數據。勾上“Save Response Data(XML)”即可。

然而,這種方式會造成日誌文件很大,而且文件必須被編碼。同時,這種方式會造成圖片不能被保存,只有TEXT格式的sample response可以被保存成功。

想要解決這個問題,我們可以使用 Listener–> Save Responses to a file。使用這個監聽之後,系統會對監聽範圍內的每次請求保存一個html文件。默認保存在“jmeter安裝路徑/bin/”下。

直接打開已存在的結果文件

如果之前測試已經存在一個CSV或者XML文件,可以直接在Listener中打開。

任選一個Listener,點擊filename後的Browse按鈕,找到要打開的文件,點擊打開即可。

需要註意的是,在加載新的文件時,jmeter並不會清空任何當前數據,而是進行合並。所以如果想清空之前的數據,必須手動清空。

六:Listener