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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM