• 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,)};。

  • 相关阅读:
    一些牛逼的统计SQL
    一个有趣的 SQL 查询(查询7天连续登陆)
    Highcharts-3.0.6
    linux 下载并安装Memcache服务器端
    nginx + tomcat集群和动静资源分离
    C#中使用SendMessage在进程间传递数据的实例
    Wparam与Lparam的区别
    WPARAM和LPARAM的含义
    C# 使用SendMessage 函数
    在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)
  • 原文地址:https://www.cnblogs.com/kaola8023/p/8304666.html
Copyright © 2020-2023  润新知