【性能测试】jmeter工具核心组件说明手册

news2024/12/25 2:30:45

前言

Apache JMeter 是一个用于压力测试和性能测量的开源工具,它被设计用来测试静态和动态资源(例如静态文件、CGI接口、Java 对象、数据库和 FTP 服务器),以及分析整体系统性能。JMeter提供了丰富的组件集,使得用户可以根据测试需求灵活地构建测试计划。

1. Thread Group线程组:

线程组是JMeter测试计划中的基础组件,用于定义一组虚拟用户(线程)。你可以设置线程的数量、循环次数、启动延迟等参数,来模拟不同数量的并发用户对系统进行访问。

线程组面板包含以下组件 -

  • Action to be taken after a Sampler error-如果在测试执行期间发生任何错误,您可以让测试 -

    • Continue测试中的下一个元素

    • Stop Thread以停止当前线程。

    • 完全Stop Test ,以防您在继续运行之前检查错误。

  • Number of Threads - 模拟服务器应用程序的用户数或连接数。

  • Ramp-Up - Period定义JMeter使所有线程运行所需的时间。

  • Loop Count - 定义执行测试的次数。

  • Scheduler checkbox - 选择后,“计划程序配置”部分将显示在控制面板的底部。

  • Scheduler Configuration - 您可以配置运行测试的开始和结束时间。

2. Controllers Samplers、Logic Controllers控制器:

Samplers 负责向服务器发送请求并接收响应。它们可以模拟各种协议,如 HTTP、FTP、SOAP、JMS、JDBC 等。每个 Sampler 都代表一个具体的请求类型,如 HTTP 请求、FTP 文件上传、RPC请求、SOAP/XML请求等。

JMeter 的 Logic Controllers 是用于控制测试计划中请求(或称为 Samplers)执行流程的组件。它们允许你根据特定条件来决定哪些 Sampler 应该执行,以及执行的次数。这对于创建复杂和现实的测试场景非常有用,因为它们可以模仿用户的决策路径和行为。

JMeter提供的所有逻辑控制器列表

  1. 简单控制器
  2. 循环控制器
  3. 一次只有控制器
  4. 交错控制器
  5. 随机控制器
  6. 随机顺序控制器
  7. 吞吐量控制器
  8. 运行时控制器
  9. 如果控制器
  10. 而控制器
  11. 开关控制器
  12. ForEach Controller
  13. 模块控制器
  14. 包括控制器
  15. 交易控制器
  16. 录音控制器

3. Listeners(监听器):

Listeners 用于收集和展示测试结果。JMeter 提供多种类型的监听器,如视图结果树、聚合报告、响应时间图表、响应时间直方图等,这些可以帮助测试人员分析性能数据。

有如下几种监听器

  1. 示例结果保存配置
  2. Graph Full Results
  3. Graph Results
  4. Spline Visualizer
  5. 断言结果
  6. 查看结果树
  7. 汇总报告
  8. 查看表格中的结果
  9. 简单的数据编写者
  10. 监控结果
  11. 分布图(alpha)
  12. 聚合图
  13. Mailer Visualizer
  14. BeanShell监听器
  15. 总结报告

4. Configuration Elements:

配置元素用于设置测试计划中的全局配置,例如 HTTP 默认请求配置、Cookie 管理、CSV 数据集配置等。它们可以被多个 Samplers 共享,以减少重复配置的工作量。

以下列表包含JMeter提供的所有配置元素

  1. Counter
  2. CSV数据集配置
  3. FTP请求默认值
  4. HTTP授权管理器
  5. HTTP缓存管理器
  6. HTTP Cookie管理器
  7. HTTP代理服务器
  8. HTTP请求默认值
  9. HTTP标头管理器
  10. Java请求默认值
  11. 密钥库配置
  12. JDBC连接配置
  13. 登录配置元素
  14. LDAP请求默认值
  15. LDAP扩展请求默认值
  16. TCP采样器配置
  17. 用户定义的变量
  18. 简单的配置元素
  19. 随机变量

5. Post Processors 和 Pre Processors:

