Module Controller
-
- Module Controller的目标
- 參數介紹
- 控制運作測試片段
-
-
- 建立測試片段
- 新增Module Controller
- 使用子產品控制器調用測試片段
-
- 引入目前測試計劃
- 引入另一個線程組的測試片段
子產品控制器(Module Controller)提供了一種在運作時将測試計劃片段替換為目前測試計劃的機制。
一個測試計劃片段由一個控制器和其中包含的所有測試元件(采樣器等)組成。該片段可以位于任何線程組中。如果該片段位于線程組中,則可以禁用其控制器,以防止該片段被子產品控制器運作(子產品控制器除外)。或者您可以将片段存儲在一個虛拟線程組中,并禁用整個線程組。
可以有多個片段,每個片段下面有不同系列的取樣器。隻需在下拉框中選擇适當的控制器,子產品控制器就可以很容易地在這些多個測試用例之間切換。這為快速且容易地運作許多替代測試計劃提供了便利。
子產品控制器使用的任何片段都必須有唯一的名稱,因為在重新加載測試計劃時,這個名稱用于查找目标控制器。出于這個原因,最好確定控制器名稱不是預設名稱,否則,當向測試計劃添加新元件時,可能會意外地建立一個重複名稱。
簡而言之:可以了解為引用、調用的意思。
Module Controller的目标
Module Controller的目标是向JMeter添加子產品化。一般的想法是,web應用程式由小的功能單元(即登入、建立帳戶、登出……)組成,這些功能單元由實作功能的請求組成。這些小的功能單元可以作為子產品存儲在SimpleControllers中,這些子產品可以快速連結在一起以形成測試。ModuleController通過充當指向工作台下面任何控制器的指針來促進這一點。控制器及其子元素将在運作時取代ModuleController。配置元素可以附加到ModuleController,以更改子產品的功能(哪個使用者登入了,建立了哪個帳戶,等等)。
參數介紹
屬性 | 描述 | 必填 |
---|---|---|
Name | 控制器名稱,可以根據實際情況進行設定 | 否 |
Comments | 注釋,描述在業務中的作用 | 否 |
Find target element | 快速查找元件并且跳轉到該元件界面 | 否 |
Module To Run | 選擇需要運作的控制器對象 | 是 |
控制運作測試片段
建立測試片段
建立兩個測試片段(測試片段是應用在控制器上的一個特殊線程組,與線程組處于同一層級,必須與Include Controller或子產品控制器一起使用才被執行),登入片段和注冊片段。
登入片段新增一個Simple Controller控制器,在該控制器下再新增兩個登入請求,一個登入失敗的請求和一個登入成功的請求;注冊片段也新增一個Simple Controller控制器,在該控制器下再新增兩個請求,一個注冊成功的請求和一個注冊失敗的請求,如下圖所示:
新增Module Controller
在測試計劃下添加一個線程組,并在該線程組下新增一個Module Controller和一個監聽器,如下圖所示:
使用子產品控制器調用測試片段
同一個線程組中,有多個測試片段,隻需通過子產品控制器下拉框中選擇适當的控制器,即可在這些多個測試用例之間輕松切換。但注意這些片段名稱必須唯一。
- 子產品控制器隻選擇登入操作,則隻運作登入操作的測試片段,如下圖所示:
運作結果如下所示:
- 子產品控制器隻選擇注冊操作,則隻運作注冊操作的測試片段,如下圖所示: 運作結果如下圖所示:
引入目前測試計劃
在測試計劃中添加一個線程組,并且設定循環3次,線上程組下添加一個Once Only Controller和一個Sample Controller,如下圖所示:
子產品控制器選擇Once Only Controller,那麼此時該控制器下的請求隻會請求2次,那麼為什麼不是3次呢?因為按照順序往下執行時,Once Only Controller執行了一次,由于該控制器隻會執行一次,然後到子產品控制器時又調用了一次,是以隻執行了2次。執行結果如下圖所示:
如果選擇Sample Controller,那麼該控制下會執行6次,運作結果如下圖所示:
如果把Sample控制器禁用,并且子產品控制器下選擇的Sample 控制器,那麼仍然會執行,如下圖所示:
引入另一個線程組的測試片段
添加兩個線程組,第一個線程組下的内容,線程組名稱為“線程組一”,與章節“引入目前測試計劃”一樣,另外一個線程組下添加子產品控制器,然後把“線程組一”禁用,此時仍然可以調用線程組一下的測試片段,如果子產品控制器選擇Sample Controller,運作結果如下所示: