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监听器 -下篇(详解教程)相关推荐

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

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

  2. 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】

    [转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...

  3. ReactNative进阶(二十五):ScrollView 滚动视图组件详解

    文章目录 一.概述 二.属性 2.1 Style 2.2 方法 2.2.1 scrollTo() 2.2.2 crollToEnd() 三.拓展阅读 一.概述 ScrollView在Android和i ...

  4. Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

    本篇将会以西门子PLC软件搭建ModbusTCP仿真环境,并通过仿真环境,介绍基础知识及模拟实际应用中写一个简单的通信读取PLC数据方法,并简介了编写上位机的方法. 文章目录 1. 搭建ModbusT ...

  5. spark从入门到精通spark内存管理详解- 堆内堆外内存管理

    前言 Spark作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解Spark内存管理的基本原理,有助于更好地开发Spark应用程序和进行性能调优.本文将详细介绍两部 ...

  6. jmeter 控制偏离_jmeter 压力测试笔记一基础设置

    ##脚本编写 一.设置流程 1.创建线程组: 右键测试计划->添加->Threads(Users)->线程组 2.创建HTTP请求 右键线程组->添加-Threads(User ...

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

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

  8. Jmeter(三) - 从入门到上天 - 常用原件 (详解教程)

    哈哈 小刘又来写博客了 ,一篇写的内容不多,但是慢慢写,日积月累,自然而然就多了,学会坚持 ,今天咱们继续来看 Jmeter (原件一) : HTTP 请求默认值 很多时候,我们发出的请求 ,都会在原 ...

  9. python接口自动化(二十八)--html测试 报告——下(详解)

    简介 五一小长假已经结束了,想必大家都吃饱喝足玩好了,那就继续学习吧.一天不学习,自己知道:两天不学习,对手知道:三天不学习,大家知道:一周不学习,智商输给猪.好了开个玩笑都逗大家一乐,但是想想还是有 ...

最新文章

  1. 循环map_python函数 map函数—比for还好用的循环
  2. jquery学习手记(7)Data_utility_index方法
  3. boost::mpl::less_equal相关的测试程序
  4. [Todo] 乐观悲观锁,自旋互斥锁等等
  5. 《C++ Primer》14.3.2节练习(部分)
  6. php使用mysql5和8的区别_mysql8.0和mysql5.7的区别是什么?
  7. 华为、中兴圈地IPTV金矿 中小企业南柯一梦
  8. Redux简介以及Redux应用程序中的状态更新方式
  9. 编写歌唱比赛评分_甦醒丨歌唱大赛作品评分
  10. 安装redis3.0.5
  11. 用最简单的例子告诉你kafka是怎么用的
  12. java中list set map 的区别
  13. 气象研究中的大气稳定性 Atmosphere stability
  14. 隐马尔科夫模型(HMM)等文章记录
  15. 基于胜任力模型为集团企业构建动态信息安全培训课程体系
  16. Shopify和其他电子商务平台上的微数据
  17. 搜狗皮肤 php,搜狗皮肤PHP怎样运用 搜狗输入法皮肤PHP运用办法
  18. leetcode:32. 最长有效括号
  19. 公链、私链、联盟链是什么?
  20. 笔记本电脑内存升级经历

热门文章

  1. Java基础学习总结(100)——Dbunit入门简介
  2. MBTI性格类型测试
  3. php w 框架叫什么意思,框架是什么,为啥要用框架. 框架解决了什么
  4. SpringBoot之使用(一)
  5. Java编程思想学习笔记-第11章
  6. Java web Tomcat Server总结
  7. Sublime Text 3 快捷键及使用技巧
  8. Android含文档server结束(client UI接口异步请求的一部分)三
  9. VirtualBox 安装ghost版windows XP
  10. 地税某数据库异常重启和重启后数据库运行缓慢问题的解决过程