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=	

# 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 - 编辑 一个†’ 将节点保存为图片
原文地址:https://www.cnblogs.com/kuihua/p/5537036.html