『動善時』JMeter基礎 — 18、JMeter配置元件【計數器】

1、計數器介紹

如果需要引用的數據量較大,且要求不能重複或者需要自增,那麼可以使用計數器組件來實現。

計數器組件中的數據,允許在一個執行緒組之內都可以被引用。

2、計數器介面詳解

添加計數器組件的操作:選中「執行緒組」右鍵 —> 添加 —> 配置元件 —> 計數器。

計數器介面如下:

image

計數器組件的詳細說明:

  • 名稱:計數器組件的自定義名稱,見名知意最好。
  • 注釋:即添加一些備註資訊,對該計數器組件的簡短說明,以便後期回顧時查看。
  • Starting value:給定計數器的起始值、初始值,long整型,默認是0。
  • 遞增:每次迭代後,給計數器增加的值。默認是0,表示不增加。
  • Maximum value:計數器的最大值。如果超過最大值,計數器會被重新設置為初始值(Starting value),默認的最大值為Long.MAX_VALUE,2^63-1,包含此值。如果持續壓測,建議最好不要設置最大值。
  • Number format:數字格式,比如設置為000,會格式化為001,002。默認格式為Long.toString(),但是默認格式下,還是可以當作數字使用。
  • 引用名稱:用於控制在其它元素中引用該值,形式:${username}。也就是計數器值的引用名稱。
  • 與每用戶獨立的跟蹤計數器:也就是說,指定該計數器是全局的計數器,還每個用戶擁有自己獨立的計數器。
    如果不勾選,即為全局的計數器,比如執行緒組#1 獲取值為1,執行緒組#2獲取值為2,也就是所有的執行緒組使用一個計數器。
    如果勾選,則為獨立計數器,每個執行緒組單獨計數,比如執行緒組#1 獲取值為1,執行緒組#2獲取值還是為1。
  • Reset counter on each Thread Group Iteration:在每個執行緒組迭代上重置計數器,僅勾選與每用戶獨立的跟蹤計數器時可用。如果勾選了,每次執行緒組迭代,都會重置計數器的值。當執行緒組是在一個循環控制器內時比較有用。

3、計數器的使用

(1)測試計劃內包含的元件

添加元件操作步驟:

  1. 創建測試計劃。
  2. 創建執行緒組:選中「測試計劃」右鍵 —> 添加 —> 執行緒(用戶) —> 執行緒組。
  3. 在執行緒組中添加配置元件"計數器"組件:選中「執行緒組」右鍵 —> 添加 —> 配置元件 —> 計數器。
  4. 在執行緒組裡面添加取樣器「HTTP請求」組件:選中「執行緒組」右鍵 —> 添加 —> 取樣器 —> HTTP請求。
  5. 在執行緒組裡面添加監聽器「察看結果樹」組件:查看結果,選中「執行緒組」右鍵 —> 添加 —> 監聽器 —> 察看結果樹。

最終測試計劃中的元件如下:

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。

提示:如果有多個執行緒組,需要使用同一個計數器組件,就把計數器組件提到和執行緒組同一級。

(2)執行緒組介面內容

我們定義循環次數為3,也就是進行3次該請求。(可以修改執行緒數)

image

(3)計數器介面內容

計數器介面中,我們定義起始值為1,然後每次遞增5個數,計數器的最大值為999,輸出格式為000。

計數器變數的引用名稱為counterName,之後我們使用${counterName}的方式,就能夠引用該值了。

如下圖所示:

image

(4)HTTP請求介面內容

我們在HTTP請求介面中可以引用計數器的值,可以寫在任何可輸入的位置。

如下圖所示:

image

(5)查看結果

我們可以看到下圖中,從001開始,每次遞增5個數,都在請求中顯示了。

證明計數器成功的生成了我們所需要的數值。

image

以上就是JMeter中計數器組件的使用方法。