1.简介

  监听器用来监听及显示JMeter取样器测试结果,能够以树、表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样,比如XML格式、CSV格式。默认情况下,测试结果将被存储为xml格式的文件,文件的后缀: ".jtl"。另外一种存储格式为CSV文件,该格式的好处就是效率更高,但存储的信息不如xml格式详细。

2.预览监听器

  首先我们来看一下JMeter的监听器,路径:线程组(用户)->添加->监听器;我们可以清楚地看到JMeter5中共有16个监听器(不包括jp@gc开头的监听器,这个是宏哥安装的插件),如下图所示:

如果上图您看得不是很清楚的话,宏哥总结了一个思维导图,关于JMeter5的前置处理器类型,如下图所示:

通过以上的了解,我们对监听器有了一个大致的了解和认识。下面宏哥就给小伙伴或则童鞋们分享讲解一些通常在工作中会用到的监听器。

3.常用监听器详解

这一小节,宏哥就由上而下地详细地讲解一下常用的监听器。

3.1 图形结果

图形结果,通过图形展示出本次性能测试数据的分布。 图形结果一般作为聚合报告的分析辅佐

1、我们先来看看这个 图形结果 长得是啥样子,路径:线程组 > 添加 > 监听器 > 图形结果,如下图所示:

2、关键参数说明如下:

名称:控制器的描述性名称,显示在左边节点上,并用于命名事务

注释:控制器注释信息,非必填项

文件名:载入文件名

Throught:吞吐量,可以理解成TPS(TPS表示每秒通过的事物数,QPS表示每秒查询接口数。jmeter中如果只有单接口,那么TPS=QPS。如果是多接口的混合场景,只有在事物控制器下执行,才能将其理解为TPS)

  • 样本数目。在这里,我们可以把样本数量简单理解成是jmeter一共向服务器发起了多少次请求;

  • 最新样本。jmeter最后一次发送请求的响应时间。单位是毫秒;

  • 平均。所有请求响应时间的平均值。单位是毫秒;

  • 偏离。标准方差,学过统计学的同学应该知道这个概念。如果你对这个概念一无所知也没有关系,偏离越小就代表测试的总体结果与平均值越接近;

  • 吞吐量。被测系统每分钟能处理的请求个数,这是判断服务器性能好坏的重要指标(也可以说是最重要的指标)。在上面的图形结果报表里我们可以看到系统的吞吐量是138.985每分钟,这就代表着系统每分钟可以处理138.985个请求;

  • 中值。就是响应时间的中间值,学术一点中值指的是有50%的值大于这个值,另外50%的值小于这个值。蒙圈了吧?实际上中值指的是如果有9个数,那么我们从小到大排列这些数,排在第5个的数就是这一组数的中值。那么如果有10个数呢?10个数的话第5个和第6个数的平均值就是这组数字的中值;

3.2 JSR223 Listener

JSR223 Listener,允许将JSR223脚本代码应用于示例结果。

1、我们先来看看这个 SR223 Listener 长得是啥样子,路径:线程组 > 添加 > 监听器 > JSR223 Listener,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空;

Label 取样器别名,如果勾选Include group name ,则会添加线程组的名称作为前缀

# Samples 取样器运行次数

Average 请求(事务)的平均响应时间

Min 请求的最小响应时间

Max 请求的最大响应时间

Std. Dev 响应时间的标准方差

Error % 事务错误率

Throughput 吞吐量 也就是TPS

Received KB/sec 每秒收到的千字节

Sent KB/sec 每秒发送的千字节

Avg. Bytes 响应平均流量

3.3邮件观察仪

邮件观察仪, 如果测试运行从服务器收到太多失败的响应,则可以将邮件程序可视化工具设置为发送电子邮件,这个不错,起到及时通知效果,下面我使用的是163 SMTP进行测试。可以实现。

1、我们先来看看这个 邮件观察仪 长得是啥样子,路径:线程组 > 添加 > 监听器 > 邮件观察仪,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空;

Message中

From代表,发件人

Address代表 收件人

Success Limit 代表成功次数大于x时发送邮件

Failure Limit 代表失败事务大于4时,发送邮件

SMTP sever

Host 填写邮件服务器名称

Login发件人的邮箱地址

Password 将smtp服务开启,生成授权码当作密码

Connection Security 选择协议

点击TestMail 测试下是否可以发送成功,就可以投入使用了

3.3.1实例

