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

相关推荐
IT利刃出鞘21 小时前
JMeter--定时执行的方法
jmeter
宇文诸1 天前
jmeter-beanshell学习1-vars使用获取变量和设置变量
jmeter
测试19981 天前
Jmeter 进行http接口测试
自动化测试·软件测试·python·网络协议·jmeter·http·单元测试
测试界的世清1 天前
selenium测试框架快速搭建(ui自动化测试)
开发语言·selenium·测试工具·jmeter·ui
奔波儿灞爱霸波尔奔2 天前
浅谈定时器之泊松随机定时器
jmeter
奔波儿灞爱霸波尔奔2 天前
浅谈定时器之JSR223 定时器
jmeter
测试界柠檬2 天前
JMeter接口自动化测试(数据驱动)
自动化测试·软件测试·功能测试·jmeter·程序人生·职场和发展
测试界吖吖4 天前
0基础学JMeter:如何开始简单的WEB压力测试(一)
自动化测试·软件测试·功能测试·jmeter·程序人生·职场和发展·压力测试
程序员曦曦5 天前
基于Jmeter的分布式压测环境搭建及简单压测实践
自动化测试·软件测试·分布式·功能测试·jmeter·程序人生·职场和发展