高级 Apache JMeter 组件概述
Apache JMeter 根据其功能将所有组件分为以下组:
- Test Plan:脚本的起点。JMeter 以 .jmx 格式保存测试计划。通过右键单击 Test Pand 并导航到要添加的组件,可以将组件添加到测试计划中。
- Workbench:是一个开始编写脚本的临时场所。除了测试计划中提供的所有组件外,你还可以获得- HTTP(s) Test Script Recorder以便浏览器操作。如果你选中保存工作台复选框,脚本可以保存在 Workbench 中,否则它们不会。
- Threads (Users):你可以定义要运行的多个(虚拟)用户,加速时间和循环计数。你还可以在测试计划中定义线程组是否需要在多个线程组的情况下以顺序或并行方式运行。一些例子是- Thread Group, setUp Thread Group, and tearDown Thread Group
- Logic Controller:允许你定义采样器的执行和分组流程。其中一个有用的示例是事务控制器,你可以在其中组合登录页面的所有采样器(所有资源,包括图像,.css 和 .js 文件),以便可以检索组合的响应时间。
- Sampler:采样器是 JMeter 的核心。它为组件提供模拟各种协议(如 HTTP,JDBC,FTP,SMTP 等)的请求,例如,HTTP 采样器允许你模拟 HTTP 数据包(GET,POST 或任何支持的方法)。支持主流协议,对于其他协议,你可以使用免费或商业插件。
- Config Element:配置元素可用于设置默认值和变量,供以后的采样器使用。请注意,这些元素通常在找到它们的范围的开始处处理,即在相同范围内的任何采样器之前处理。- CSV Dataset Config允许你提供测试数据,如用户名,登录方案- from a file的密码。- User Defined variables配置元素允许你定义可在整个测试计划中使用的变量,但每个线程都有自己的副本。
- Timer:默认情况下,JMeter 线程按顺序执行采样器而不暂停。此处介绍的组件提供了在采样器中以各种形式介绍- User Think Time的功能。一些例子是- Constant Timer, Constant Throughput Timer.
- Pre Processors:允许你在采样器执行之前执行操作/操作。使用 Apache Groovy 的- JSR223 Pre Processor(类似于 java 编码风格)允许你在发送之前对采样器进行更改。
- Post Processors:允许你在采样器执行后执行操作/操作。一些有用的例子是检索动态值,例如会话 ID,使用- Regular Expression Extractor后处理器用于任何类型的文本,- CSS/JQuery Extractor用于 HTML,- JSON Extractor用于 JSON,- XPath Extractor用于 XML。
- Assertions:顾名思义,你可以通过不同的方式断言采样器的响应,例如搜索某些文本,响应的大小以及接收响应的持续时间等。例如,你可以使用- Response Assertion搜索某些文本响应。如果 Assertion 失败,JMeter 会将应用 Assertion 的采样器标记为 Failure。
- 监听器:监听器允许你保存测试结果,查看测试执行等,例如,使用 View Results Tree,你可以看到采样器请求/响应以及 JMeter 是否标记为 PASS(绿色)/ FAIL(红色)。使用聚合报告,你可以将测试结果保存为 CSV 格式。重要的一点是,你在测试运行之前(用于测试脚本调试)或在测试运行之后(用于查看图形或摘要中的结果)而不是在运行期间使用侦听器。我们必须在测试期间删除监听器,因为它占用了大量的系统资源。因此,我们在非 GUI 模式下运行测试,并使用.csv/.jtl格式的-l选项保存结果。发布测试后,你可以将此保存的文件加载到 JMeter 中的任何侦听器中以查看图形/摘要。
以下是一般语法(you add any component on need basis):
Test Plan
    Thread Group
        Config Element
        Logic Controller
            Pre Processor
            Sampler
            Timer
            Post Processor
            Assertion
        Listener
参考文献: