每天15分钟JMeter入门篇(七):认识JMeter中的监听器

前言

JMeter中监听器的作用就是收集、显示JMeter取样器的结果,并以树形、图表、表格的形式显示出来。还可以将监听结果保存成文件。在JMeter中5.4.1中一共提供了17中监听器,其中性能测试经常用的大概就是四五种,其他的监听器不是说不重要,只是大部分人的性能测试都是基于http请求的,所有有些监听器可能不会涉及。
欢迎转载,转载请注明出处:https://blog.csdn.net/wyp_810618/article/details/124571693?spm=1001.2014.3001.5501,谢谢


其他文章

每天15分钟JMeter入门篇(一):Hello JMeter
每天15分钟JMeter入门篇(二):使用JMeter实现并发测试
每天15分钟JMeter入门篇(三):认识JMeter的逻辑控制器
每天15分钟JMeter入门篇(四):认识JMeter中的函数
每天15分钟JMeter入门篇(五):认识JMeter中的Test Fragment
每天15分钟JMeter入门篇(六):学会用好JMeter中的断言
每天15分钟JMeter入门篇(七):认识JMeter中的监听器
每天15分钟JMeter进阶篇(1):JAVA 取样器的基本使用




认识监听器

为了演示监听器的效果,简单的完成一个性能测试脚本,设置10线程并发,执行60分钟。要注意监听器需要放在测试计划节点或者线程组节点下,性能测试时一般是放在测试计划根节点下。

查看结果树(View Results Tree)

可以查看每个取样器的执行结果,在运行性能测试时不建议开启。
界面如下:
在这里插入图片描述

汇总报告(Summary Report)

以表格的形式显示取样器结果,支持结果的保存。汇总报告和聚合报告的作用类似,比聚合报告占用内存少,但是缺少90%响应时间,因此对于性能测试的分析和度量没有太大意义。

聚合报告(Aggregate Report)

聚合报告恐怕是性能测试过程中使用最频繁的监听器组件了。通过聚合报告可以轻松获得90%响应时间、TPS、异常率统计等。使用聚合报告需要和事务控制器一起使用,没有事务控制器的话相当于每一个HTTP请求都会进行统计,例如登录操作可能会涉及到多个http请求:访问静态图片、访问静态CSS文件、发送登录登录等,对于性能测试来说,统计“登录”的性能更重要,而不是统计下载静态图片、CSS文件,就像数据库中的事务概念类似,一组操作形成了一个事务,我们要度量的就是这个事务的性能,因此需要把这一组操作放到事务控制器里,然后在聚合报告里查看。
聚合报告的界面如下:
在这里插入图片描述
聚合报告中各个字段的解释如下:

  • lable 事务的名称,没有事务控制器的话,就是每一个取样器的名称
  • Samples:样本:在压测过程中一共执行了多少次取样器的操作。
  • Average:平均值。取样器的平均响应时间,单位是毫秒。在性能测试过程中平均值一般参考意义不大。
  • Median:中位值。将所给的取样响应时间从小到大或从大到小排列,奇数个数的话取中间的数字,偶数个数的话取中间两个数的平均数。这个值我看的一般也比较少,有时会用它和平均值比较,以判断是否有大量的极端值存在。
  • 90% Line:90%响应时间。这个是最重要的一个指标,我一般是用它来衡量事务的性能优劣
  • Min:最小响应时间
  • Max:最大响应时间
  • Error:出错率
  • Throughput:吞吐量,在有事务控制器时,吞吐量的含义是每秒完成的事务数,我一向把这个值作为性能测试结果的唯一标准。计算吞吐量的时候是不包含出错的样本的。
  • Received KB / sec 接收数据传输量,单位是KB
  • Sent KB/sec 发送的数据传输量,单位是KB。
    在聚合报告中一般关注的是90%响应时间、吞吐量、异常率,数据传输速率这几个指标。可以反映出一次性能测试结果的好坏。

后端监听器(Backend Listener)

后端监听器是一个异步监听器,支持将结果数据推送到数据库中,在开发自己的测试报告系统或者测试平台时,这个监听器会很有用

汇总图(Aggregate Graph)

Aggregate Graph监听器可以看到表格显示的结果与图形结果,如下图,图形结果记录的是响应时间,在性能测试过程中不建议开启

断言结果(Assertion Results)

查看断言结果,在结果查看树中也能查看断言结果,二者作用相同。在性能测试过程中不建议开启,因为比较耗资源

比较断言可视化器(Comparison Assertion Visualizer)

与断言配合使用的,可以在测试过程中看查看断言的结果,其实是一个很鸡肋的东西,因为断言的结果在结果查看器中也可以查看,并且还以树形的方式展现,非常直观。

生成概要结果(Generate Summary Results)

简单的说,就是在命令行中查看取样器的执行结果。有时候性能测试不得不在GUI模式下执行,为了避免资源耗费,可以启用该监听器来查看性能测试的结果你

图形结果(Graph Results)

JSR223 监听器(JSR223 Listener)

邮件观察仪(Mailer Visualizer)

在性能测试的执行过程中可以发送邮件给相关人员。可以设置事务数的阈值,在成功次数或者失败次数达到阈值时自动发送邮件

响应时间图(Response Time Graph)

以图形的形式显示取样器响应时间的结果,单位是毫秒。可以将图形保存成文件,界面如图:
在这里插入图片描述

保存响应到文件(Save Responses to a file)

这个监听器用来存储服务器的响应数据。在性能测试过程中一般不启用这个监听器,特别是高并发的场景下,服务器返回的响应数据会比较多,会很影响性能。它主要是用于测试脚本的调试、试运行、接口自动化测试中。

简单数据写入器(Simple Data Writer)

作用是记录取样器的执行结果,在设置界面中可以指定给一个文件名,JMeter会把取样器的数据写入到该文件中,简单数据写入器的主要应用场景是非GUI方式执行时,可以提高执行效率,它的作用跟命令行下jmeter.sh -l的作用是相同的。
界面如下:
在这里插入图片描述

用表格查看所有结果(View Results in Table)

会把取样器每次结果以表格的形式显示。支持结果保存到文件,在性能测试过程中不建议开启,因为比较耗费资源

BeanShell监听器(BeanShell Listener)

BeanShell监听器允许你访问JMeter的属性、变量、结果以及运行时变量,界面如下:
在这里插入图片描述
界面字段一目了然,不再详细介绍。那么这个BeanShell监听器具体是干什么用的?很多文档语焉不详,包括官方文档。通过自己尝试,我的理解它最大的作用是允许你监听JMeter的属性和运行时变量,如果符合一定的条件,你可以做后续处理,首先拿它对比结果查看树,在结果查看树中你可以查看取样器的执行结果和运行信息,但是你无法做任何的后续处理,例如“如果结果查看器中取样器响应时间大于200毫秒则按照XX格式要求写入XX日志并存入数据库”这样的需求,你用结果查看器是无法实现的,这个时候BeanShell取样器就可以派上用场了。
首先你可以为HTTP取样器增加一个断言:断言持续时间,设置期望时间例如是200毫秒。
然后增加一个BeanShell监听器断言,并编写类似的代码:

import org.apache.jmeter.assertions.AssertionResult; 

AssertionResult[] results = sampleResult.getAssertionResults() ; 

for(int i =0 ; i<results.length;i++) { 
//将断言结果组织成你预期的格式,写入你的log文件或者数据库或者redis
}

简单的说,BeanShell监听器就是可以让你自定义JMeter的监听行为。其实在JMeter中有些监听器,本身就是一个BeanShell监听器实现

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低音钢琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值