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

繁華似錦Fighting發表於2021-05-23

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中計數器元件的使用方法。

相關文章