jmeter 監聽的介紹


一個偵聽器是一個組件,顯示的結果 樣本。 結果可以顯示在一個樹,表格,圖表或簡單地寫入到日志中 文件。 查看的內容反應任何給定的采樣器,添加的監聽器” 視圖 結果樹 ”或“ 視圖的結果表 一個測試計划。 查看圖形的響應時間,添加 圖的結果。 的 聽眾 部分組件的頁面完整描述所有的聽眾。

 
不同的聽眾以不同的方式顯示的響應信息。 然而,他們都寫相同的原始數據到指定的輸出文件——如果一個。
 

“ 配置 ”按鈕可以用來指定哪些字段寫入文件,以及是否 把它寫成CSV或XML。 比XML文件CSV文件要小得多,所以使用CSV如果你生成了大量的樣品。

文件名可以指定使用一個相對或絕對路徑名。 相對路徑解析相對於當前工作目錄(默認 bin / 目錄)。 JMeter還支持路徑相對於包含當前目錄測試計划(JMX文件)。 如果路徑名始於“ ~ / ”(或任何 jmeter.save.saveservice.base_prefix JMeter屬性), 那么路徑被認為是相對於JMX文件位置。

如果你只希望記錄某些樣本,取樣器的添加偵聽器作為一個孩子。 或者你可以使用一個簡單的控制器組一組采樣,並將偵聽器添加到。 可以使用相同的文件名由多個采樣,但確保他們都使用相同的配置!

默認配置

默認的項目可以定義在得救 jmeter.properties (或 user.properties )文件。 屬性被用作初始設置監聽器配置彈出,和也 用於指定的日志文件 - l 命令行標志(通常用於非gui測試運行)。

改變默認格式,發現下面的線 jmeter.properties :

jmeter.save.saveservice.output_format=

信息保存的是可配置的。 最大的信息,選擇“ xml “格式和指定” 功能測試模式 在測試計划的元素。 如果不檢查這個盒子,默認保存 數據包含一個時間戳(午夜以來的毫秒數, 1970年1月1日UTC),數據類型,線程名稱,標簽, 響應時間、消息和代碼,一個成功的指標。 如果勾選此項,所有的信息,包括完整的響應數據將被記錄。

下面的例子顯示如何設置 屬性來得到一個豎線(“ 會”)分隔的格式 輸出結果:。

timeStamp|time|label|responseCode|threadName|dataType|success|failureMessage
02/06/03 08:21:42|1187|Home|200|Thread Group-1|text|true|
02/06/03 08:21:42|47|Login|200|Thread Group-1|text|false|Test Failed: 
    expected to contain: password etc.

相應的 jmeter.properties 需要設置如下所示。 一個奇怪的地方 在這個例子中是, output_format 被設置為 csv ,這 通常 表明逗號分隔值。 然而, default_delimiter 是 將一個豎線,而不是一個逗號,因此csv標簽 在這種情況下用詞不當。 (認為CSV意義字符分隔值)

jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.assertion_results_failure_message=true
jmeter.save.saveservice.default_delimiter=|

屬性,影響結果的全套文件輸出如下所示。

#---------------------------------------------------------------------------
# Results file configuration
#---------------------------------------------------------------------------

# This section helps determine how result data will be saved.
# The commented out values are the defaults.

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


# true when field should be saved; false otherwise

# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#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.connect_time=false
#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=true
#jmeter.save.saveservice.sample_count=false
#jmeter.save.saveservice.idle_time=true

# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
#jmeter.save.saveservice.timestamp_format=ms
#jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS

# For use with Comma-separated value (CSV) files or other formats
# where the fields' values are separated by specified delimiters.
# Default:
#jmeter.save.saveservice.default_delimiter=,
# For TAB, since JMeter 2.3 one can use:
#jmeter.save.saveservice.default_delimiter=\t

# Only applies to CSV format files:
# Print field names as first line in CSV
#jmeter.save.saveservice.print_field_names=true

# Optional list of JMeter variable names whose values are to be saved in the result data files.
# Use commas to separate the names. For example:
#sample_variables=SESSION_ID,REFERENCE
# N.B. The current implementation saves the values in XML as attributes,
# so the names must be valid XML names.
# JMeter sends the variable to all servers
# to ensure that the correct data is available at the client.

# Optional xml processing instruction for line 2 of the file:
#jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="sample.xsl"?>

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

# AutoFlush on each line written in XML or CSV output
# Setting this to true will result in less test results data loss in case of Crash
# but with impact on performances, particularly for intensive tests (low or no pauses)
# Since JMeter 2.10, this is false by default
#jmeter.save.saveservice.autoflush=false

# Put the start time stamp in logs instead of the end
sampleresult.timestamp.start=true

# Whether to use System.nanoTime() - otherwise only use System.currentTimeMillis()
#sampleresult.useNanoTime=true

# Use a background thread to calculate the nanoTime offset
# Set this to <= 0 to disable the background thread
#sampleresult.nanoThreadSleep=5000

