03-Jmeter基本概念简介

简介: 03-Jmeter基本概念简介

1.从性能工具的原理划分

   1.1. Jmeter工具包含4部分

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

-------------------------------------------------------------------------------------------------------------------------

Test Plan(测试计划)

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

--------------------------------------------------------------------------------------------------------------------------

2. 测试元件

2.1. 线程组

  • setUp Thread Group:一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。
  • tearDown Thread Group:一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。
  • Thread Group:通常添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

2.2. 测试片段(Test Fragment)

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

2.3. 配置元件 (Config Element)

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

2.4. 定时器(Timer)

  • 定时器用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS I的手端。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer
  • 如果你不增加延时,Jmeter在短时间内发送多个请求时,可能会压垮服务器。

2.5. 前置处理器(Per Processors)

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

2.6. 后置处理器(Post Processors)

  • 用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据。

2.7. 断言(Assertions)

  • 断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致
  • 断言可以添加到任何一个Sampler中,它将作用于sampler范围内。如果希望断言只作用于单个sampler,可以在这个sampler中添加子元件断言。

2.8. 监听器(Listener)

  • 是用来对测试结果数据进行处理和可视化展示的一系列元件。图行结果、查看果树、聚合报告。都是我们经常用到的元件。注意:这个监听器可不是用来监听系统资源的元件。
  • 可以添加到测试中的任何一个地方。它们将从同等级或其下级元件中收集数据。

2.9. 取样器(Smapler)

  • 向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler,如 HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBCRequest Sampler等,每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。

2.10. 逻辑控制器(Logic Controller)

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

             

3. 元件作用域及执行顺序

3.1元件作用域

    作用域原则在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是:

  • 取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题。
  • 逻辑控制器(Logic Controller)元件只对其子节点中的取样器和逻辑控制器作用。
  • 除取样器和逻辑控制器元件外,其他6类元件,如果是某个取样器的子节点,则该元件对I其父子节点起作用。如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

3.2 元件执行顺序

  1. 配置元件(Config Elements)
  2. 前置处理器(Pro-processors)
  3. 定时器(Timers)
  4. 取样器(Sampler)
  5. 后置处理器(Post-processors)
  6. 断言(Assertions)
  7. 监听器(Listeners)

    注意:a)前置处理器、后置处理器和断言等元件功能对取样器作用。因此,如果在它们的作用域内没有任何取样器,则不会被执行;

     b)如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行。

相关文章
|
弹性计算 监控 数据安全/隐私保护
阿里云ECS云监控界面
阿里云ECS云监控界面
1324 2
|
SQL 安全 NoSQL
DMS产品常见问题之DMS提示校验失败如何解决
DMS(数据管理服务,Data Management Service)是阿里云提供的一种数据库管理和维护工具,它支持数据的查询、编辑、分析及安全管控;本汇总集中了DMS产品在实际使用中用户常遇到的问题及其相应的解答,目的是为使用者提供快速参考,帮助他们有效地解决在数据管理过程中所面临的挑战。
|
10月前
|
弹性计算 开发工具 Android开发
阿里云APP备案流程图以及备案所需材料整理,跟着教程一步步操作
阿里云APP备案流程分为六步,确保应用合法上架。首先登录阿里云账号填写APP信息,提交后等待阿里云初审。初审通过后进行工信部短信核验,随后由管局审核。审核通过后,APP即可获得备案号并正式上架分发平台。整个过程需仔细填写主办者及APP详细信息,确保所有资料准确无误。阿小云详细分享了这一流程,帮助开发者顺利完成备案。
|
Python
Python中限制输入数范围的技巧与实践
Python中限制输入数范围的技巧与实践
369 6
|
存储 运维 安全
导论|数据可信流通 从运维信任到技术信任
《数据二十条》提出建立数据可信流通体系,强调全流程合规与监管,确保数据来源合法、隐私保护和交易规范。数据已成为数字经济的关键要素,但面临身份确认、利益依赖、能力预期和行为后果的信任挑战。安全事件暴露了所有权保障和越权使用风险,外循环模式下责任主体不清、利益不一致等问题突显。为解决信任问题,需从运维信任转向技术信任,利用密码学和可信计算实现身份确认、利益对齐、能力预期和行为审计。关键技术包括可信数字身份验证、使用权跨域管控、安全分级测评和全链路审计。数据密态时代借助密码学保障数据全生命周期的安全可控,降低流通风险,实现广域数据的可信流通。基础设施如密态天空计算将支持这一转型。
317 0
|
SQL 开发框架 .NET
初识天猫精灵语音技能
初识天猫精灵语音技能
699 0
初识天猫精灵语音技能
|
SQL 关系型数据库 MySQL
数据库导入导出工具BatchTool介绍
本文将围绕 MySQL 以及 PolarDB-X 的数据离线导入导出场景来展开。首先,通过实验进行了生态工具 BatchTool 与传统 mysqldump 的性能对比,然后结合具体的实践场景来介绍 BatchTool 不同参数的使用方式。
|
监控 中间件 关系型数据库
MyCAT、ShardingSphere和Mocc这三个中间件的优缺点对比
MyCAT、ShardingSphere和Mocc这三个中间件的优缺点对比
1366 0
|
安全 物联网 数据安全/隐私保护