Jmeter(十九) - 从入门到精通 - JMeter监听器 -上篇(详解教程)

2023-11-19

1.简介

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

2.预览监听器

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

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386     

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a 如果上图您看得不是很清楚的话,总结了一个思维导图,关于JMeter5的前置处理器类型,如下图所示: 

 

 

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

3.常用监听器详解

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

3.1 察看结果树

察看结果树,显示取样器请求和响应的细节以及请求结果,包括消息头,请求的数据,响应的数据。

注意!!!敲黑板,敲脑壳!!!

(1)察看结果树,放的位置不同,查看的结果也不同。在线程组下添加察看结果树,查看线程组下所有请求的结果;放在具体某个请求下,只查看此请求的结果;若放在某个控制器节点下,则查看此控制器下节点执行的结果;

(2)该监听器推荐做调试用,在实际运行压测时,应该禁用,因为大量请求时,启用该监听器时打印的日志比较多,会造成大IO消耗,影响压力机性能。

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

2、关键参数说明如下:

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

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

文件名:载入文件名 

Log/Display Only: 仅日志错误、Success ;勾选中显示对应的日志信息 

Configure:定义report中自己所关心的数据项。 

取样器结果: 

    Thread Name: 线组名称 
    Sample Start: 启动开始时间 
    Load time: 加载时长 
    Latency: 等待时长 
    Size in bytes: 发送的数据总大小 
    Headers size in bytes: 发送头大小 
    Body size in bytes: 发送数据的其余部分大小 
    Sample Count: 发送统计 
    Error Count: 错误统计 
    Response code: 返回码 
    Response message: 返回消息 
    Response headers:返回头信息 

请求 
  数据获取方式、路径、地址等以及传递的参数、cookie 

响应数据 
  响应加载的页面html

 3、作用

1)查看请求结果,请求成功的测试通常为绿色;红色则代表失败。

注:在没有对请求断言的情况下,显示绿色并不一定是成功,只代表响应码是200或300系列,显示红色说明响应码是400或500系列。所以要想确定请求返回的是正确的,必须要加上断言,只有断言成功才会显示绿色。

2)查看对应Sampler的测试结果的请求、响应数据。

  • 取样器结果:显示的是取样器相关参数(客户端参数与响应参数)

  • 请求:发送请求的具体内容

  • 响应数据:服务器返回的相应参数

3.2 汇总报告

汇总报告,为测试中的每个不同命名的请求创建一个表行。这与聚合报告类似,只是它使用更少的内存。提供了最简要的测试结果信息,同时可以配置将相应的信息保存至指定的文件中(支持xml、csv格式的文件)。

单击Configure按钮,可以配置结果保存各种选项,具体这里不做说明了。

该监听器是笔者在调试jmeter项目时常用的监听器之一。

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

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聚合报告

聚合报告,记录这次性能测试的总请求数、错误率、用户响应时间(中间值、90%、最少、最大)、吞吐量等,用以帮助分析被测试系统的性能。在聚合报告中,各个响应时间不能超过客户的要求,就是合格,例如不能超过响应时间2s,大于2s就是不合格的.

聚合报告应该是最详细的报告了,也是最为常用的报告。是大家在压测过程中最常用的监听器。

该监听器对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,中位数、90%、95%、错误率,吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量。

单击Configure按钮,可以配置结果保存各种选项,具体这里不做说明了。

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

2、关键参数说明如下:

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

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

Label :每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples :表示测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里就显示对应的 HTTP Request的执行次数是100 

Average :平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间 

Median :50%用户的响应时间 

90%Line :90%用户的响应时间 

Min :最少响应时间 

Max :最大响应时间 

Error% :本次运行测试中出现错误的请求的数量/请求的总数 

Throughput :吞吐量,默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 

(接收/发送)KB/sec :每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

3.4后端监听器

后端监听器,是一个异步侦听器,可以将数据推入都数据库中,提供了InfluxDB,graphite选项

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

2、关键参数说明如下:

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

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

Backend Listener implementation:BackendListenerClient类的实现,Jmeter默认提供如下两种实现,因为我们使用的influxdb作为持久存储

org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient

org.apache.jmeter.visualizers.backend.graphite.InfluxdbBackendListenerClient 因为我们使用的influxdb作为持久存储,所以后续只介绍InfluxdbBackendListenerClient

Async Queue size:异步队列大小 队列值包含异步处理时的度量标准。除非有一些特定的性能问题,否则最好不要从默认的5000。

