jmeter 线程执行顺序_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,)};。
總結
以上是生活随笔為你收集整理的jmeter 线程执行顺序_Jmeter-线程组执行顺序控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习auc_机器学习集成学习与模型融
- 下一篇: 终止线程的方法