jmeter的元件作用域与执行顺序

  最近在学习jmeter,其中元件比较多,要组合在一起才能发挥作用,这就涉及到作用域和执行顺序,网上查了一些资料,比较晦涩,作为小白的我也迷惑了好久

一.执行顺序

jmeter有如下组件:

  1.配置元件:提供数据给取样器

  2.前置处理器:为取样器做数据准备

  3.定时器:思考时间,两次请求之间要等待多久

  4.取样器:最常见的http请求

  5.后置处理器:处理服务器的返回数据,比如正则表达式提取器,可以提取出服务器返回的数据

  6.断言:判断请求是否正确,常用的是响应断言

  7.监听器:用来生成性能测试报告和调试

  上面每个组件只描述了大概的功能,像定时器也不一定是控制思考时间,如其中的固定吞吐量定时器,是用来控制对服务器的tps(每秒事务数),当然还有测试计划和线程组,测试计划就相当于我们程序的工程,只有一个,线程组相当于一组场景,一般情况也只有一个(当然可以多个)

  这些的的执行顺序和上面的编号一致1-7,但是要说明的是,执行顺序遵循中序遍历的法则,如

执行顺序为 配置元件1->定时器1->配置元件2->定时器2->取样器1->断言->监听器

由于取样器下面有配置元件和定时器,且优先级更高,所以要先执行他们,也许有人会问,那同一优先级的组件怎么办呢?按照从上到下的顺序

二.作用域

  说白了就是某个组件的管理范围,规则如下:

  控制器:子元件

  非控制器:父元件(当父元件为取样器时)+兄弟元件+子元件

如图:

其中的吞吐量控制器的作用域为 csv+http请求+聚合报告,上面的他都无权管理

聚合报告的作用域为 吞吐量控制器+csv+http请求

配置元件2的作用域为取样器1(父元件)+定时器2

    当有多个元件同时作用时(相当于同时有国家法律和地方法律),如两个http默认请求效果就会叠加,但是有的就会只听从作用域小元件(只服从地方法律),具体的可以自行百度。

    总之,最好按照执行顺序添加元件,当有多个相同的元件同时作用时,要注意这些元件是叠加效果还是其中一个元件。

原文地址:https://www.cnblogs.com/diwangguilai/p/8275731.html