Jmeter工具组成部分

  • 资源生成器:用于生成测试过程中服务器、负载机的资源代码。(LR中的VuGen)
  • 用户运行器:通常是一个脚本运行引擎,根据脚本要求模拟指定的用户行为。(LR中的Controller)
  • 报表生成器:根据测试中实时地数据生成报表,提供可视化的数据显示方式。(LR中的Analysis)
  • 负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。(LR中Load Generators)

Test Plan(测试计划):用来描述一个性能测试,包含于本次性能测试所有相关的功能。也就是说性能测试的所有内容是基于一个计划的(相当于lr的一个测试场景)

Threads(Users)线程 用户

  • setup thread group

    一种特殊类型的ThreadGroup,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。类似LR的init()

  • teardown thread group

    一种特殊类型的ThreadGroup,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。类似于LR中的end()

  • thread group(线程组)

        这个就是我们通常添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。类似LR的action()

测试片段(Test Fragment)

        

  测试片段元素是控制器上的一个特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

以下是线程组的8类可执行元件

配置元件(Config Element)

  

  配置元件用于提供对静态数据配置的支持。如CSV Data Set config可以将本地数据文件形成数据池(Data Pool)

定时器(Timer)

       

  定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里面的“思考时间”。Jmeter定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

前置处理器(Per Processors)

       

  用于在实际的请求发出去之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复则可以实现URL重写,当URL中有sessionID一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID

后置处理器(Post Processors)

       

  用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似于LoadRunner测试工具中的关联概念)

断言(Assertions)

       

  断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致

监听器(Listener)

       

  是用来对测试结果数据进行处理和可视化展示的一系列元件。图形结果、查看结果树、聚合报告。都是我们经常用到的元件。注意:这个监听器可不是用来监听系统资源的元件。

  JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些元件来驱动处理一个测试

取样器(sample)

  

  取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter原生支持多种不同的sample,如Http Request Sampler、FTP Request  Sample、TCP  Request Sample、JDBC Request Sampler等,每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。

逻辑控制器

  

  逻辑控制器,包括两类元件,一类是用于控制test plan中sampler节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器、switch Controller、Runtime Controller、循环控制器等。另一类是用来组织可控制sampler节点的,如事务控制器、吞吐量控制器。

最新文章

  1. Mac OSX:Powerline风格的zsh配置
  2. Lambda表达式入门
  3. UEditor编辑器并不难
  4. Linux 运行 apt-get install 就出现jdk installer 错误的解决方法
  5. 【svn】一个设置,少写几个字
  6. oracle linux 下卸载
  7. gSoap的 “error LNK2001: 无法解析的外部符号 _namespaces”解决方法
  8. POJ2486 - Apple Tree(树形DP)
  9. android获取根视图
  10. BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )
  11. js Web存储方式
  12. 用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)
  13. Python paramik
  14. 用 VSCode 编写 python
  15. 024 SpringMvc的异常处理
  16. sqli-labs(八)——修改密码处sql注入+http头sql注入
  17. 【原创】字典攻击教务处(BurpSuite使用)
  18. TNTSearch 轻量级全文索引 + 中文分词
  19. Mysql 优化,慢查询
  20. Eclipse中的工程引入jar包后没有整合到一个文件夹而是全部在根目录下显示

热门文章

  1. ModelSim Simulation of RapidIO II IP Core Demonstration Testbench May Require ld_debug Command
  2. MySQL数据库简介
  3. Java50道经典习题-程序38 求字符串长度
  4. HTML5与CSS3基础教程(第7版) 高清PDF扫描版​
  5. MongoDB 分片2
  6. Openwrt单独编译某一个模块而不是整个固件
  7. SourceTree——MAC OSX下的Git GUI客户端
  8. CSS之引入样式
  9. macOS 10.12.1 + Xcode 8.1 安装cocoapods 1.1.1
  10. Codeforces Round #549 div2 1143-B Nirvana 题解