• jmeter随笔(1)--jmeter作用域的问题


    要实现jmeter每隔一段时间跑一次线程组中的所有用例,应该用定时器,但是定时器要放在什么地方呢?首先看看是什么试的吧

    1.想让线程组中的用例不停的跑,当然要让它循环次数“永远”

    2.然后我想,要让线程组中每条用例都跑一遍再进行等待,定时器当然要放在线程组下面嘛,哈哈,结果我就这么设置了:

     

    3.跑出来的结果让我傻眼,居然是跑一条用例执行一次定时器,再跑一条用例再执行一次定时器,和我想要的不一样啊

    4.怎么办,开发叔叔过来一看,定时器加在了最前面一条用例下面,问题解决

    5.现在知道了,原来是各种元素的执行顺序和作用域搞错了,那么这里面的规律是怎么样的呢,查看了官方文档后,答案终于揭晓了

    6.官方文档一上来就告诉了我们各个元素的执行顺序

    0.配置元件>1.前置处理器>2.定时器>3.sampler>4.后置处理器>5.断言>6.监听器

    jmeter是树形结构,执行顺序是从上往下的,然后按照各个元素的执行顺序进行每一步操作

    那么每个元素的作用域又是怎样的呢?官网直接给了个例子:

    在这个图中,有用例,定时器和断言

    每一条用例的执行顺序是按照从上到下执行的,(one,two,three,four,five代表了他们的执行顺序)

    看看Timer #1的作用域,发现Timer #1和two、three、four有同一个父节点,所以Timer #1可以控制这三条用例

    同理,Timer #2的父节点为线程组,所以它控制了全部的5条用例

    同理,Assertion #1只对Three进行断言

    结合元素的执行顺序和作用域后,得出完整的执行步骤

    Timer #2→one→Timer #2→Timer #1→two→Timer #2→Timer #1→three→Timer #2→Timer #1→four→Timer #2→five→Assertion #1

    7.回到我们最初的问题上来,现在不难理解了,为什么我把定时器放在线程组下面,我的每条用例都要受到定时器的控制了

    而在第一条用例下面加定时器,会先执行定时器,再执行我所有的用例,再执行定时器,再执行所有用例,问题解决。

    备注:之前还分享了一篇文章,专门写的作用域的执行循序,可以结合起来一起学习《JMeter学习(三)元件的作用域与执行顺序》

  • 相关阅读:
    Java中的几种常用循环 for switch while dowhile
    HTML的各种基本标签
    2017年终总结
    HTML C# ajax结合ashx处理程序实现文件上传
    HTML div鼠标悬停控制子控件显示与隐藏
    HTML 使用CSS 如何去掉文本聚焦框
    HTML input 文本框如何添加提示信息
    CSS 如何通过top left 定位控制div在另一个div的位置
    CSS background 属性
    php支付接口开发-支付宝-开发前期准备
  • 原文地址:https://www.cnblogs.com/diqitian/p/6014870.html
Copyright © 2020-2023  润新知