jmeter之邏輯控制器
測試片段(Test Fragment)
測試片段是在2.5版本之后新加的一個選項。
測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處于一個層級。它與線程組有所不同,因為它不被執行,除非它是一個模塊控制器或者是被控制器所引用時才會被執行。
ForEach控制器
ForEach控制器在用戶自定義變量中讀取一系列相關的變量。該控制器下的采樣器或控制器都會被執行一次或多次,每次讀取不同的變量值。所以ForEach總是和User Defined Variables一起使用。下面會以實例的形式介紹它的用法。
控制面板
Name:控制器名稱
Comments:備注
Input Variable Prefix:輸入變量前綴
Output variable name:輸出變量名稱
Add”_”before number:輸入變量名稱中是否使用“_”進行間隔。
示例
該示例中在ForEach控制器中添加了一個HTTp請求(登錄頁面),需要輸入用戶名,密碼。我們這里把用戶名作為變量在用戶自定義變量中設置。
這樣執行測試計劃時,ForEach控制器會遍歷User Parameter查找符合設置條件的變量名,這里就是”Name”+”_”+”循環次數”。查到符合的變量后就把值賦給輸出變量(Vname)。然后就可以在ForEach控制器下的采樣器或控制器中使用了,使用的格式是${輸出變量名}。
運行測試計劃,在“察看結果樹”中就可以看到,每次請求使用了不同的參數。
Include Controller包含控制器
包含控制器用于使用外部的Jmx文件。為了演示使用它,可以添加一個simple controller,然后在其中添加一個采樣器(sample),比如一個http請求。然后把這個simple controller保存為一個jmx文件。這樣在include controller中設置該jmx文件就可以在測試計劃中使用了。值得注意的是,包含測試的測試計劃中不能有線程組,僅僅只能有simple controller,然后其下可以添加任何采樣器,控制器。
如果用戶需要使用cookie manage或者 用戶自定義變量,都應該在頂層的測試計劃中設置,不應該包含在外部文件中,否則不會它們不會起作用。
This element does not support variables/functions in the filename field.
However, if the propertyincludecontrolle
如果在prefix+filename的路徑中找不到文件,控制器會嘗試在JMX存放目錄中根據文件名進行查找。
控制面板
參數
Attribute | Description | Required |
Filename | 包含的文件 | Yes |
Switch控制器
Switch控制器通過給該控制器中的Value賦值,來指定運行哪個采樣器。有兩種賦值方式:
1.第一種是數值,Switch控制器下的子節點從0開始計數,通過指定子節點所在的數值來確定執行哪個元素。
2.第二種是直接指定子元素的名稱,比如采樣器的Name來進行匹配。當指定的名稱不存在時,不執行任何元素。
當Value為空時,默認執行第1個子節點元素。
控制面板
Name:控制器名稱
Switch Value:指定需要運行的子元素的名稱或所處的數值。
示例
線程組的各參數都設置為1,switch value中設置“Login.aspx”,運行測試計劃,在“view results tree”中查看結果
僅僅執行了Name為“Login.aspx”的Http請求。
事務控制器
對于Jmeter2.3以上的版本,有兩種模式的操作
•
•
生成的事務采樣器的測量的時間包括其下采樣器以及其他的一切時間。由于時鐘頻率的問題,這個時間可能略大于單個采樣器的時間之和。時鐘開始時間介于控制器記錄開始時間與第一個采樣器開始之間,時鐘結束時間亦然。
事務采樣器只有在其子采樣器都成功的情況下才顯示成功。
在父模式下,事務控制器下的各個采樣器只有在the Tree View Listener里才能看到。同時,子采樣器的數據也不會在CSV文件中顯示,但是在XML文件中可以看到。
控制面板
參數
Attribute | Description | Required |
Name | 事務控制器的名稱 | Yes |
Generate Parent Sample | 如果點中,事務采樣器作為其下采樣器的父采樣器,否則,作為額外采樣器添加在子采樣器的后面。 | Yes |
示例
其中線程組中設置1個Users,1 Loop。
1.Generate Parent Sample不選中情況下,Aggregate Report顯示為
其中事務采樣器采集的數據排在子采樣器數據之后,同時各列數據略大于子采樣器數據之和。
2.Generate Parent Sample選中情況下,Aggregate Report顯示為
其中僅顯示事務采樣器采集的數據,而不會顯示子采樣器采集的數據。

僅一次控制器,這個控制器可以保證線程在多次循環跑得情況下只登陸一次



循環控制器,則該控制器下面的請求可以循環執行



JMeter可能會隨機選取某一個請求(使用隨機控制器)


posted on 2014-02-27 11:31 順其自然EVO 閱讀(3467) 評論(0) 編輯 收藏 所屬分類: jmeter