先看一下效果:
本文原創,歡迎轉發,但轉發請務必寫出處!
思路:利用2個if控制器(ifA和ifB)判斷允許執行的sampler組(采樣A組和采樣B組)
設置用戶定義變量2個(flagA=0,flagB=1;其中0表示執行,1表示不執行),分別給2個if控制器的做判斷條件。
ifA中的sampler組執行了N次之后,使用Beanshell的后置處理器將flagA=1,flagB=0;(采樣A組不在執行,采樣B組執行)
詳細說明:
配置1、線程組,記得勾選調度器,用持續時間控制整體測試周期
配置2、用戶自定義變量,定義flagA和flagB
一、A組
1、如果(if)控制器1
2、循環控制器1,循環5次,然后執行BeanShellPostProcessor
3、BeanShellPostProcessor腳本
vars.put("project01flag","1"); //讓A組停止執行
vars.put("project02flag","0"); //讓B組開始執行
二、B組
1、如果(if)控制器2
2、循環控制器2,循環8次,然后執行BeanShellPostProcessor
3、BeanShellPostProcessor腳本
vars.put("project02flag","1"); //讓B組停止執行
本文原創,歡迎轉發,但轉發請務必寫出處!
綜上所述:
已經可以控制線執行A組中的采樣組5次(實際測試中可以多放入幾個采樣器用於完成一個場景1),然后A組停止開始執行B組中的采樣組8次,盡管時間還沒有到30秒,但是此時控制A和控制B都停止執行(flagA=1,flagB=1),則此次Jmeter壓力測試也結束了。
這只一個思路的實現,並沒有經歷過真實的壓力測試,很有可能因為計數器導致無法產生壓力,如果有讀者經歷實踐發現本文章有漏洞請聯系作者,不甚感激。