3、我们使用InfluxdbBackendListenerClient

  • influxdbMetricsSender:org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender

  • influxdbUrl:influx数据库的url。example : http://influxHost:8086/write?db=jmeter

  • application:被测试的应用名称。此值也作为名为“application”的标记存储在“events”中

  • measurement:使用默认的”jmeter“就行

  • summaryOnly:为true的情况下,只输出所有请求的集合数据报告,为flase的情况下,输出每条数据的详情报告、

  • samplersRegex:正则表达式将与样本名称匹配并发送到后端。默认匹配所有

  • testTitle:测试名称。默认的设置为 Test name。该值作为名为“text”的字段存储在“事件”度量中。JMeter在测试的开始和结束时自动生成一个注释,其值以'started'和'ended'结尾

  • percentiles:要发送到后端的百分位数,多个值已;分割

  • TAG_WhatEverYouWant:自定义标签。您可以根据需要添加任意数量的自定义标签。对于它们中的每一个,只需创建一个新行并在其名称前加“TAG_”

3.5汇总图

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

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

 

2、关键参数说明如下:

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

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

Column settings

  • Columns to display  选择要在图表中显示的列

  • Rectangles color      单击右侧颜色矩形打开弹出对话框,选择自定义颜色。(就是点击

    图片

    )

  • Foreground color     允许更改值文本颜色

  • Value font                 允许定义文本的字体设置

  • Draw outlines bar?   在条形图上绘制或不绘制边界线

  • Show number grouping?     是否显示Y轴标签中的数字分组

  • Value labels vertical?          更改值标签的方向。(默认为水平)

  • Column label selection       按结果标签过滤

Title

在图表的头部定义图表的标题

Graph size

根据当前JMeter窗口大小的宽度和高度计算图形大小。使用“ 宽度”和“ 高度”字段定义自定义大小。单位是像素。

X Axis settings

定义X轴标签的最大长度(以像素为单位)

Y Axis settings

为Y轴定义自定义最大值。

Legend

定义图表图例的放置和字体设置

3.6 断言结果

断言结果,对相应的请求添加断言。对取样器进行断言后,我们希望知道断言结果;此元件可以帮助我们显示断言结果(察看结果树元件中也可以看到)。消耗了大量资源(内存和CPU),性能测试时候不建议使用。

作用:用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致,一般与结果树结合使用。

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

2、关键参数说明如下:

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

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

3.7比较断言可视化器

比较断言可视化器,和比较断言配合使用。

1、我们先来看看这个 比较断言可视化器 长得是啥样子,路径:线程组 > 添加 > 监听器 > 比较断言可视化器,如下图所示: 

 

2、关键参数说明如下:

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

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

3.8 生成概要结果

生成概要结果,该测试元素可以放置在测试计划中的任何位置。生成到目前为止对日志文件和/或标准输出的测试运行的摘要。显示了运行总计和差异总计。在适当的时间边界每n秒(默认为30秒)生成一次输出,因此将同步在同一时间运行的多个测试。

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

 