1、新建测试计划,线程组下添加邮件观察仪,如下图所示:

2、配置好以后,点击“Test Mail”,提示发送邮件成功。如下图所示

3、去收件箱查看,如下图所示:

3.4响应时间图

响应时间图,响应时间图形监听器。有点和我们之前介绍的Aggregate Graph类似

1、我们先来看看这个 响应时间图长得是啥样子,路径:线程组 > 添加 > 监听器 > 响应时间图,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空;

2.1 Graph setting 图片设置

2.2 Interval:横坐标的刻度

2.3 Title 标题 默认

2.4 Line setting 线条设置 默认

2.5 Graph size 图片尺寸 默认

2.6 X Axis 横坐标 默认

2.7 Y Aixs 纵坐标

2.8 Scale maximum value 纵坐标长度

2.9 increment scale 纵坐标的刻度 ;Legend 字体设置 默认

  • Interval (ms)                   X轴间隔的时间(以毫秒为单位)
  • Sampler label selection   按结果标签过滤。可以使用正则表达式
  • Title                                 在图表的头部定义图表的标题
  • Line settings                    定义线条的宽度
  • Graph size                       根据当前JMeter窗口大小的宽度和高度计算图形大小。使用“ 宽度”和“ 高度”字段定义自定义大小。单位是像素。
  • X Axis settings                 自定义X轴标签的日期格式
  • Y Axis settings                 为Y轴定义自定义最大值(以毫秒为单位)
  • Legend                            定义图表图例的放置和字体设置

3.5保存响应到文件

保存响应到文件,我们可以看到表格显示的结果与图形结果,看着挺复杂,其实稍微翻译一下就知道,绝大多数都是对图形的设置。

1、我们先来看看这个 保存响应到文件 长得是啥样子,路径:线程组 > 添加 > 监听器 > 保存响应到文件,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空;

文件名称前缀:设置响应文件所在路径(路径必须已存在)和文件前缀

Save Failed Responses only:只保存失败的响应

Save Successful Responses only:只保留成功的响应

Don't add number to prefix:不添加数字到文件名前缀

Don't add suffix:不添加文件后缀,即扩展名(注:默认情况下,jmeter会根据服务器返回的结果自动生成合适类型的文件,比如服务器返回json格式的内容,jmter会自动生成.json文件)

Add timestamp:添加时间戳到文件前缀

Minimum Length of sequence number :最小序列号,不填默认从1开始。

3.6 简单数据写入器

简单数据写入器,对用来记录取样器响应结果,不会以图形方式显示。配合NON GUI模式使用。

1、我们先来看看这个 简单数据写入器 长得是啥样子,路径:线程组 > 添加 > 监听器 > 简单数据写入器,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空。

3.7用表格查看结果

用表格查看结果,这个listener用来显示每个请求的响应头信息,我觉得它最好用的一点就是可以按先后顺序显示每个请求的开始时间、耗时、响应状态等,方便进行结果分析。

1、我们先来看看这个 用表格查看结果 长得是啥样子,路径:线程组 > 添加 > 监听器 > 用表格查看结果,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空。

Sample # : 一个系列号,我们线程用户设置了5,这里就有5个号

Start Time:每个用户的开始时间,我们设置了1秒进5个用户,所以,每个用户进入时间不同,这里精确到毫秒。

Thread Name:线程名称,注意1-1,1-5,第一个1我也不知道表示什么,后面的1到5很好理解,就是用户1到用户5.

Label:就是Http reques的名称

Sampler Time:运行这个Sampler所消耗的时间,有时候也等于Duration time

Status:执行结果标记,成本绿勾,失败红叉。

Bytes:请求的响应文件大小

Sent Byte:发送HTTP请求的数据包大小

Latency:这个字面意思是潜伏时间,不是延迟,暂时不好理解和解释。一个网络术语

Connet Time: 连接到服务器消耗的时间。

3.8 BeanShell Listener

BeanShell Listener,通过BeanShell 监听器可以访问JMeter提供的属性和变量

1、我们先来看看这个 BeanShell Listener 长得是啥样子,路径:线程组 > 添加 > 监听器 > BeanShell Listener,如下图所示:

2、关键参数说明如下:

Name:名称,可以随意设置,甚至为空;

Comments:注释,可随意设置,可以为空。

4.小结

  好了,今天到这里JMeter5的所有监听器就介绍和分享完了,感谢您耐心的阅读和一路支持宏哥!!!

