前言
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提供的所有逻辑控制器列表
- 简单控制器
- 循环控制器
- 一次只有控制器
- 交错控制器
- 随机控制器
- 随机顺序控制器
- 吞吐量控制器
- 运行时控制器
- 如果控制器
- 而控制器
- 开关控制器
- ForEach Controller
- 模块控制器
- 包括控制器
- 交易控制器
- 录音控制器
3. Listeners(监听器):
Listeners 用于收集和展示测试结果。JMeter 提供多种类型的监听器,如视图结果树、聚合报告、响应时间图表、响应时间直方图等,这些可以帮助测试人员分析性能数据。
有如下几种监听器:
- 示例结果保存配置
- Graph Full Results
- Graph Results
- Spline Visualizer
- 断言结果
- 查看结果树
- 汇总报告
- 查看表格中的结果
- 简单的数据编写者
- 监控结果
- 分布图(alpha)
- 聚合图
- Mailer Visualizer
- BeanShell监听器
- 总结报告
4. Configuration Elements:
配置元素用于设置测试计划中的全局配置,例如 HTTP 默认请求配置、Cookie 管理、CSV 数据集配置等。它们可以被多个 Samplers 共享,以减少重复配置的工作量。
以下列表包含JMeter提供的所有配置元素
- Counter
- CSV数据集配置
- FTP请求默认值
- HTTP授权管理器
- HTTP缓存管理器
- HTTP Cookie管理器
- HTTP代理服务器
- HTTP请求默认值
- HTTP标头管理器
- Java请求默认值
- 密钥库配置
- JDBC连接配置
- 登录配置元素
- LDAP请求默认值
- LDAP扩展请求默认值
- TCP采样器配置
- 用户定义的变量
- 简单的配置元素
- 随机变量
5. Post Processors 和 Pre Processors:
这些组件分别在 Sampler 发送请求前和接收响应后执行某些操作。例如,可以从响应中提取数据,或者在发送请求前修改请求数据。
以下列表包含JMeter提供的所有预处理器元素
- HTML链接解析器
- HTTP URL重写修饰符
- HTTP用户参数修饰符
- 用户参数
- JDBC预处理器
- JSR223预处理器
- RegEx用户参数
- BeanShell预处理器
- BSF预处理器
6. Timers:
定时器用于控制请求之间的延迟,帮助模拟真实用户的行为,例如思考时间。
以下列表包含JMeter提供的所有后处理器元素
- Regular Expression Extractor
- XPath Extractor
- 结果状态操作处理程序
- JSR223 PostProcessor
- JDBC PostProcessor
- BSF PostProcessor
- CSS/JQuery Extractor
- BeanShell PostProcessor
- 调试PostProcessor
7. Assertions:
断言用于验证响应是否符合预期。如果断言失败,测试结果会被标记,这有助于识别可能的性能瓶颈或错误。
以下列表包含JMeter提供的所有断言
- Beanshell断言
- BSF断言
- 比较断言
- JSR223断言
- 响应断言
- 持续时间断言
- 大小断言
- XML断言
- BeanShell断言
- MD5Hex断言
- HTML断言
- XPath断言
- XML Schema断言
8. 测试元素的执行顺序
- 配置元素
- Pre-Processors
- Timers
- Sampler
- 后处理器(除非SampleResult为null)
- 断言(除非SampleResult为null)
- 监听器(除非SampleResult为null)
文章原创首发于微信公众号 软件测试微课堂,更多内容欢迎关注微信公众号查看