2、关键参数说明如下:

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

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

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 漂亮的地图打印机会抛出类型错误

    我已经使用配置了漂亮的打印机http wiki eclipse org CDT User FAQ How can I inspect the contents of STL containers 3F http wiki eclipse o
  • Pygame 让精灵按照给定的旋转行走

    很久以前我做了一个Scratch脚本 我想用Pygame将其转换为Python 有很多示例显示图像的旋转 但我想知道如何更改精灵的旋转以使其沿给定方向移动 而不更改图像 这是我的暂存代码 这是我的 Pygame 精灵类 class Star
  • 如何生成大型网站的图形站点地图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为我的网站生成图形站点地图 据我所知 有两个阶段 抓取网站并分析链接关系 提取树形结构 生成视觉上
  • 如何仅选择数组中的第一列并对其求和?

    这是我的代码 import numpy as np contrainte1 1080 0 65 minutes tous les jours contrainte2 720 0 55 minutes du lundi au vendredi
  • Seaborn regplot 中点和线的不同颜色

    中列出的所有示例西伯恩的regplot文档 https seaborn pydata org generated seaborn regplot html点和回归线显示相同的颜色 改变color争论改变了两者 如何为点设置与线不同的颜色 你
  • 如何使用 Twython 将 oauth_callback 值传递给 oauth/request_token

    Twitter 最近刚刚强制执行以下规定 1 您必须通过oauth callbackoauth request token 的值 这不是可选的 即使您已经在 dev twitter com 上设置了一个 如果您正在执行带外 OAuth 请通
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • 如何在python mechanize中设置cookie

    向服务器发送请求后 br open http xxxx br select form nr 0 br form MESSAGE 1 2 3 4 5 br submit 我得到了响应标题 其中包含 set cookie Set Cookie
  • Python 在 64 位 vista 上获取 os.environ["ProgramFiles"] 的错误值

    Vista64 计算机上的 Python 2 4 3 环境中有以下2个变量 ProgramFiles C Program Files ProgramFiles x86 C Program Files x86 但是当我运行以下命令时 impo
  • Python:绘制甘特图的模块

    有没有一个好的Python绘图模块甘特图 http en wikipedia org wiki Gantt chart 我试过了开罗情节 http linil wordpress com 2008 09 16 cairoplot 11 但它
  • 在 Qt 5 中嵌入 Python

    我想将 Python 解释器嵌入到 Qt 5 应用程序中 我在 Qt 5 中有一个工作应用程序 但是当我把 include
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 如何删除 pip 安装的所有软件包?

    如何从当前激活的虚拟环境中卸载 pip 安装的所有软件包 我发现这个片段作为替代解决方案 与重新创建 virtualenv 相比 删除库更加优雅 pip freeze xargs pip uninstall y 如果您通过 VCS 安装了软
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • datetime strftime 不输出正确的时间戳

    下列 gt gt gt from dateutil parser import parse gt gt gt parse 2013 07 02 00 00 00 0000 datetime datetime 2013 7 2 0 0 tzi
  • 具有行业级约束的 SciPy 投资组合优化

    尝试在这里优化投资组合权重分配 通过限制风险来最大化我的回报函数 我可以毫无问题地通过简单的约束 所有权重之和等于 1 找到产生我的回报函数的优化权重 并做出另一个约束 即我的总风险低于目标风险 我的问题是 如何为每个组添加行业权重界限 我
  • 重写 PyGObject 中的虚拟方法

    我正在尝试实施高宽几何管理 http developer gnome org gtk3 3 2 GtkWidget html geometry management在 GTK 和 Python 中用于我的自定义小部件 我的小部件是来自的子类
  • scikit-learn kmeans 聚类的初始质心

    如果我已经有一个可以作为初始质心的 numpy 数组 我该如何正确初始化 kmeans 算法 我正在使用 scikit learn Kmeans 类 这个帖子 具有选定初始中心的 k 均值 https stackoverflow com q
  • gnuplot:第 1 行:无效命令

    stackoverflow 上可爱的人们大家好 我正在尝试使用 gnuplot 绘制数据 我首先阅读表格并提取我想要的数据 我将此数据写入 dat 文件 截至目前 我只是尝试通过命令行绘制它 但会添加必要的代码以在 python 脚本工作后

