• 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 - 编辑 一个†’ 将节点保存为图片
  • 相关阅读:
    php原生代码实现explode函数功能
    PHP的命名空间
    高性能索引策略二
    .Net Core缓存组件(Redis)源码解析
    .Net Core缓存组件(MemoryCache)源码解析
    Docker系列之Docker容器(读书笔记)
    Docker系列之Docker镜像(读书笔记)
    .Net Core中的日志组件(Logging)
    .Net Core Cors中间件解析
    .Net Core项目添加日志功能
  • 原文地址:https://www.cnblogs.com/kuihua/p/5537036.html
Copyright © 2020-2023  润新知