JMeter之Throughput Controller詳解(實驗)

Throughput Contoller,直譯是吞吐量控制器,它是用來控制該控制器下面元件的執行次數,與控制吞吐量的功能無關。(注:用Constant Throughput Timer能夠控制吞吐量。)測試

Throughput Contoller有兩種模式:Total ExecutionsPercent Executionsspa

參數說明以下:線程

  • Total Executions:按吞吐量值來指定執行次數。選擇此模式,吞吐量值的單位爲「次」。
  •  Percent Executions:按百分比來指定執行次數。選擇此模式,吞吐量值的單位爲「%」。
  • 吞吐量:該值能夠是任意整數,若是小於等於0,則一次也不執行。
  • Per User:若是勾選該項則按虛擬用戶數(線程數)來計算執行次數,若是沒有選中該項則按全部虛擬用戶數來計算執行次數。

那麼如何計算Throughput Controller其下的執行次數?blog

下面添加循環控制器,在Throughput Controller下添加Debug Sampler元件來作實驗:ci

實驗一:測試按Percent Executions模式執行次數io

TestCase1:線程數3,線程循環次數2,循環控制器循環次數2,吞吐量值50%,勾選Per Usertable

測試結果:查看「聚合報告」裏Debug Sampler執行次數,Debug Sampler=6,即執行了6次,如圖:循環

TestCase2:線程數3,線程循環次數2,循環控制器循環次數2,吞吐量值50%,不勾選Per Userbug

測試結果,查看「聚合報告」裏Debug Sampler執行次數,Debug Sampler=6,即執行了6次,如圖:im

 

TestCase1與TestCase2測試結果對比表:

線程數

線程組循環次數

控制器循環次數

模式

吞吐量值

Per User

執行次數

3

2

2

Percent Executions

50

勾選

6

3

2

2

Percent Executions

50

不勾選

6

由此,得出結論:

不管Per User是否勾選,按Percent Executions模式的執行次數都不受Per User影響,Percent Executions模式的執行次數=線程數*循環次數*吞吐量%。

PS:循環次數=線程組循環次數*循環控制器循環次數。

 

實驗二:測試按Total Executions模式執行次數

 一樣,按照實驗一的初始條件不變:線程數3,線程循環次數2,循環控制器循環次數2,而後改變吞吐量值和是否勾選Per User來作實驗。

測試的實驗結果以下表:

線程數

線程組循環次數

控制器循環次數

模式

吞吐量值

Per User

執行次數

3

2

2

Total Executions

13

勾選

12

3

2

2

Total Executions

13

不勾選

12

3

2

2

Total Executions

12

勾選

12

3

2

2

Total Executions

12

不勾選

12

3

2

2

Total Executions

11

勾選

12

3

2

2

Total Executions

11

不勾選

11

3

2

2

Total Executions

10

勾選

12

3

2

2

Total Executions

10

不勾選

10

3

2

2

Total Executions

5

勾選

12

3

2

2

Total Executions

5

不勾選

5

3

2

2

Total Executions

4

勾選

12

3

2

2

Total Executions

4

不勾選

4

3

2

2

Total Executions

3

勾選

9

3

2

2

Total Executions

3

不勾選

3

3

2

2

Total Executions

2

勾選

6

3

2

2

Total Executions

2

不勾選

2

 分析數據,得出結論:

  • 當勾選Per User時:
  1. 線程數*循環次數>=線程數*吞吐量時,Total Executions模式的執行次數=線程數*吞吐量。
  2. 當線程數*循環次數<線程數*吞吐量時,Total Executions模式的執行次數=當線程數*循環次數。
  • 當不勾選Per User時:
  1. 線程數*循環次數<=吞吐量時,Total Executions模式的執行次數=線程數*循環次數。
  2. 當線程數*循環次數>吞吐量時,Total Executions模式的執行次數=吞吐量。
相關文章
相關標籤/搜索