随机推荐

  • 学习笔记(三):Java中的List集合——ArrayList、LinkedList、Vector、Stack、CopyOnWriteArrayList

    目录 引言 一 List简介 二 常用List实现类 一 ArrayList 二 LinkedList 三 LinkedList和ArrayList的比较 三 其他List实现类 一 Vector 二 Stack 三 CopyOnWrite
  • Java安装、Java环境配置,以及我的第一个Java程序(win11)

    Java环境配置 下载OpenJDK Windows11 1 进入Oracle Java Downloads 2 下载 ZIP文件 3 解压到适合的位置 注意 路径最好是英文字母 配置环境变量 1 Win I打开系统设置 2 下拉到最底下选
  • vuejs 制作摄像头_VueJs的网络摄像头组件

    vuejs 制作摄像头 网络摄像头 vue web cam Webcam component for VueJs VueJs的网络摄像头组件 安装 Installation npm install vue web cam save yarn
  • 【Python】python logging模块打印log到指定文件

    可能我们经常会使用print来输出信息到窗口 但当我们有很多个py文件需要运行 项目比 较庞大的到时候 print简直就是太low了点了 那么我们可以使用强大的logging模块 把 输出到指定的本地pc某个路径的文件中 一 logging
  • 把字符串转换成整数(字符串)

    题目描述 将一个字符串转换成一个整数 要求不能使用字符串转换整数的库函数 数值为0或者字符串不是一个合法的数值则返回0 输入描述 输入一个字符串 包括数字字母符号 可以为空 输出描述 如果是合法的数值表达则返回该数字 否则返回0 思路一 p
  • 什么是体素(Voxel)

    复制粘贴的知乎 题图中是3D数据的不同表示类型 a 点云 Point clouds b 体素网格 Voxel grids 多边形网格 Polygon meshes d 多视图表示 Multi view representations 其中
  • 超参数选择:网格搜索GridSearchCV

    Grid Search 网格搜索 在所有候选的参数选择中 通过循环遍历 对每一种可能的参数在训练集上训练一个模型 在测试集上表现最好的参数就是最优的参数 模型最终的表现好坏与初始数据训练集和测试集的划分有很大的关系 测试集数据没有被训练 可
  • javaweb 解出与svn 服务器的绑定。

    情况描述 今天在上传项目时 误传项目的上传路径 解决办法 先移除在VisualSVN Server服务器上的相关目录 在客户端移除项目与VisualSVN Server的绑定关系 示例截图 第一步 断开与svn 服务器连接 第二步 清除sv
  • python中 for i in range(10)_Python for i in range ()用法详解

    for i in range 作用 range 是一个函数 for i in range 就是给i赋值 比如 for i in range 1 3 就是把1 2依次赋值给i range 函数的使用是这样的 range start stop
  • 树莓派学习(三):安装pytorch并验证

    树莓派学习 三 安装pytorch并验证标题 步骤一 创建一个虚拟环境 步骤二 安装pythorch 步骤三 测试 彩蛋 步骤一 创建一个虚拟环境 conda create name pytorchcpu python 3 9 10 如果需
  • java中null和isEmpty的区别

    isEmpty 分配了内存空间 值为空 是绝对的空 里面的值为空 分配了内存空间 值为空字符串 是相对的空 里面的值为空 null 未分配内存空间 没有值 是一种无值 值不存在 结论 null只能分辨出值是否分配内存空间 isEmpty不能
  • 7.1 大学排行榜分析(project)

    大学排名没有绝对的公正与权威 文件 alumni txt soft txt 中为按照不同评价体系给出的国内大学前100名排行 对比两个排行榜单前m的学校的上榜情况 分析不同排行榜排名的差异 输入输出 第一行输入1 第二行输入m 输出在alu
  • Linux下安装Redis

    redis安装和配置 1 安装 下载安装包 上次课前资料提供的安装包 或者 官网下载 建议上传到我们的home下 home leyou 解压 tar xvf redis 4 0 9 tar gz 编译安装 mv redis 4 0 9 re
  • VMware虚拟机安装CentOS7 Linux教程一篇笔记搞定(超详细)

    VMware虚拟机CentOS7教程篇 自己在网上找了好多资源 结果发现都不全面 教完安装CentOS7系统之后就没有下文了 网络配置 虚拟机网络ip修改地址等等都没有 想想自己还是出一篇比较详细的CentOS7安装教程吧 创作不易 感觉对
  • 关于一个大一学生的俄罗斯方块项目分享C#开发,附源码(一)

    本人为一双非大一计科新生 这是我第一篇文章 能力一般 水平有限 能在各位大佬面前弄斧 不胜荣幸 事情是这样的 我寒假买了一个3ds掌机 玩了里面很多游戏 其中最令我着迷的就是俄罗斯方块 说实话以前也玩过 但不知怎么就上瘾了 沉迷于刷分 什么
  • ChatGPT的出现会不会导致底层程序员失业?

    最近这段时间想必和我一样 都被ChatGPT刷屏了 对于这个问题 我尝试问了一下ChatGPT 它是这样说的 没错 上面的内容是ChatGPT自己 给出的回答 答案当然是 不会 程序员的核心不在于实现一个功能甚至不在于写出代码 而在于编码思
  • 数据库综合练习

    下图分别是练习中的教师表 学生表 成绩表 科目表 练习如下 1 查询 c001 课程比 c002 课程成绩高的所有学生的学号 方法一 使用自连接select c sno 学号from sc cinner join sc t on c sno
  • JNA模拟复杂的C类型——Java映射char*、int*、float*、double*

    文章目录 引言 Java Native Type Conversions Java和C基本类型指针对应关系 Pointer的具体用法 引言 最近项目在用Java调用C写的一些三方库 没办法直接调 用Java封装一下C的接口 这就少不了要用到
  • android 防止反编译 安全加固技术

    先说下加固技术发展历史 基础加固技术 1 代码混淆 proguard 2 签名比对 3 NDK so 库动态使用 第一代加固技术 动态加载 包括第一代加壳技术 落地加载 第二代加固技术 不落地加载 第三代加固技术 指令抽离 第四代加固技术
  • Jmeter(十九) - 从入门到精通 - JMeter监听器 -上篇(详解教程)

    1 简介 监听器用来监听及显示JMeter取样器测试结果 能够以树 表及图形形式显示测试结果 也可以以文件方式保存测试结果 JMeter测试结果文件格式多样 比如XML格式 CSV格式 默认情况下 测试结果将被存储为xml格式的文件 文件的