Apache Jmeter各组件使用方式详解

Apache JMeter 是一个功能强大的开源性能测试工具,用于对网站、Web 应用程序、数据库以及其他服务器进行性能测试和负载测试。JMeter 提供了许多组件来帮助用户创建和执行测试计划。

1. 测试计划(Test Plan)

测试计划是 JMeter 的顶层元素,它定义了所有其他测试元素的容器。一个测试计划可以包含一个或多个线程组以及各种配置元件、前置处理器、后置处理器、计时器、断言和监听器。

2. 线程组(Thread Group)

线程组是测试计划的基础组件,用于定义并发用户(线程)的数量、启动速度以及测试的持续时间。

  • 线程数(Number of Threads):模拟的用户数。
  • Ramp-Up Period(in seconds):启动所有线程所需的时间,单位是秒。
  • 循环次数(Loop Count):每个线程执行的次数,可以设置为特定次数或永久循环。

3. 取样器(Sampler)

取样器用于发送请求到服务器并获取响应。JMeter 提供了多种取样器:

  • HTTP Request:用于发送 HTTP/HTTPS 请求。
  • JDBC Request:用于发送 SQL 查询到数据库。
  • SOAP/XML-RPC Request:用于发送 SOAP 或 XML-RPC 请求。
  • FTP Request:用于执行 FTP 文件传输请求。
  • JMS Request:用于发送消息到 JMS(Java Message Service)队列或主题。

4. 逻辑控制器(Logic Controller)

逻辑控制器用于控制取样器的执行顺序和条件:

  • If Controller:在特定条件下执行其子元素。
  • Loop Controller:重复执行其子元素指定的次数。
  • Transaction Controller:将多个取样器的执行视为一个事务。
  • Switch Controller:根据给定的条件选择执行其子元素中的一个。
  • While Controller:只要条件为真,就会重复执行其子元素。

5. 监听器(Listener)

监听器用于收集和显示测试结果:

  • View Results Tree:以树形结构显示每个请求的详细结果。
  • View Results in Table:以表格形式显示结果。
  • Summary Report:显示摘要报告,包括吞吐量、平均响应时间等。
  • Graph Results:以图形方式显示测试结果。
  • Aggregate Report:汇总报告,显示每个取样器的统计信息。

6. 计时器(Timer)

计时器用于在请求之间添加延迟:

  • Constant Timer:添加固定的延迟时间。
  • Uniform Random Timer:添加随机延迟时间,服从均匀分布。
  • Gaussian Random Timer:添加随机延迟时间,服从高斯分布。
  • Constant Throughput Timer:控制每分钟的请求次数,以实现恒定的吞吐量。

7. 前置处理器(Pre-Processor)

前置处理器在取样器执行之前运行,用于修改请求:

  • HTTP URL Re-writing Modifier:用于 URL 重写。
  • User Parameters:用于设置用户参数。
  • BeanShell PreProcessor:使用 BeanShell 脚本修改请求。

8. 后置处理器(Post-Processor)

后置处理器在取样器执行之后运行,用于处理响应数据:

  • Regular Expression Extractor:使用正则表达式提取响应数据。
  • JSON Extractor:从 JSON 响应中提取数据。
  • BeanShell PostProcessor:使用 BeanShell 脚本处理响应数据。

9. 断言(Assertion)

断言用于验证响应数据是否符合预期:

  • Response Assertion:验证响应数据是否包含特定文本。
  • Duration Assertion:验证响应时间是否在指定范围内。
  • Size Assertion:验证响应数据的大小。
  • XML Assertion:验证响应数据是否符合 XML 规范。

10. 配置元件(Config Element)

配置元件用于为取样器提供共享的配置信息:

  • HTTP Request Defaults:设置 HTTP 请求的默认值。
  • CSV Data Set Config:从 CSV 文件中读取数据。
  • User Defined Variables:定义用户变量。

11. 定时器(Timer)

定时器用于在请求之间添加延迟时间,以模拟用户的思考时间:

  • Constant Timer:固定的延迟时间。
  • Uniform Random Timer:在一定范围内的随机延迟时间。
  • Gaussian Random Timer:高斯分布的随机延迟时间。

12. 测试片段(Test Fragment)

测试片段是一个独立的测试单元,可以在其他地方被引用,通常与模块化控制器(Module Controller)一起使用,以便在测试计划中实现重用。

相关推荐
小钱c72 小时前
Mac下安装Apache JMeter并启动
jmeter·macos·apache
古人诚不我欺6 小时前
jmeter常用配置元件介绍总结之函数助手
jmeter
川石课堂软件测试6 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
古人诚不我欺6 小时前
jmeter常用配置元件介绍总结之取样器
jmeter
十叶知秋6 小时前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
我非夏日6 小时前
JMeter基础篇
jmeter
茶馆大橘15 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
土小帽软件测试21 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
土小帽软件测试1 天前
jmeter基础03_汉化jmeter界面
测试工具·jmeter·软件测试学习
紫晓宁1 天前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible