1. 程式人生 > >Jmeter(三)——控制器(Logic Controller)

Jmeter(三)——控制器(Logic Controller)

  1. ForEach Controller(遍歷迴圈控制器)
    場景:http://jmeter.apache.org/demos中過濾出.jmx,並訪問
    正則表示式要用()括起來,如果沒有括號訪問不到請求。ForEach Controller迴圈控制器指令碼檔案




  2. Include Controller(包含控制器):用來打入外部測試片段,在執行時會匯入。但是匯入的測試片段不能包含執行緒組,只能包含簡單的控制元件及控制元件下的子元件
  3. Simple Controller(簡單控制器):用來指定一個執行單元,不改變元件的執行順序
  4. Runtime Controller(時間控制器):用來控制其子元件的執行時長
  5. Switch Controller(條件控制器):取樣器(Sample)中的請求預設從0開始標號,若條件控制器不指定,預設執行第一個請求(0標號)。執行條件可以填寫標號,也可以填寫請求名稱(嚴格匹配),若匹配不到則不執行。
  6. While Controller(while迴圈控制器):2個固定引數
    a.blank(空白,不填寫任何值):迴圈中最後一個請求失敗,則跳出迴圈
    b.last:迴圈中最後一個請求失敗,則跳出迴圈。或者迴圈之前有失敗則不進入迴圈

    例如:
    a.引數填寫:空白不填寫任何值,迴圈中有2個請求(第一個請求是正確的,第二個請求是錯誤的),執行一次就退出迴圈了

    b.引數填寫:空白不填寫任何值,迴圈中有2個請求(第一個請求是錯誤的,第二個請求是正確的),不會退出迴圈,除非手動停止

    c.引數填寫:last,同上面的blank情況(a、b)
    d.引數填寫:last,但是在迴圈之前有個錯誤的請求,不會進入到迴圈中執行

  7. Interleave Controller(交替控制器):交替執行請求
    例如:此控制下有3個請求(1、2、3),執行緒組迴圈次數設定為5次,則執行結果為1、2、3、1、2
  8. Once Only Controller(一次控制器):只執行一次,即使放在Loop controller中(迴圈此時設定為n次),也執行一次
  9. Throughput Controller(吞吐量控制器):
    當選擇為Total Exacutions模式:
    勾選Per user  執行次數為    執行緒數*迴圈次數 和 執行緒數* throughput值  取其中最小的
    不勾選Per user  執行次數為    執行緒數*throughput值 和 throughput值 取其中最小的
  10. Module Controller(模組控制器):通過模組控制器在當前測試計劃中引入新的測試片段
  11. Random Controller(隨機控制器):隨機執行請求,只執行一次請求
  12. Random Order Controller(隨機順序執行控制器):執行循序隨機,但是每個元件都會執行一遍
    例如 迴圈中有1、2、3、4個請求,執行緒組迴圈次數為2
    Random ControllerRandom Order Controller
    22、1、4、3
    44、3、1、2
  13. Loop Controller(迴圈控制器):如果執行緒組設定了迴圈次數,那麼下面的元件執行的次數為執行緒組迴圈數*迴圈控制器迴圈數
  14. Recording Controller (錄製控制器):顧名思義是錄製時候用到的,實際上他是一個位置,當用lmeter代理進行錄製時,錄製指令碼預設存放在此控制器下,實際沒有邏輯作用
  15. Transation Controller (事物控制器):把其節點下的執行器消耗時間加一起,如果事物控制器有多個取樣器,每個取樣器都執行成功,整個事物才算成功