zoukankan      html  css  js  c++  java
  • jmeter系列三(控制器controller)

    前面两篇很基础的讲解了下jmeter的界面流程和engine相关(随着深入分析可能将来还会有说补充),今天开始jmeter的核心元素testelement

    第一篇介绍的是controller

    在jmeter中每个testelement元素都对应着他的gui,controller也不例外,可以定位到包org.apache.jmeter.control和org.apache.jmeter.control.gui

    包下面的类全部都是有关于controller这个元素

    可以看到control包下面controller接口

    public interface Controller extends TestElement {
    
        Sampler next();
    
        boolean isDone();
    
        void addIterationListener(LoopIterationListener listener);
    
        void initialize();
    
        void removeIterationListener(LoopIterationListener iterationListener);
    
        void triggerEndOfLoop();
    }

    可以看到接口相关方法,如果想知道实现了该接口的类是如何运作的,就要清楚这些方法什么时候被谁如何调用了,下面我们开始一个一个方法慢慢研究(我也在探索)

    在上篇我们讲的engine中JMeterThread类会涉及到了controller,我们可以暂且去看下,可以定位到JMeterThread类中run(线程必须实现的方法)

    再分析GenericController,其中有个属性subControllersAndSamplers,addTestElement方法来添加,该方法将会在TestCompiler中被调用,

    在JMeterThread的方法initRun中可以看到(testTree.traverse(compiler)),他会搜集controller的子sampler和子controller,

    类中实现Controller的基本功能

    initialize:初始化Controller以及子Controller

    next:获得该Controller下的Sampler或者子Controller的Sampler

    triggerEndOfLoop:重置该Controller

  • 相关阅读:
    django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
    orm练习题
    url的匹配问题
    集成抽象类后出现的问题
    迅为IMX6Q开发板上移植mplayer
    迅为i.MX6ULL开发板原理图分析介绍
    性价比高又能较好的学习嵌入式ARM+Linux的开发板
    适合初学者的linux开发板
    IMX6ULL开发板
    i.MX6ULL开发板终结者资料介绍
  • 原文地址:https://www.cnblogs.com/liliqiang/p/4199442.html
Copyright © 2011-2022 走看看