Apache JMeterApache JMeter入门


备注

JMeter是一种用于性能测试的负载测试工具。 Performance Tester可以在Web浏览器中记录操作或手动构建脚本 ,然后可以与数百或数千个用户一起运行。

JMeter可用于使用其各种元素创建令人难以置信的动态用户和场景。例如, CSV Data Set Config可用于指定一组用户登录Web应用程序。 Regular Expression ExtractorCSS / JQuery提取器可用于保存将在未来请求中使用的会话ID。与Groovy语言耦合的JSR223 PreProcessor可用于为每个用户创建动态唯一数据,以作为POST主体的一部分发送。

版本

Java版本发布日期
3.2 Java 8+ 2017年4月14日
3.1 Java 7+ 二〇一六年十一月二十日
3.0 Java 7+ 2016年5月17日
2.13 Java 6+ 2015年3月13日
2.12 Java 6+ 二〇一四年十一月十日
2.11 Java 6+ 2014年1月5日
2.10 Java 6+ 2013年10月21日
2.9 Java 6+ 2013年1月28日
2.8 Java 5+ 2012年10月6日
2.7 Java 5+ 2012-05-27
2.6 Java 5+ 2012-02-01
2.5.1 Java 5+ 2011-10-03
2.5 Java 5+ 2011-08-17
2.4 Java 5+ 2010-07-12
2.3.4 Java 1.4+ 2009-06-21

安装或设置

  1. 下载Apache JMeter页面下载JMeter的 Binaries部分的分布式存档。

  2. 根据您下载的版本,检查最低Java版本要求并根据需要安装Java。确保已JAVA_HOME 环境变量并指向正确的版本。

  3. 在您选择的目录中提取分发存档。

  4. 打开JMeter UI:

    • 在Windows上 :导航到<jmeter_location>\bin 目录并运行jmeterw.batjmeter.bat

    • 在Linux / Mac上 :导航到<jmeter_location>/bin 目录并运行jmeter 或'jmeter.sh`。

      例如:

      cd /Users/me/apache-jmeter/bin
      ./jmeter 
       

      注意 :如果上述命令失败且Permission denied 错误,请在jmeter 文件上设置执行权限:

      cd /Users/me/apache-jmeter/bin
      chmod u+x ./jmeter
       

如果您能够看到JMeter UI,则基本设置成功。

JMETER_UI

高级Apache JMeter组件概述

Apache JMeter根据其功能将所有组件分为以下组:

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

参考文献:

  1. 测试计划和组件
  2. 执行订单
  3. 范围规则