监听器(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

  

JMeter学习笔记--JMeter监听器的更多相关文章

  1. JMeter学习笔记--JMeter常用测试元件

    JMeter测试计划有一个被称为“函数测试模式”的选项,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据.如果你在测试监听器中选择一个文件,这个数据将被写入文件.如果你尝试一个较小的测 ...

  2. JMeter学习笔记--JMeter执行顺序规则

    JMeter执行顺序规则: 配置元件 前置处理器 定时器 采样器 后置处理器(除非服务器响应为空) 断言 监听器 只有当作用域内存在采样器时,定时器.断言.前置/后置处理器才会被执行,逻辑控制器和采样 ...

  3. JMeter学习笔记--JMeter属性和变量

    JMeter属性统一定义在jmeter.properties文件中.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值.如属性remote_hosts定 ...

  4. JMeter学习笔记--JMeter前置处理器

    前置处理器被用来修改作用域内的采样器 HTML 链接解析器:解析从服务器得到的HTML响应,并从中提取链接和表单,使用perl型的正则表达式来寻求匹配项. HTML URL重写修饰符:使用URL重写来 ...

  5. Jmeter学习笔记ONE

    最近想学一些关于性能测试方面的知识,其实之前已经初步了解了Jmeter工具,它是一个轻量级的性能测试工具,开源并且免费,相比于Loadrunner来说用起来更简便. JMeter 可以用于对服务器.网 ...

  6. JMeter学习笔记01-安装环境

    记录关于JMeter学习的内容.方便复习. 1)JMeter运行环境 因为JMeter是用纯java写的.所以运行的时候需要java的运行环境. 去java官网下载,点免费下载或所有Java下载都行, ...

  7. JMeter学习笔记(五)-总结

    本周主要学习了JMeter如下几方面内容: (1)Bdboy录制方式: (2)JMeter的代理录制方式: (3)关联,在关联时我们要找到哪些内容是要关联的,这个主要通过分析哪些内容是由服务器返回的, ...

  8. JMeter学习笔记(二)

    3.JMeter测试计划要素 JMeter中一个脚本即是一个测试计划,也是一个管理单元.JMeter的请求模拟与并发数(设置线程数,一个线程代表一个虚拟用户)设置都在脚本文件中一起设置. 要素一:脚本 ...

  9. Jmeter学习笔记

    Jmeter安装 Jmeter组件介绍 Jmeter

随机推荐

  1. Python中filter、map、reduce、lambda 的用法

    Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, sequence):对sequence中的item依次执行function(ite ...

  2. 架构师书单 2nd Edition

    了2007年的目标,列了下面待读或重读的书单.    "其实中国程序员,现在最需要的是一张安静的书桌.",的确,中国架构师大多缺乏系统的基础知识,与其自欺欺人的宣扬"读书 ...

  3. Android -- Fragment注意事项

    ViewPager+Fragment 让Fragment成为ViewPager的一页时,FragmentManager会一直保存管理创建好了的Fragment,即使当前不是显示的这一页,Fragmen ...

  4. ftp-ftp权限

    在服务器上创建ftp站点时勾选的是读写权限对所有的用户开放,但是发现有些用户还是只能读取不能写入,后来发现是因为ftp指向的文件夹本身的权限没有打开导致的,解决办法是,设置ftp指向的文件夹的权限为u ...

  5. 默认网关和默认路由 —— Cisco CCNA – Default Gateway & Default Routes

    原文:https://www.certificationkits.com/cisco-certification/ccna-articles/cisco-ccna-intro-to-routing-b ...

  6. 导出DLLRegisterServer接口遇到的问题

    I'm trying to add DLLRegisterServer and DLLUnregisterServer entry points to an existing DLL that is ...

  7. [CSS] Pseduo

    #self aside li{ list-style-type: none;padding:5px;border-bottom: 1px solid #ccc;} #self aside li:las ...

  8. 如何使用Total Recorder录制网上的音乐,如何下载只能试听的歌曲

    1 在网上找到了对应的网站.其中正在播放的歌曲正是我们想要的 2 在地址栏输入上面音乐网站的网址,并点击捕获广播.(URL直接给出了音乐的完整地址,比如http://www.someserver.co ...

  9. Python网络编程 - 一个简单的客户端Get请求程序

    import socket target_host = "www.baidu.com" target_port = 80 # create a socket object clie ...

  10. 常用工具软件之串口终端工具——SecureCRT和xshell

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件.SecureCRT支持SSH,同时支持Telnet和rlog ...