这些组件分别在 Sampler 发送请求前和接收响应后执行某些操作。例如,可以从响应中提取数据,或者在发送请求前修改请求数据。

以下列表包含JMeter提供的所有预处理器元素

  1. HTML链接解析器
  2. HTTP URL重写修饰符
  3. HTTP用户参数修饰符
  4. 用户参数
  5. JDBC预处理器
  6. JSR223预处理器
  7. RegEx用户参数
  8. BeanShell预处理器
  9. BSF预处理器

6. Timers:

定时器用于控制请求之间的延迟,帮助模拟真实用户的行为,例如思考时间。

以下列表包含JMeter提供的所有后处理器元素

  1. Regular Expression Extractor
  2. XPath Extractor
  3. 结果状态操作处理程序
  4. JSR223 PostProcessor
  5. JDBC PostProcessor
  6. BSF PostProcessor
  7. CSS/JQuery Extractor
  8. BeanShell PostProcessor
  9. 调试PostProcessor

7. Assertions:

断言用于验证响应是否符合预期。如果断言失败,测试结果会被标记,这有助于识别可能的性能瓶颈或错误。

以下列表包含JMeter提供的所有断言

  1. Beanshell断言
  2. BSF断言
  3. 比较断言
  4. JSR223断言
  5. 响应断言
  6. 持续时间断言
  7. 大小断言
  8. XML断言
  9. BeanShell断言
  10. MD5Hex断言
  11. HTML断言
  12. XPath断言
  13. XML Schema断言

8. 测试元素的执行顺序

  1. 配置元素
  2. Pre-Processors
  3. Timers
  4. Sampler
  5. 后处理器(除非SampleResult为null)
  6. 断言(除非SampleResult为null)
  7. 监听器(除非SampleResult为null)

文章原创首发于微信公众号 软件测试微课堂,更多内容欢迎关注微信公众号查看

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

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

相关文章

国内邮件推送防拦截秘籍与内容优化技巧详解

企业需优化邮件内容、选择优质服务商、配置域名验证,避免垃圾邮件特征,控制发送频率和策略,以提高邮件送达率和用户互动率。ZohoCampaigns等平台提供多项功能助力邮件营销。 一、了解邮件拦截的常见原因 在讨论如何避免邮件被拦截之前&#…

Cookie Session Token的各种知识

Session 1、为什么有session? 因为HTTP是无状态协议,每次请求服务器并不知道历史请求的记录,Session和Cookie主要就是为了弥补无状态的特性 2、Session是什么 客户端请求时,服务端开辟一块内存空间存放Session对象,存…

(二)大模型调用

一、基本概念 1.1、Prompt 大模型的所有输入,即,我们每一次访问大模型的输入为一个 Prompt, 而大模型给我们的返回结果则被称为 Completion。 1.2、Temperature LLM 生成是具有随机性的,在模型的顶层通过选取不同预测概率的预测结…

SOLIDWORKS 2025 PDM 更新亮点:效率与性能的提升!

SOLIDWORKS PDM 持续致力于为用户提供更加高效、直观且灵活的数据管理解决方案。SOLIDWORKS 2025 也对PDM功能进行了多方面的改进,旨在提高工作效率,并增强系统性能。 以下是SOLIDWORKS 2025 PDM中的几项关键功能的详细介绍。 1经过改进的材料明细表可…

【C++】面向对象编程的三大特性:深入解析多态机制

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

这次PostgreSQL事故后,我把表膨胀清理工具撸了一遍

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

预训练技巧:在训练末尾对领域数据上采样

1. 简介 介绍了一种在模型训练结尾对领域数据上采样能够提升在benchmark上的指标。通过实验表明上采样比例在10-20%是能够在通用语言能力与目标benchmark保持权衡的最好比例。 2. 实验 数据:1T模型:decoder-only结构,7B大小,具…

Linux:进程间通信之共享内存

我们无论使用命名管道还是匿名管道,都是在文件层面上实现的通信,实际上还有基于系统层面的system v标准的进程间通信方式。 因为操作系统不相信用户,所以用户使用的时候只能通过调用的方式 进程间通信的本质:先让不同的进程看到…

C++中list类的使用及模拟实现