日期格式用於 timestamp_format 描述的是 SimpleDateFormat 。 時間戳的格式用於寫作和閱讀文件。 如果格式設置為“ 女士 ”,並作為一個長整數列不解析, JMeter(2.9 +)將下列格式:

  • yyyy / MM / dd HH:MM:ss.SSS
  • yyyy / MM / dd HH:MM:ss
  • yyyy-MM-dd HH:mm:ss.SSS
  • yyyy-MM-dd HH:mm:ss
  • MM / dd / yy HH:MM:ss (這是為了兼容以前的版本,不建議作為一種格式)
匹配(non-lenient)現在也嚴格。 2.8和更早的JMeter寬松模式導致使用時間戳與不正確的日期 通常是正確的(倍)。

 

樣本變量

JMeter支持 sample_variables 屬性定義一個額外的JMeter變量列表的得救 韓國樂團中的每個樣本文件。 的值將被寫入到CSV文件作為額外的列, 和附加屬性的XML文件。 在上面看到了一個例子。

樣本結果保存配置

偵聽器可以配置為不同的項目保存到日志文件(韓國樂團)結果通過使用配置彈出如下所示。 默認值被定義為描述的 偵聽器默認配置 上面的部分。 項目名稱后(CSV)只適用於CSV格式;項目(XML)只適用於XML格式。 CSV格式目前不能用於保存任何物品,包括換行符。


配置對話

注意,餅干,方法和查詢字符串保存的一部分” 取樣器數據 ”選項。

非gui(批)測試運行

在非gui模式下運行時, - l 國旗可以用來創建一個頂級偵聽器的測試運行。 這是除了任何偵聽器在測試計划中定義。 此偵聽器的配置控制文件中的條目 jmeter.properties 如前一節所述。

此功能可用於指定不同的數據和日志文件對於每個測試運行,例如:

jmeter -n -t testplan.jmx -l testplan_01.jtl -j testplan_01.log
jmeter -n -t testplan.jmx -l testplan_02.jtl -j testplan_02.log

注意,JMeter日志消息寫入到文件中 jmeter.log 默認情況下。 每次重新創建這個文件,所以如果你想保持每個運行的日志文件, 您將需要使用的重命名它 - j 選擇如上所述。

JMeter支持日志文件中的變量名稱。 如果文件名包含成對的單引號,那么名字是處理 作為一個 SimpleDateFormat 格式應用於當前日期,例如: log_file = ' jmeter_ ' yyyyMMddHHmmss .tmp” 。 這可以用於生成一個唯一的名稱為每個測試運行。

資源使用情況

 
偵聽器可以使用大量內存,如果有很多樣品。
 

目前大多數的聽眾保持一份每個樣本顯示,除了:

  • 簡單的數據的作家
  • BeanShell /凈水器偵聽器
  • 梅勒可視化工具
  • 監測結果
  • 總結報告

下面的聽眾不再需要保持每一個樣本的副本。 相反,和樣品相同的運行時間是聚合。 現在需要更少的內存,尤其是大多數樣品只需要一兩秒。

  • 總報告
  • 綜合圖

盡量減少所需的內存,使用簡單的數據的作家,並使用CSV格式。

CSV日志格式

CSV日志格式取決於哪些數據項中選擇配置。 只有指定的數據項記錄在文件中。 外觀的列的順序是固定的,如下:

  • 時間戳 1/1/1970以來,以毫秒為單位
  • 運行 ——以毫秒為單位
  • 標簽 ——取樣器標簽
  • responseCode ——如。 200年 404年
  • responseMessage ——如。 好吧
  • threadName
  • 數據類型 ——如。 文本
  • 成功 - - - - - - 真正的 或 
  • failureMessage ——如果任何
  • 字節 ——在樣例的字節數
  • grpThreads ——該線程組的活動線程數
  • allThreads ——在所有組活動線程的總數
  • URL
  • 文件名 ——如果 保存對文件 使用
  • 延遲 ——時間的第一反應
  • 連接 ——時間建立連接
  • 編碼
  • SampleCount 數量的樣品(1,除非聚合多個樣本)
  • ErrorCount 的錯誤數量(0或1,除非聚合多個樣本)
  • 主機名 ——生成的示例
  • IdleTime 的“空閑”時間的毫秒數(通常0)
  • 變量 如果指定的

XML日志格式

更新XML(2.1)的格式如下(換行符將會不同):

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

-- HTTP Sample, with nested samples 

<httpSample t="1392" lt="351" ts="1144371014619" s="true" 
     lb="HTTP Request" rc="200" rm="OK" 
     tn="Listen 1-1" dt="text" de="iso-8859-1" by="12407">
  <httpSample t="170" lt="170" ts="1144371015471" s="true" 
        lb="http://www.apache.org/style/style.css" rc="200" rm="OK" 
        tn="Listen 1-1" dt="text" de="ISO-8859-1" by="1002">
    <responseHeader class="java.lang.String">HTTP/1.1 200 OK
