Jmeter學習總結【控制器】

JMeter有兩種控制器:採樣器和邏輯控制器。這些驅動測試的處理。html

採樣器告訴JMeter發送請求到服務器。例如,若是你想要JMeter發送http請求添加一個HTTP請求取樣器。您還能夠經過向採樣器中添加一個或多個配置元素來定製請求。更多信息,參見:採樣器。web

邏輯控制器讓你自定義JMeter決定要發送請求時用什麼樣的邏輯。例如,您能夠在兩個HTTP請求採樣器之間添加交錯邏輯控制器apache

 

一、邏輯控制器(Logic Controllers)

邏輯控制器讓您自定義JMeter決定要發送請求時的邏輯。邏輯控制器能夠改變來自子元素的請求順序。他們能夠本身修改請求,致使JMeter重複請求,等等。後端

要了解邏輯控制器對測試計劃的影響,請考慮如下測試樹:服務器

  • 測試計劃
    • 線程組
    • 僅一次控制器
    • 加載搜索頁面(HTTP採樣器)
    • 交替控制器
      • 搜索「A」(HTTP取樣器)
      • 搜索「B」(HTTP取樣器)
      • HTTP請求默認值(配置元件)
    • HTTP默認請求(配置元件)
    • Cookie管理器(配置元件)
    • 登陸後,下一個採樣器加載搜索頁面(想象一個用戶登陸的web應用程序,而後進入搜索頁面進行搜索)。這只是一個簡單的請求,沒有通過任何邏輯控制器的過濾。cookie

      加載搜索頁面後,咱們要進行搜索。實際上,咱們想作兩種不一樣的搜索。可是,咱們但願在每次搜索之間從新加載搜索頁面自己。咱們能夠經過4個簡單的HTTP請求元素(加載搜索、搜索「A」、加載搜索、搜索「B」)來實現這一點。相反,咱們使用Interleave Controller控制器每次經過測試傳遞一個子請求。它保持了排序(即它不會隨機地傳遞一個,而是「記住」它的子元素的位置)。插入兩個子請求可能會被過分使用,可是可能會有8個或20個子請求。測試

    • 注意,HTTP Request Defaults屬於Interleave Controller。假設「Search A」和「Search B」共享相同的路徑信息(HTTP請求規範包括域、端口、方法、協議、路徑和參數,以及其餘可選項)。這是有意義的——二者都是搜索請求,命中相同的後端搜索引擎(好比servlet或cgil - script)。咱們能夠將這些信息抽象爲單個配置元素,而不是在路徑字段中使用相同的信息配置兩個HTTP Samplers。當Interleave控制器「傳遞」來自「Search A」或「Search B」的請求時,它將從HTTP默認請求配置元素的值中填充空白。所以,咱們將這些請求的路徑字段留空,並將這些信息放入配置元素中。在這種狀況下,這充其量只是一個小的好處,但它展現了這個特性。ui

      樹中的下一個元素是另外一個HTTP默認請求,這個時間添加到線程組自己。線程組有一個內置的邏輯控制器,所以,它使用這個配置元素,就像上面描述的那樣。它填入通過的任何請求的空格。在web測試中,將全部HTTP Sampler元素中的域字段保留爲空是很是有用的,相反,將這些信息放入HTTP默認請求元素中,添加到線程組中。經過這樣作,您能夠經過改變測試計劃中的一個字段來測試您在不一樣服務器上的應用程序。不然,你必須編輯每個採樣器。搜索引擎

      最後一個元素是HTTP Cookie管理器。全部web測試都應該添加一個Cookie管理器——不然JMeter將忽略Cookie。經過在線程組級別添加它,咱們確保全部HTTP請求將共享相同的cookie。spa

      邏輯控制器可組合實現各類結果。請參閱內置邏輯控制器列表( built-in Logic Controllers.)。

測試片斷(Test Fragments)

        測試片斷元素是一種特殊類型的控制器,它存在於與線程組元素相同級別的測試計劃樹中。它與線程組不一樣,由於它沒有被執行,除非由 模塊控制器 或 包含控制器 引用。

相關文章
相關標籤/搜索