目录 1.C中list的底层结构 2.C中list容器各个接口函数的使用 3.迭代器的分类 3.1从功能上进行分类 3.2从性质上进行分类 4.list的结构 5.list的模拟实现 5.1默认成员函数(Member functions) 5.1.1构造函数(constructor) 5.1.1.1默认构造函数 5.1.1.2 initializer …

OSError: [WinError 126] 找不到指定的模块。 Error loading \torch\lib\fbgemm.dll“

遇到问题: 在使用torch 、 或者任何设计到torch的库中,只要导入torch就会报错 解决方案 https://blog.csdn.net/Changxing_J/article/details/140489278 https://blog.csdn.net/weixin_43591849/article/details/140715890(最终这个解决&…

初识Linux · 进程终止

目录 前言: 进程终止在干什么 进程终止的3种情况 进程如何终止 前言: 由上文的地址空间的学习,我们已经知道了进程不是单纯的等于PCB 自己的代码和数据,进程实际上是等于PCB mm_struct(地址空间) 页表 自己的代码和数据。…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之⑥:NL2SQL技术探讨

一、概述 NL2SQL(Natural Language to SQL)是一种将自然语言转换为结构化查询语言的技术。它可以帮助用户通过使用自然语言来与数据库进行交互,而无需了解复杂的SQL语法。 NL2SQL技术的背景: 随着人工智能的发展,越…

prometheus + alertmanager + PrometheusAlert实现告警

prometheus 收集监控数据 alertmanager 制定告警路由 PrometheusAlert 连通告警webhook 一、prometheus配置 https://prometheus.io/download/ 1.1、prometheus安装 包的下载直接wget就行,放在data目录下,解压后在prometheus目录下创建config和rule目录 配置了热重启&#…

聊一聊 C#中有趣的 SourceGenerator生成器

一:背景 1. 讲故事 前些天在看 AOT的时候关注了下 源生成器,挺有意思的一个东西,今天写一篇文章简单的分享下。 二:源生成器探究之旅 1. 源生成器是什么 简单来说,源生成器是Roslyn编译器给程序员开的一道口子&am…

vxe-grid给单元格加上触发事件

效果&#xff1a;输入框的双击事件(其他事件可以由此替换) 代码 // gridTableOptions是每列的配置项 <vxe-grid v-bind"gridTableOptions" :data"goodsList" ref"xTable">// edit_spbh 是对应的样式名&#xff0c;是写在gridTableOption…

如何通过日志快速定位TTS的缓存放音文件(mod_cti基于FreeSWITCH)

文章目录 前言联系我们分析过程1. 测试话术&#xff0c;记录日志2. 关键词搜索 前言 顶顶通呼叫中心中间件在运行话术时&#xff0c;如果有通过TTS合成的语音&#xff0c;会被freeswitch缓存在目录中&#xff1a;/ddt/fs/storage/http_file_cache。 我们可以分析freeswitch日志…

学习Webpack中图片-JS-Vue-plugin

目录 图片文件资源模块类型 JS文件babel命令行使用babel-loaderbabel-preset Vue文件vue-loadervue/compiler-sfc pluginCleanWebpackPluginHtmlWebpackPluginDefinePlugin 图片文件 需要先在项目中使用图片&#xff0c;比较常见的使用图片的方式是两种&#xff1a; img元素&…

LeetCode 918. 环形子数组的最大和

原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 给定一个长度为 n 的环形整数数组 nums &#xff0c;返回 nums 的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上&#xff0c; nums[i] 的下一个元素是 nums[(i 1) % n…

基于STM32的智能室内空气质量监控系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 传感器数据采集与处理空气质量分析与报警显示与数据记录功能应用场景结论 1. 引言 智能室内空气质量监控系统用于实时监测环境中的空气质量&#xff0c;通过检测空气中的CO2、PM2.5、温…

软件测试学习笔记丨Pytest 学习指南

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/32336 基本介绍 pytest框架是一个成熟&#xff0c;全面的测试框架&#xff0c;具有非常丰富的第三方插件&#xff0c;并且可以自定义扩展 比如&#xff1a;pytest-selenium , pytest-html ,…