Date: Fri, 07 Apr 2006 00:50:14 GMT
⋮
Content-Type: text/css
</responseHeader>
    <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader>
    <responseData class="java.lang.String">body, td, th {
    font-size: 95%;
    font-family: Arial, Geneva, Helvetica, sans-serif;
    color: black;
    background-color: white;
}
⋮
</responseData>
    <cookies class="java.lang.String"></cookies>
    <method class="java.lang.String">GET</method>
    <queryString class="java.lang.String"></queryString>
    <url>http://www.apache.org/style/style.css</url>
  </httpSample>
  <httpSample t="200" lt="180" ts="1144371015641" s="true" 
     lb="http://www.apache.org/images/asf_logo_wide.gif" 
     rc="200" rm="OK" tn="Listen 1-1" dt="bin" de="ISO-8859-1" by="5866">
    <responseHeader class="java.lang.String">HTTP/1.1 200 OK
Date: Fri, 07 Apr 2006 00:50:14 GMT
⋮
Content-Type: image/gif
</responseHeader>
    <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader>
    <responseData class="java.lang.String">http://www.apache.org/asf.gif</responseData>
      <responseFile class="java.lang.String">Mixed1.html</responseFile>
    <cookies class="java.lang.String"></cookies>
    <method class="java.lang.String">GET</method>
    <queryString class="java.lang.String"></queryString>
    <url>http://www.apache.org/asf.gif</url>
  </httpSample>
  <responseHeader class="java.lang.String">HTTP/1.1 200 OK
Date: Fri, 07 Apr 2006 00:50:13 GMT
⋮
Content-Type: text/html; charset=ISO-8859-1
</responseHeader>
  <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader>
  <responseData class="java.lang.String"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
⋮
<html>
 <head>
⋮
 </head>
 <body>        
⋮
 </body>
</html>
</responseData>
  <cookies class="java.lang.String"></cookies>
  <method class="java.lang.String">GET</method>
  <queryString class="java.lang.String"></queryString>
  <url>http://www.apache.org/</url>
</httpSample>

-- non HTTP Sample

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

注意,示例節點名稱可以是“ 樣本 ”或“ httpSample ”。

樣本的屬性

樣本的屬性有以下意義:

屬性 內容
通過 字節
數據編碼
dt 數據類型
電子商務 錯誤數(0或1,除非聚合多個樣本)
接下來的 主機名示例生成的地方
空閑時間=時間不花在抽樣(毫秒)一般(0)
標簽
lt 延遲=初始響應時間(毫秒)——並不是所有的取樣器支持這個
ct 連接時間=建立連接的時間(毫秒)——並不是所有的取樣器支持這個
na 所有線程組的活動線程的數量
ng 這組活動線程的數量
鋼筋混凝土 響應代碼(如。 200年 )
rm 響應消息(如。 好吧 )
年代 成功的標志( 真正的 假 )
sc 樣本計數(1,除非聚合多個樣本)
t 運行時間(毫秒)
tn 線程的名字
ts 自1970年1月1日午夜時間戳(毫秒UTC)
varname 指定變量的值
 
JMeter允許額外的變量保存的測試計划。 目前,該變量是保存為額外的屬性。 使用testplan變量名稱作為屬性名稱。 看到  樣本變量  更多信息(上圖)。
 

保存響應數據

如上所示,可以保存在XML響應數據日志文件如果需要。 然而,這可以使文件很大,和文本必須編碼 它仍然是有效的XML。 另外,圖片不能包括在內。 只有樣品反應類型 文本 可以保存。 
另一個解決方案是使用后處理器 Save_Responses_to_a_file 。 這對每個樣本生成一個新文件,並保存文件名與樣品。 文件名可以包含在示例日志輸出。 檢索的數據將從文件示例日志文件重新加載時如果有必要。

加載(閱讀)響應數據

查看現有的結果文件,您可以使用文件” Browsea€Š ”按鈕選擇一個文件。 如果有必要,就創建一個虛擬測試規划適當的監聽器。

結果可以讀取XML或CSV格式的文件。 當閱讀從CSV文件,結果頭(如果存在)是用來確定哪些字段保存。 為了解釋header-less CSV文件正確,適當的JMeter屬性必須設置。

 
JMeter之前不清楚任何當前數據加載新文件從而使文件合並。 如果你想要清除當前數據,使用菜單項:  運行 一個†’ 清晰的 Ctrl+一個 轉變 +一個 或 運行 一個†’ 清除所有 Ctrl +一個 在裝貨前該文件。
 

偵聽器GUI數據保存

JMeter的任何偵聽器保存為PNG文件。 為此,選擇 偵聽器在左邊的面板。 點擊 編輯 一個†’ 將節點保存為圖片 。 一個文件對話框 出現。 輸入所需的名稱並保存偵聽器。

的聽眾產生輸出表也可以使用復制/粘貼保存。 表中選擇所需的細胞,並使用操作系統復制捷徑(正常 Ctrl +一個 )。 數據將被保存到剪貼板,從那里可以粘貼到另一個應用程序, 如一個電子表格或文本編輯器。

Figure 1 - 圖1 -  編輯 一個†’ 將節點保存為圖片


免責聲明!

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



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