jmeter中的邏輯控制器肯定採樣器的執行順序。右鍵線程組-->添加-->邏輯控制器。ui
簡單控制器對JMeter如何處理添加到其中的採樣器沒有影響。只是方便咱們作分組命名。線程
示例:3d
在如下計劃中,向第一個簡單控制器添加兩個請求:"加載商品搜索頁面"和「搜索商品A」,並將控制器命名「挑選商品」;向第二個簡單控制器添加另兩個請求:"加入購物車"和「支付」,並將控制器命名「支付操做」。運行結果能夠看到,簡單控制器不會對添加到其中的採樣器產生影響。blog
若是將採樣器或邏輯控制器添加到循環控制器,除了爲線程組指定的循環值以外,JMeter還將循環它們必定次數。例如,若是將一個HTTP請求添加到循環計數爲2的循環控制器,並將線程組循環次數設爲3,則JMeter將發送總共2 * 3 = 6個 HTTP請求。ci
示例:get
向線程組添加了一個登陸請求,並設置線程組循環次數爲1。並向循環控制器添加了另外一個充值請求。咱們將循環控制器配置爲循環次數爲5。it
jmeter按如下順序發送請求:登陸、充值、充值、充值、充值和充值io
僅一次控制器將始終在任何循環父控制器的第一次迭代期間執行 。class
1)若是放置在指定了屢次循環次數的循環控制器下,那麼僅一次控制器將僅在第一次迭代時經過循環控制器執行。登錄
2)若是置於一個線程組,不管線程組設置多少循環次數,只在第一次迭代期間執行,即只執行一次。
示例:
1)線程組中循環次數設置爲1,僅一次控制器放置在循環控制器下,向僅一次控制器添加一個登陸請求;向循環控制器添加另外一個充值請求,循環次數設置爲5
jmeter按如下順序發送請求:登陸、充值、充值、充值、充值和充值
2)僅一次控制器置於線程組下,向僅一次控制器添加一個登陸請求,向線程組添加另外一個充值請求,設置線程組循環次數爲5
若是將採樣器或邏輯控制器添加到交替控制器,則JMeter將在每一個其下的控制器之間交替進行每次循環迭代。
忽略子控制器塊及跨線程交替默認不選中,若選中,參見如下說明:
示例:
交替控制器置於線程組下,向線程組添加一個」加載商品搜索頁面「請求,線程組循環次數設爲4;向交替控制器添加兩個請求:「搜索A商品」、「搜索B商品」
隨機控制器的做用相似於交替控制器,不一樣在於它不是經過其子控制器和採樣器按順序排列,而是在隨機選取一個。
示例:
隨機控制器置於線程組下,向線程組添加一個」加載商品搜索頁面「請求,線程組循環次數設爲4;向隨機控制器添加兩個請求:「搜索A商品」、「搜索B商品」
運行以後,能夠看到跟交替控制器的區別,每次經過該隨機控制器下請求時隨機取。
隨機順序控制器相似簡單控制器,區別在於該控制器下的節點請求執行順序是隨機的。
示例:
向隨機順序控制器中添加如下4個HTTP請求,運行後,能夠看到該控制器下的4個HTTP請求順序是隨機的。
吞吐量控制器做用:控制用戶執行的頻率。
有兩種模式:
總執行次數(Total Executions): 設置運行次數
執行百分比(Percent Executions): 設置運行比例(1~100之間)
該控制器的其餘元素說明,見下:
示例:
1)將吞吐量控制器一、吞吐量控制器2置於線程組下,線程組循環次數設置爲5
2)吞吐量控制器1下選擇Total Executions,吞吐量設爲2;該控制器下的節點執行次數爲2
3)吞吐量控制器2下選擇Percent Executions,吞吐量設爲60;該控制器下的節點執行次數=60%*線程組循環次數5=3次
運行結果:
控制其子節點運行多長時間。控制器將運行其子項,直到超出配置的運行時間。runtime爲0時表示沒有運行。
示例:
Runtime Controller置於線程組下,線程組循環次數默認1,Runtime Controller的runtime設爲3s
只運行了3s中止了。