Jmeter(二十) - 从入门到精通 - JMeter监听器 -下篇(详解教程)的更多相关文章

  1. Jmeter(二十一) - 从入门到精通 - JMeter断言 - 上篇(详解教程)

    1.简介 最近由于宏哥在搭建自己的个人博客可能更新的有点慢.断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式.虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JM ...

  2. Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)

    1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...

  3. Jmeter(二十七) - 从入门到精通 - Jmeter Http协议录制脚本(详解教程)

    1.简介 LoadRunner的录制功能让性能测试脚本编写对于不懂代码的人变成了一件容易上手的事,但是由于LoadRunner收费高昂,庞大,一般企业很少用,除非必须使用.Jmeter作为性能测试中的 ...

  4. Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)

    1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...

  5. Jmeter(三十) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy3(详解教程)

    1.简介 Badboy为方便自动化数据灵活性,以及脚本的重用,减少工作量:为此提供了脚本参数化的功能,这一篇文章宏哥以度娘搜索的关键字"北京-宏哥"进行参数化为例,宏哥带领你们实战 ...

  6. Jmeter(四十) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 中篇(详解教程)

    1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...

  7. Jmeter(十) - 从入门到精通 - JMeter逻辑控制器 - 中篇(详解教程)

    1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”. 意思 ...

  8. Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)

    1.简介 在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低.因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果.还有就是在实际的测试工作中,会因为业务需要,有时限 ...

  9. Jmeter(三十一) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy4(详解教程)

    1.简介 上一篇文章中宏哥给小伙伴或童鞋们介绍讲解了手动添加Variable list的值,而实际工作中Badboy为我们提供了Variable setter工具,让我们不再使用哪一种比较笨拙的方法了 ...

随机推荐

  1. java 面向对象(一):类与对象

    1.面向对象学习的三条主线: * 1.Java类及类的成员:属性.方法.构造器:代码块.内部类 * * 2.面向对象的大特征:封装性.继承性.多态性.(抽象性) * * 3.其它关键字:this.su ...

  2. Unity-Editor

    Undo.RecordObject [MenuItem("Example/Random Rotate")] static void RandomRotate() { var tra ...

  3. 网易实战分享|云信IM SDK接口设计实践

    引语 IM (Instant Messaging)是网络上最流行的通信方式,与日常生活息息相关.IM软件也层出不穷,例如:微信.QQ.易信等.通过多年深耕和技术沉淀,云信产出了一套成熟稳定的IM SD ...

  4. Go的100天之旅-04基础数据类型

    基础数据类型 在变量的定义中,我们讲了每个变量是有类型的,类型在计算机中是用来约束数据的解释.Go语言和其它计算机语言一样,提供丰富了丰富的数据类型,我们就来看看到底有哪些类型,同时也可以比较一下它和 ...

  5. C++算法 链式前向星存图

    这个东西恶心了我一阵子,那个什么是什么的上一个一直是背下来的,上次比赛忘了,回来有个题也要用,只能再学一遍,之前也是,不会为什么不学呢.我觉得是因为他们讲的不太容易理解,所以我自己给那些不会的人们讲一 ...

  6. 可能这是Redis可视化工具最全的横向评测

    1 命令行 不知道大家在日常操作redis时用什么可视化工具呢? 以前总觉得没有什么太好的可视化工具,于是问了一个业内朋友.对方回:你还用可视化工具?直接命令行呀,redis提供了这么多命令,操作起来 ...

  7. 【SpringBoot】 中时间类型 序列化、反序列化、格式处理

    [SpringBoot] 中时间类型 序列化.反序列化.格式处理 Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM ...

  8. abp vnext 开发快速入门 3 实现权限控制

    上篇讲了abp vnext 实现了简单的增加操作的例子.删除更新查询基本类似,这里就不讲了,接下来说下如何实现角色权限控制. 再说之前,先说下如果想更加透彻的理解abp vnext的权限控制,最好是先 ...

  9. 3.pandas的简单查询

    知道了基本的pandas的数据结构,就可以进行查询相应的数据了 DataFrame可以看成是一个个的Series组成的一个二维结构,既然如此,就会有从DataFrame里查询Series的方法 从Da ...

  10. 前端学习(十):CSS选择器

    进击のpython ***** 前端学习--CSS选择器 每一条CSS样式声明由两部分组成: 选择器{ 样式: } 在CSS中{}之前的部分就是"选择器","选择器&qu ...