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

相关推荐
文人sec9 小时前
性能测试-jmeter9-逻辑控制器、定时器压力并发
测试工具·jmeter·性能优化·模块测试
CesareCheung2 天前
JMeter分布式压力测试
分布式·jmeter·压力测试
测试界清流2 天前
jmeter使用技巧
jmeter
春时似衿里2 天前
jmeter配置数据库连接步骤
数据库·jmeter
新知图书2 天前
JMeter的安装部署
jmeter
程序员杰哥2 天前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
乐神嘎嘎嘎2 天前
Jmeter测试
jmeter
卓码软件测评2 天前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
BatyTao3 天前
Jmeter执行数据库操作
数据库·jmeter
二宝哥3 天前
性能测试工具Jmeter之java.net.BindException: Address already in use
jmeter