1. 程式人生 > >JMeter學習筆記--詳解JMeter配置元件

JMeter學習筆記--詳解JMeter配置元件

JMeter配置元件可以用來初始化預設值和變數,以便後續取樣器使用。將在其作用域的初始化階段處理。

  • CSV Data Set Config:被用來從檔案中讀取資料,並將它們拆分後儲存到變數中,適合處理眾多變數
    • Variable Names:變數名列表(逗號分隔)。JMeter2.3.4以後的版本,支援CSV標題行,如果變數名為空,那麼檔案的第一行將被讀取,並被解釋為列名的列表。這些變數名必須使用分割符加以區分,他們可以使用雙引號加以引用。預設情況下,該檔案僅開啟一次,而每個執行緒會使用檔案中不同的資料行。至於資料行傳遞給執行緒的順序,依賴於他們執行的順序,資料行在每次測試迴圈的開始階段讀取,檔名和模式在第一次迴圈時解析。
    • Delimiter:預設逗號
    • Allow quoted data?: CSV檔案是否容許值被引用
    • Recycle on EOF?: 達到檔案結尾後,是否從檔案開始迴圈重新讀取(預設True),當到達檔案尾時,且Recycle選項設定為True,就會從檔案第一行重新開始讀取,如果設定為false,而Stop thread on EOF?是False,那麼當到達檔案尾部時所有變數都將被置為<EOF>,可以通過設定JMeter屬性csvdataset.eofstring來改變該值。如果Recycle選項為false,而Stop thread是True,那麼到達檔案尾部之後,將導致執行緒被終止。
    • Stop thread on EOF?:達到檔案結尾後,執行緒是否該終止。
    • Sharing mode:如果希望每個執行緒擁有自己獨立的值集合,那麼就需要建立一系列資料檔案,為每個執行緒準備一個數據檔案,如test1.csv、test2.csv等,使用檔名test${__threadNum}.csv,並將“sharing mode"設定為"Current thread"
      • All threads:檔案在所有執行緒間共享
      • Current thread group: 每個檔案會針對每個執行緒組開啟一次
      • Current thread: 每個檔案會針對每個執行緒單獨開啟
      • Identifier:所有執行緒共享相同的標識,共享相同的檔案。如有4個執行緒組,測試人員可以使用一個通用ID,以便在兩個或多個執行緒組之間共享檔案。

注意:CSV Dataset變數在每次測試迴圈的初始階段定義,由於定義發生在配置處理完成之後,所以他們不能用於一些配置元件(如JDBC Config),以便在配置時處理他們的內容。可在HTTP Auth Manager中正常使用。

  •  FTP Request Defaults:被用於設定FTP請求的預設值
  • HTTP授權管理器:可以幫助測試人員指定針對Web頁面的一個或多個登入。如果沒有定義,HTTP客戶端取樣器預設使用pre-emptive校驗,要禁止這一功能,做如下設定: jmeter.propertied中:設定 httpclient.parameters.file=httpclient.parameters  httpclient.parameters中:設定 http.authentication.preemptive$Boolean=false ,上面的設定隻影響HTTPClient取樣器(SOAP取樣器,也使用HTTPClient). 注意,如果在一個取樣器的作用域範圍內有多個授權管理器,那麼目前沒辦法確認JMeter使用哪個授權管理器。
    • username:校驗用的使用者名稱
    • Password:該使用者的密碼
    • Domain:針對NTLM使用的域
    • Realm:針對NTLM使用的realm
  • HTTP Cache Manager:被用來為其作用域內的HTTP請求提供快取功能,如果“Use Cache-Control/Expires header When ..."選中,那麼會根據當前時間來選擇,如果請求是”GET",而時間指向未來,那麼取樣器就會立即返回,而無須從遠端伺服器請求URL,這樣是為了模擬瀏覽器的操作,請注意Cache-Control頭必須是“pulic”的,並且只有"max-age"終結選項會被處理,如果請求文件自從其被快取以來沒有發生任何改變,那麼響應包體就會為空。
  • HTTP Cookie管理器:主要有兩個功能:
    • 它像web瀏覽器一樣儲存和傳送Cookie。,如果測試人員有一個HTTP請求和相應裡包含Cookie,Cookie管理器會自動儲存Cookie,那麼接下來針對特定web站點的所有請求中使用該Cookie。可在結果樹中檢視。接收到的Cookie可以被儲存為變數,須定義屬性"CookieManager.save.cookie=true",另外,在被儲存前Cookie名稱會加上字首“COOKIE_",要恢復早前處理方式,則定義屬性”CookieManager.name.prefix="(一個或多個空格)。如果啟動了該功能,那麼名稱為TEST的Cookie,可以通過${COOKIE_TEST}加以引用。
    • 手動為Cookie管理器新增一個Cookie(為所有JMeter執行緒所共享)。
  • HTTP請求預設:設定HTTP請求使用的預設值
  • HTTP資訊頭管理器:可新增或者過載HTTP請求頭,JMeter目前支援多個資訊頭管理器,資訊頭目將被合併起來構成取樣器列表。如果一個待合併條目匹配一個已經存在的資訊頭名,那麼它就會替代目前的條目,除非條目值是空,在這種情況下已經存在的條目會被移除,這容許使用者設定一系列預設資訊頭,並對特定取樣器加以調整。
    • Name(header):請求頭的名稱,經常用到的兩個通用請求頭 “User-Agent" 和”Referer"
    • Value:請求頭的值
  • 登入配置元件:為取樣器新增或過載使用者名稱和密碼。
  • 使用者定義的變數:定義初始化一系列變數。都在初始化階段處理。因此有些變數不能引用。
  • Random Variable:被用來產生隨機數字字串,接下來將其存放到變數之中。
    • Variable Name: 變數名,用於儲存隨機字串
    • output format: 使用java.text.DecimalFormat格式字串,例如”000"會產生至少3個數字的隨機數,或者“USER_000"產生的輸出格式為USER_nnn,如果不指明,就是用long.toString()來產生數字
    • Minimum Value: 產生隨機數的最小值(整數)
    • Maximum Value:
    • Seed for Random function:隨機數產生器的種子,預設為當前時間(以毫秒為單位)
    • Per Thread(User)?: 如果為False,則隨機數產生器線上程組的所欲執行緒共享,為True,則每個執行緒都有自己的隨機數產生器。
    • 計數器:容許使用者建立一個計數器,可線上程組中任何地方被引用
  • 簡單配置元件:可以在取樣器中新增或者過載任意值