Jmeter中的监听器(一)

监听器

9b1d06c8e77e4dc58ed9fb50f240e9c8.png

1--查看结果树

用途

  • 调试测试计划:查看每个请求的详细信息,帮助调试和修正测试计划。
  • 分析响应数据:查看服务器返回的响应数据,验证请求是否成功。
  • 检查错误:识别和分析请求失败的原因。

配置步骤

  1. 添加查看结果树监听器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “监听器” -> “查看结果树”(View Results Tree)。
  2. 配置查看结果树监听器

    • 名称:给查看结果树监听器一个有意义的名称。
    • 保存响应数据:选择是否保存响应数据到文件。
    • 响应数据文件:指定保存响应数据的文件路径(可选)。
    • 高级选项:可以启用一些高级选项,如显示响应头、响应体等。

示例配置

假设我们需要测试一个Web应用,并使用“查看结果树”监听器来查看每个请求的详细信息。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加查看结果树监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 配置查看结果树监听器:
      • 名称:查看结果树
      • 保存响应数据:选择“否”(除非需要保存响应数据到文件)。
      • 响应数据文件:(可选,留空)
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
  6. 查看结果

    • 在“查看结果树”监听器中,可以看到每个请求的详细信息,包括请求和响应的数据、响应代码、响应时间等。
    • 请求标签:显示请求的基本信息,如请求名称、服务器地址、请求方法等。
    • 请求数据:显示发送的请求数据。
    • 响应数据:显示服务器返回的响应数据。
    • 响应码:显示服务器返回的HTTP响应码。
    • 响应时间:显示请求的响应时间。
    • 响应头:显示服务器返回的响应头信息。
    • 响应体:显示服务器返回的响应体内容。

优化建议

  1. 名称

    • 给监听器一个有意义的名称,以便在测试计划中容易识别。
  2. 保存响应数据

    • 如果不需要保存响应数据到文件,可以选择不保存,以减少磁盘空间占用。
  3. 高级选项

    • 启用“显示响应头”和“显示响应体”选项,可以查看更多的响应信息,有助于调试和分析。
  4. 性能影响

    • 注意“查看结果树”监听器会记录大量的详细信息,可能会对测试性能产生一定影响。在大规模性能测试中,建议使用其他轻量级的监听器,如“聚合报告”或“汇总报告”。
  5. 过滤请求

    • 如果测试计划中有大量请求,可以使用过滤功能,只查看特定的请求。

e31beae1e3f544188f2a230dab35ebc4.png

 

 


2--汇总报告

用途

  • 性能评估:评估测试的整体性能,包括平均响应时间、吞吐量、错误率等。
  • 数据分析:生成详细的统计数据,帮助分析测试结果。
  • 报告生成:生成易于理解和分享的测试报告。

配置步骤

  1. 添加汇总报告监听器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “监听器” -> “汇总报告”(Summary Report)。
  2. 配置汇总报告监听器

    • 名称:给汇总报告监听器一个有意义的名称。
    • 文件:指定保存报告的文件路径(可选)。
    • 其他选项:可以启用一些高级选项,如保存响应数据等。

示例配置

