jmeter如何并行执行多个线程组?
需要控制线程组内的操作在满足某一条件才执行,那么就需要使用if或者while;
要使用if或者while都需要一个变量,而这个变量要在两个或多个线程组内使用,那么if使用变量就需要是全局变量,while使用的变量就需要是局部变量;
同一个线程组的请求是按照顺序执行,不同线程组顺序不固定,想让线程组允许执行,需要勾选一个选项。
第一顺序执行线程组---------------------
首先使用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,)};。