性能常识 🔥Jmeter(二十) - 从入门到精通 - JMeter 监听器 -下篇(详解教程)

北京-宏哥 · 2025年03月10日 · 355 次阅读

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 的所有监听器就介绍和分享完了,感谢您耐心的阅读和一路支持宏哥!!!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册