假设我们需要测试一个Web应用,并使用汇总报告监听器来生成测试结果的汇总统计信息。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加汇总报告监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 汇总报告。
    • 配置汇总报告监听器:
      • 名称:汇总报告
      • 文件:(可选,指定保存报告的文件路径,例如C:\reports\summary_report.csv
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
  6. 查看报告

    • 在“汇总报告”监听器中,可以看到每个请求的汇总统计信息,包括以下列:
      • Label:请求的标签名称。
      • # Samples:请求的样本数量。
      • Average:平均响应时间(毫秒)。
      • Min:最小响应时间(毫秒)。
      • Max:最大响应时间(毫秒)。
      • Error %:错误率(百分比)。
      • Throughput:吞吐量(每秒请求数)。
      • KB/sec:每秒传输的数据量(千字节)。

优化建议

  1. 名称

    • 给监听器一个有意义的名称,以便在测试计划中容易识别。
  2. 文件保存

    • 如果需要保存报告到文件,确保指定的文件路径有效。保存为CSV格式的文件便于后续分析和处理。
  3. 性能影响

    • 汇总报告监听器对性能的影响较小,适合在大规模性能测试中使用。
  4. 过滤请求

    • 如果测试计划中有大量请求,可以使用过滤功能,只查看特定的请求。
  5. 多线程组

    • 如果测试计划中包含多个线程组,可以在每个线程组中添加汇总报告监听器,分别生成各自的报告。
  6. 综合分析

    • 结合其他监听器(如“查看结果树”、“聚合报告”等)一起使用,可以更全面地分析测试结果。

b5d5e285cacf4213b1984eb52b2e8bda.png

 


3--聚合报告

用途

  • 性能评估:评估测试的整体性能,包括平均响应时间、中位数、标准差、错误率等。
  • 数据分析:生成详细的统计数据,帮助分析测试结果。
  • 报告生成:生成易于理解和分享的测试报告。

配置步骤

  1. 添加聚合报告监听器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “监听器” -> “聚合报告”(Aggregate Report)。
  2. 配置聚合报告监听器

    • 名称:给聚合报告监听器一个有意义的名称。
    • 文件:指定保存报告的文件路径(可选)。
    • 其他选项:可以启用一些高级选项,如保存响应数据等。

示例配置

假设我们需要测试一个Web应用,并使用聚合报告监听器来生成测试结果的详细统计信息。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加聚合报告监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 聚合报告。
    • 配置聚合报告监听器:
      • 名称:聚合报告
      • 文件:(可选,指定保存报告的文件路径,例如C:\reports\aggregate_report.csv
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
  6. 查看报告

    • 在“聚合报告”监听器中,可以看到每个请求的详细统计信息,包括以下列:
      • Label:请求的标签名称。
      • # Samples:请求的样本数量。
      • Average:平均响应时间(毫秒)。
      • Median:中位数响应时间(毫秒)。
      • 90% Line:90%的响应时间(毫秒)。
      • Min:最小响应时间(毫秒)。
      • Max:最大响应时间(毫秒)。
      • Error %:错误率(百分比)。
      • Throughput:吞吐量(每秒请求数)。
      • KB/sec:每秒传输的数据量(千字节)。
      • Std Dev:标准差(响应时间的标准差)。

优化建议

  1. 名称

    • 给监听器一个有意义的名称,以便在测试计划中容易识别。
  2. 文件保存

    • 如果需要保存报告到文件,确保指定的文件路径有效。保存为CSV格式的文件便于后续分析和处理。
  3. 性能影响

    • 聚合报告监听器对性能的影响较小,适合在大规模性能测试中使用。
  4. 过滤请求

    • 如果测试计划中有大量请求,可以使用过滤功能,只查看特定的请求。
  5. 多线程组

    • 如果测试计划中包含多个线程组,可以在每个线程组中添加聚合报告监听器,分别生成各自的报告。
  6. 综合分析

    • 结合其他监听器(如“查看结果树”、“汇总报告”等)一起使用,可以更全面地分析测试结果。

eccc3a7f32ec4d539c0562efbb03c52f.png

常见统计术语解释

  • Label:请求的标签名称,用于标识不同的请求。
  • # Samples:请求的样本数量,即该请求被发送的次数。
  • Average:平均响应时间,所有样本的响应时间的平均值。
  • Median:中位数响应时间,所有样本的响应时间的中间值。
  • 90% Line:90%的响应时间,表示90%的请求的响应时间不超过这个值。
  • Min:最小响应时间,所有样本中的最小值。
  • Max:最大响应时间,所有样本中的最大值。
  • Error %:错误率,表示请求失败的比例。
  • Throughput:吞吐量,每秒处理的请求数。
  • KB/sec:每秒传输的数据量,单位为千字节。
  • Std Dev:标准差,表示响应时间的离散程度,标准差越大表示响应时间的波动越大。

 


4--后端监听器

用途

  • 实时监控:将测试结果实时发送到外部系统,实现实时监控。
  • 数据存储:将测试结果存储到外部数据库,便于后续分析。
  • 集成工具:与各种数据存储和分析工具集成,扩展JMeter的功能。

支持的后端系统

  • InfluxDB:一个开源的时间序列数据库,适合存储和查询时间序列数据。
  • Graphite:一个开源的度量数据存储和绘图工具。
  • TSDB:Telegraf、InfluxDB、Chronograf、Kapacitor等组成的监控解决方案。
  • 其他自定义后端:可以通过编写自定义脚本或插件支持其他后端系统。

配置步骤

  1. 添加后端监听器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “监听器” -> “后端监听器”(Backend Listener)。
  2. 配置后端监听器

    • 名称:给后端监听器一个有意义的名称。
    • 实现类:选择后端监听器的具体实现类(例如org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient)。
    • 数据库URL:后端系统的URL(例如http://localhost:8086)。
    • 数据库名称:后端数据库的名称(例如jmeter)。
    • 保留策略:后端数据库的保留策略(例如autogen)。
    • 测量名称:存储数据的测量名称(例如response_times)。
    • 用户名:后端系统的用户名(如果需要)。
    • 密码:后端系统的密码(如果需要)。
    • 采样间隔:发送数据的间隔时间(毫秒)。
    • 批处理大小:每次发送的数据条数。
    • 其他选项:根据需要配置其他选项,如标签、字段等。

示例配置

假设我们需要将测试结果实时发送到InfluxDB进行监控和分析。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加后端监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 后端监听器。
    • 配置后端监听器:
      • 名称:后端监听器
      • 实现类org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
      • 数据库URLhttp://localhost:8086
      • 数据库名称jmeter
      • 保留策略autogen
      • 测量名称response_times
      • 用户名:(如果需要,填写InfluxDB的用户名)
      • 密码:(如果需要,填写InfluxDB的密码)
      • 采样间隔:1000(每秒发送一次数据)
      • 批处理大小:100(每次发送100条数据)
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
  6. 查看结果

    • 打开InfluxDB的Web界面或使用命令行工具,查看存储的数据。
    • 使用Grafana等可视化工具,创建仪表板展示测试结果。

优化建议

  1. 名称

    • 给监听器一个有意义的名称,以便在测试计划中容易识别。
  2. 实现类

    • 根据使用的后端系统选择合适的实现类。
  3. 数据库URL和名称

    • 确保数据库URL和名称的正确性,避免因配置错误导致数据无法发送。
  4. 保留策略

    • 根据需要选择合适的保留策略,确保数据的持久性和性能。
  5. 测量名称

    • 选择合适的测量名称,以便在后端系统中容易识别和查询。
  6. 采样间隔和批处理大小

    • 根据测试需求和后端系统的性能,调整采样间隔和批处理大小,确保数据发送的频率和批量大小合适。
  7. 安全性

    • 如果后端系统需要认证,确保填写正确的用户名和密码。
  8. 性能影响

    • 注意后端监听器可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整采样间隔和批处理大小来优化性能。

857ebd4dcc934a04a5b62a44d30b1578.png


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13551.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习—多个输出的分类(Optional)

有一种不同类型的分类问题,称为多标签分类问题,与每个图像相关联的地方可能有多个标签。 如果你正在制造一辆自动驾驶汽车或者驾驶辅助系统,然后给你一张车前的照片,你可能想问,比如有没有一辆车或者至少有一辆车还是…

上海市计算机学会竞赛平台2020年4月月赛丙组永恒的生命游戏

题目背景 2020年4月11日,英国数学家 约翰霍顿康威(John Horton Conway)因为新型冠状病毒肺炎不幸逝世。他在群论、数论、代数、几何拓扑、理论物理、组合博弈论和几何等领域,都做出了重大贡献。他的离去是人类文明的损失。他最著…

SQLI LABS | Less-43 POST-Error Based-String-Stacked With Twist

关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-43/ 本关是堆…

UEFI Shell命令(二)

一、Shell 命令行选项 ​-b, -break 每页输出后暂停一会,即分页输出 -q, -quiet 抑制所有的输出 -sfo 标准格式输出 -t, -terse 简洁的输出 -v, -verbose 详细的输出 -? 帮助 二、特殊Shell命令 1、attrib 显示或更改文件或目录的属性 [a | -a] 设置…

【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题

前言 qt、qml项目经常会涉及访问MySQL数据库、网络服务器,并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据,如果网络不通,卡个几十秒,会让用户觉得非常的不爽,本文从技术调研的角度讲解解决此类问…

【C语言】程序性能优化——除法运算符

【C语言】程序性能优化——除法运算符 文章目录 [TOC](文章目录) 前言一、牛顿迭代法1、数学基础2、C代码3、实验 二、二分法1、数学基础2、C代码3、实验 三、参考资料总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、牛顿迭代法 1、数学…

每日计划-1109

1. 完成 104. 二叉树的最大深度 class Solution { public:// 计算二叉树的最大深度的函数int maxDepth(TreeNode* root) {// 如果根节点为空,说明已经到达叶子节点的下一层,返回0(这里代码中 return false 应该是错误的,应该是 r…

基于YOLOv5的人群密度检测系统设计与实现

大家好,本文将介绍基于改进后的YOLOv5目标检测模型,设计并实现人群密度检测系统。 使用YOLOv5的源代码,在此基础上修改和训练模型, 数据集选用crowdhuman数据集。对yolov5源码中的文件进行修改,更换主干网络、改进损失…

鸿蒙入门——ArkUI 自定义组件间的父子双向同步状态装饰器@Link语法(四)

文章大纲 引言一、组件间状态装饰器Link 父子双向同步1、使用规则2、支持的观察变化的场景和ArkUI 刷新UI3、Link变量值初始化和更新机制3.1、初始渲染:执行父组件的build()函数后将创建子组件的新实例。3.2、Link的数据源的更新:即父组件中状态变量更新…

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页

Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…

[SaaS] 数禾科技 AIGC生成营销素材

https://zhuanlan.zhihu.com/p/923637935https://zhuanlan.zhihu.com/p/923637935

前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)

文章目录 1. npm (Node Package Manager)2. Yarn (Yarn Package Manager)3. pnpm4. Bower5. Parcel总结 前端开发中常用的包管理器主要有以下几个: 1. npm (Node Package Manager) 简介: npm 是 Node.js 的默认包管理器,也是最广泛使用的包…

【go从零单排】Random Numbers、Number Parsing

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 这里是引用 💻代码 Random Numbers package mainimport ("fmt…

qt移植到arm报错动态库找不到

error while loading shared libraries: libAlterManager.so.1: cannot open shared object file: No such file or directory 通过设置环境变量 LD_LIBRARY_PATH就行了。 LD_LIBRARY_PATH是一个用于指定动态链接器在运行时搜索共享库的路径的环境变量。 例如: 前…

GoogleMIT:多智能体医疗决策框架MDAgents

|记昨日与国内某Top 1&2 医院科室老师及团队探讨技术、医学、信仰与责任而有感而发。 生成式基础大模型正在成为临床辅助甚至医学探索领域的宝贵工具。尽管我们在国内看到了很多企业或实验室联合医疗机构在如医疗记录生成、临床表型辅助诊疗、医疗知识问答交互、医院管理决…

【数据库】深入解析慢 SQL 的识别与优化策略

文章目录 什么是慢 SQL?慢 SQL 的危害如何检测分析慢 SQL使用 MySQL 慢查询日志利用 EXPLAIN 分析执行计划通过 Profiling 获取详细执行信息借助慢 SQL 收集分析平台 实际案例解析:600秒的慢 SQL 优化之旅问题描述初步分析优化步骤1. 优化 SQL 语句结构2…

高校大数据人工智能教学沙盘分享

大数据教学实训沙盘(TipDM-SP)是根据企业实际项目建设而成,并提供沙盘配套装置、软件以及教学实训资源。沙盘的作用主要有3个: 1、采集真实数据,解决教学中缺少真实数据的困扰; 2、形成从数据…

【C++】string模拟实现

各位读者老爷好,俺最近在学习string的一些知识。为了更好的了解string的结构,俺模拟实现了一个丐版string,有兴趣的老爷不妨垂阅!!! 目录 1.string类的定义 2.模拟实现成员函数接口 2.1.constructor&am…

c_str()函数 string类型转换成char*类型 C++实现

问题:在 class 的构造函数中,如果我们在类中初始化了 char * 类型,在调用构造函数时,如果直接传入字符串( string )类型,编译器会提出如下警告: 想要消除这个警告,就需要将 string 类型的变量转…

【vue3文件上传同时出现两个提示框,一个提示成功,一个提示失败,一个是用写死的,一个是接口返回的】

文件上传同时出现两个提示框,一个提示成功,一个提示失败,一个是用写死的,一个是接口返回的 原因: 接口返回的是字符串code200" 把判断的code码改为字符串的就好了