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)一起使用,以便在测试计划中实现重用。

相关推荐
tester Jeffky35 分钟前
深入探索JMeter的执行器时间线:从CLArgsParser到JmeterEngine
jmeter
惜.己1 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
tester Jeffky2 小时前
深入探索JMeter bin目录中的Properties文件:优化性能测试的关键
jmeter
tester Jeffky10 小时前
掌握移动端性能测试利器:深入JMeter手机录制功能
jmeter·智能手机
惜.己11 小时前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
凌云行者11 小时前
JMeter的简单使用
jmeter·性能测试
tester Jeffky11 小时前
深入探索Apache JMeter:HashTree结构解析与应用
jmeter
tester Jeffky11 小时前
深入JMeter核心引擎:揭秘JmeterEngine、StandardJmeterEngine、ClientJmeterEngine与Remote的奥秘
jmeter
古人诚不我欺1 天前
jmeter常用配置元件介绍总结之监听器
jmeter
oh-pinpin2 天前
jmeter--CSV数据文件设置--请求体设置变量
jmeter