目录
1、JMeter组件执行顺序
-
配置元件 -> 前置处理器 -> 定时器 -> 取样器 -> 后置处理器 -> 断言 -> 监听器
- 配置元件比前置处理器先运行
- 可以通过先在配置元件中定义一个变量,然后前置处理器引用这个变量来验证
-
也可以通过两边都定义同一个变量,然后,通过查看变量的值来验证【最后那个值在哪里定义的,表示后运行,因为它把原来的那个覆盖了呗】
- 查看变量方法很多:
- 调试处理器
-
java请求
-
beanshell方式
-
JSR方式
-
还能直接发个请求,请求名称带变量
-
配置元件只执行一次
- 查看变量方法很多:
-
定时器比取样器先执行
- 比如设置了定时器后,取样器要延迟那么多时间再执行,这样其实就能看出来咯
-
还有如果有多个定时器,那么这些定时器都会被执行,叠加咯
-
后置处理器比取样器后执行
- 好理解撒,比如你要取响应数据里面的token的值,那肯定要先运行了请求,才有响应数据撒,后置处理器才去取得到【比如json提取器、正则表达式提取器】;如果请求后面才运行,你这个后置处理器去哪里提取数据?
-
后置处理器和断言?
- 断言可以用到我们后置处理器的变量,所以肯定在后置处理器之后咯
-
断言和监听器
- 监听器,比如查看结果树,它可以看到断言失败,是不!
- 所以肯定是先有了断言结果,才会在监听器反映出来
- 配置元件比前置处理器先运行
2、同类型的元件执行顺序
-
谁在前面谁先执行
-
按先后顺序依次执行的,或者说这个就是广度优先策略
-
注意,不要与线程组之间抢占资源搞混淆了
- 那个是不同的线程组之间
-
这里说的是在同一个线程组内
-
比如:【每次不会变】
3、深入理解顺序执行
-
其实JMeter的核心是啥?
- 说白了,就是取样器,请求!
-
那么配置元件、前置处理器、定时器这些都是先为取样器提供服务的
- 比如一些变量,一些环境等
-
所以在取样器之前执行
-
- 比如一些变量,一些环境等
-
其他的如后置处理器、断言、监听器这些都是为取样器的结果做分析的
- 主要做些结果提取、结果分析、结果查看等
-
所以在取样器之后执行
-
- 主要做些结果提取、结果分析、结果查看等