zoukankan      html  css  js  c++  java
  • 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:这个方法有个缺点,结束最后一个线程有点慢

  • 相关阅读:
    Halcon学习笔记之缺陷检测(二)
    tensorflow常用函数库
    luogu P2765 魔术球问题 (最小路径覆盖)
    luogu P2423 [HEOI2012]朋友圈 (最大团)
    poj 2226 Muddy Fields (二分图)
    匈牙利算法板子
    二分图
    AC日记——【模板】树链剖分 洛谷 P3384
    AC日记——[ZJOI2008]树的统计Count bzoj 1036
    去重排序
  • 原文地址:https://www.cnblogs.com/yanzhe/p/7736083.html
Copyright © 2011-2022 走看看