您的位置:首页 > 其它

Jmeter元件、执行顺序、作用域

2020-03-28 20:10 99 查看

Jmeter元件

不可执行元件

  1. 测试计划:根节点,用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本的性能测试的所有内容是于基于一个计划的。
  2. 线程组
  • setup thread group 

一种特殊类型的ThreadGroup,用于在执行常规线程组之前执行一些必要的操作。在“setup thread group”下提到的线程行为与普通线程组完全相同。不同的是执行顺序---它会在普通线程组执行之前被触发。

应用场景举例:

A、测试数据库操作功能时,用于执行打开数据库连接的操作。

B、测试用户购物功能时,用于执行用户的注册、登录等操作。

  • teardown thread group

一种特殊类型的ThreadGroup,用于在执行常规线程组完成后执行一些必要的操作。在“teardown thread group”下提到的线程行为与普通线程组完全相同。不同的是执行顺序---它会在普通线程组执行之后被触发。

应用场景举例:

A、测试数据库操作功能时,用于执行关闭数据库连接的操作。

B、测试用户购物功能时,用于执行用户的退出等操作。

默认情况下,如果测试按预期完成,则TearDown线程组将不会运行。如果你想要运行它,则需要从Test Plan界面中选中复选框“Run tearDown Thread Groups after shutdown of main threads”。

  • thread group

这个就是我们通常使用的线程。通俗的讲,一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每个线程之间都是隔离的,互不影响的。一个线程的执行过程中,操作的变量,不会影响其他线程的变量值。

     3.测试片段

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

可执行元件(按执行顺序)

  • 配置元件

配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制元件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的cookie 进行管理)

  • 前置处理器

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

  • 定时器

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

  • 取样器

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

  • 后置处理器

用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath  Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据。

  • 断言

用于检查测试中得到的响应数据是否符合预期。断言一般用来设置检查点,验证测试过程中的数据交互是否与预期一致。

  • 监听器

用来对测试结果数据进行处理和可视化展示的一系列元件。例如, 图行结果、查看结果树、聚合报告。

  • 逻辑控制器

逻辑控制器的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。分为两类元件:一类用于控制Test Plan中Sampler节点发送请求的逻辑顺序控制器,常用的有 如果(If)控制器、Swirch Controller、Runtime Controller、循环控制器等。另一类用来对Test Plan中的脚本进行分组,方便Jmeter统计执行结果以及脚本运行时的控制。如事务控制器、吞吐量控制器等。

执行顺序

  1. 配置元件
  2. 前置处理器
  3. 定时器
  4. 取样器
  5. 后置处理器
  6. 断言
  7. 监听器

需注意事项:

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

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

作用域

 Sampler不与其他元件交互,因此不存在作用域的问题,Controller只对其子节点的采样器和逻辑控制器其作用;除了Sampler和Controller,其他6类如果在Sampler子节点,则只对该Sampler和该Sampler子节点起作用;如果其他6类的父节点不是采样器,则他们的作用域是父节点下所有子节点包括子子节点。

 

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dabimengla 发布了4 篇原创文章 · 获赞 0 · 访问量 112 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: