Jmeter(二十) - 从入门到精通 - JMeter监听器 -下篇(详解教程)
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监听器 -下篇(详解教程)的更多相关文章
- Jmeter(二十一) - 从入门到精通 - JMeter断言 - 上篇(详解教程)
1.简介 最近由于宏哥在搭建自己的个人博客可能更新的有点慢.断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式.虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JM ...
- Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)
1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...
- Jmeter(二十七) - 从入门到精通 - Jmeter Http协议录制脚本(详解教程)
1.简介 LoadRunner的录制功能让性能测试脚本编写对于不懂代码的人变成了一件容易上手的事,但是由于LoadRunner收费高昂,庞大,一般企业很少用,除非必须使用.Jmeter作为性能测试中的 ...
- Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)
1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...
- Jmeter(三十) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy3(详解教程)
1.简介 Badboy为方便自动化数据灵活性,以及脚本的重用,减少工作量:为此提供了脚本参数化的功能,这一篇文章宏哥以度娘搜索的关键字"北京-宏哥"进行参数化为例,宏哥带领你们实战 ...
- Jmeter(四十) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 中篇(详解教程)
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...
- Jmeter(十) - 从入门到精通 - JMeter逻辑控制器 - 中篇(详解教程)
1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”. 意思 ...
- Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)
1.简介 在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低.因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果.还有就是在实际的测试工作中,会因为业务需要,有时限 ...
- Jmeter(三十一) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy4(详解教程)
1.简介 上一篇文章中宏哥给小伙伴或童鞋们介绍讲解了手动添加Variable list的值,而实际工作中Badboy为我们提供了Variable setter工具,让我们不再使用哪一种比较笨拙的方法了 ...
随机推荐
- Idea JAVA开发工具快速上手-常用快捷键汇总
前言: 之前一直使用Eclipse 系列开发IDE工具,由于eclipse是开源的所以,一般情况,eclipse基本上每一个java入门者的首选开发工具,其次 Myeclipse.不过现在越来越多的人 ...
- web测试中不容忽视的细节
最近在自动化测试的圈子里,我总是碰到很多人在群里和其他地方问为什么这个会出现错误? 为什么这个运行不了?为什么我百度了还是没用? 其实真正的原因可能是你忽略了下面这些需要注意的小地方: 1.页面分辨率 ...
- scratch编程我的世界3D史蒂夫
这个程序我们只能制作出一个3D模型而已,并不是真正的我的世界整个游戏: 效果很炫酷吧!现在我们就来看看是怎样编程的吧! 首先,这个模型是有无数个平面克隆体摞在一起,旋转后会产生一种立体的错觉,是不是有 ...
- PyQt样式设计
QSS QSS(Qt Style Sheets)即PyQt样式表,是用来定义控件外观的一种机制.QSS内部实现大量参考了CSS,但是功能没有CSS强大,主要体现在选择器少,属性少等. 使用QSS 格式 ...
- 数据治理工具调研之DataHub
1.项目简介 Apache Atlas是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类.集中策略引擎.数据血缘.安全和生命周期管理在 ...
- springboot(七)JavaMail发送邮件
JavaMail简介: JavaMail是SUN提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,支持常用的邮件协议,如:SMTP.POP3.IMAP,开发人员使用JavaMail编写邮件 ...
- 面试题四十三:在1~n整数中1出现的次数
方法一:直观来看,遍历1到n,每个数去做%10的循环判断 int Number1_B_1toN( int n){ int sum=0; for(int i=1;i<=n;i++){ int k= ...
- 前端学习(十六):JavaScript运算
进击のpython ***** 前端学习--JavaScript运算 在这一节之前,应该做到的是对上一节的数据类型的相关方法都敲一遍,加深印象 这部分的知识的特点就是碎而且杂,所以一定要多练~练习起来 ...
- MySQL组复制MGR(四)-- 单主模式与多主模式
(一)概述 组复制可以运行在单主模式下,也可以运行在多主模式下,默认为单主模式.组的不同成员不能部署在不同模式下,要切换模式,需要使用不同配置重新启动组而不是单个server. 相关参数如下: # 该 ...
- java基础(七)--键盘输入
一.示例 package cnblogs; import java.util.Scanner; public class TestBase07IO { public static void main( ...