• Jmeter-线程组执行顺序控制


    线程组按顺序来执行,大概思路,

    1.需要控制线程组内的操作在满足某一条件才执行,那么就需要使用if或者while;

    2.要使用if或者while都需要一个变量,而这个变量要在两个或多个线程组内使用,那么if使用变量就需要是全局变量,while使用的变量就需要是局部变量;

    (PS:在测试计划中有个选项“独立运行每个线程组”的选项勾选上,在线程组中设置延迟启动秒数也可达到效果,有个缺点每次都要修改线程组的启动、结束时间、不可控) 

    那么第一顺序执行线程组的配件,最少需要有2个BeanShell Sampler和一个If Controller;

    第二顺序以及之后顺序的线程组的配件,最少需要2个BeanShell Sampler、一个If Controller和一个While Controller;

    第一顺序执行线程组---------------------

    首先使用BeanShell Sampler给全局变量赋予初始值${__setProperty(newswitch,1,)};;

    然后使用If Controller作为操作的父类,条件为"${__P(newswitch,)}"=="1";

    最后使用BeanShell Sampler(父类线程组)给全局变量赋值${__setProperty(newswitch,2,)};,下一个顺序执行线程组的If  Controller条件;

    第二或N顺序执行线程组---------------------

    1.使用BeanShell Sampler(父类线程组),定义一个局部变量vars.put("whileswitch","1");

    2.使用While Controller作为If Controller的父类,条件为${__javaScript("${__P(whileswitch,)}"!="0")} ;

    3.使用If Controller作为操作的父类,条件为"${__P(newswitch,)}"=="2";(值根据第几个顺序而变化,第二个是2,第三个是3。。。)

    4.在If Controller下建立子类BeanShell Sampler给局部变量赋值vars.put("whileswitch","0");,结束While Controller;给全局变量赋值${__setProperty(newswitch,3,)};,下一个顺序执行线程组的If  Controller条件,如果没有下一个顺序执行线程组给全局变量赋予初始值${__setProperty(newswitch,1,)};。

     PS:这个方法有个缺点,结束最后一个线程有点慢

  • 相关阅读:
    国外高手又一力作,CAML Builder
    用word2007发布blog!!
    SharePoint Server 2007 trial 年末大餐细细品尝 (第八口)
    SharePoint Server 2007 trial 年末大餐细细品尝 (再来一口)
    SharePoint Server 2007 trial 年末大餐细细品尝 (第三口)
    SharePoint Server 2007 trial 年末大餐细细品尝 (第十口)
    卡壳了~~~
    SharePoint Server 2007 trial 年末大餐细细品尝 (第九口)
    moss 与 ad 用户信息不同步的问题。
    SharePoint Server 2007 trial 年末大餐细细品尝 (第六口)
  • 原文地址:https://www.cnblogs.com/yanzhe/p/7736083.html
Copyright © 2020-2023  润新知