1. 程式人生 > >5.13.1.1 jmeter元件-非測試元件—HTTP代理伺服器的功能與配置

5.13.1.1 jmeter元件-非測試元件—HTTP代理伺服器的功能與配置

HTTP代理伺服器,有的地方也翻譯為測試指令碼錄製器(HTTP(S) Test Script Recorder)。
通過它,我們可以完成jmeter指令碼錄製。
當你使用瀏覽器訪問web應用程式時,HTTP(S)測試指令碼記錄器允許JMeter攔截並記錄您的操作,將建立測試樣例物件儲存到測試計劃中(您在操作時,也可以檢視錄製的測試計劃)。
要錄製指令碼,需要在測試計劃上點選右鍵選單(新增→ 非測試元件 → HTTP(S) 代理(HTTP(S) Test Script Recorde ),新增HTTP(S)代理。
然後,您需要設定瀏覽器使用該代理伺服器來請求所有HTTP和HTTPS請求。
不要使用jmeter作為任何其他請求型別的代理,如FTP等。因為jmeter無法處理它們。
理想的是在錄製會話時使用隱私模式。這能確保瀏覽器從沒有儲存的cookie開始,並防止某些更改被儲存。例如,Firefox不允許永久儲存證書重寫。
當啟動按鈕被按下時,生成jmeter證書(如果需要)。
證書生成可能需要一些時間,在此期間GUI將不響應。
在這裡插入圖片描述

HTT代理伺服器功能介紹
在測試計劃上點選右鍵選單 新增->非測試元件->HTTP代理伺服器,新增HTTP代理伺服器。
在這裡插入圖片描述
HTTP代理伺服器的配置介面如下所示:
在這裡插入圖片描述

在這裡插入圖片描述
名稱:設定代理伺服器名稱。
註釋:新增可讀的註釋資訊。方便後期維護。
Global Settings:
:代理伺服器監聽的埠,預設是8888,你可以修改;
HTTPS Domains:指定HTTPS域(或主機)名稱列表。用於預生成所有要記錄的伺服器的證書。例如,.example.com,.subdomain.example.com
注意,萬用字元域只適用於一個級別,即,abc.subdomain.example.com與*.subdomain.example.com匹配,但不匹配*.example.com。
目標控制器

:指定代理錄製的指令碼儲存到哪個控制器;
分組:是否將錄製的單個“點選”(請求接收而無明顯時間間隔的請求)的請求分組,以及如何在錄製中表示該分組。
不對樣本分組:對所有錄製的取樣器不分組。
在組間新增分組:在取樣器分組之間新增以名為 "--------------“的控制器。
在這裡插入圖片描述
每個組放入一個新的控制器:每個分組放到一個新的簡單控制器下。
只存入每個組的第一個樣本:只要每個分組的第一個請求會被錄製,而這些取樣器的"Follow Redirects” and "Retrieve All Embedded Resources …“等將被設定上。
Put each group in a new transaction controller
:每個分組建立一個事務控制器,那個分組的所有取樣器都儲存在控制器下。
jmeter區分不同請求,將它們作為看作的“點選”請求的最小時間間隔由屬性proxy.pause來定義。預設值是5000(毫秒),即5秒。如果您正在使用分組,請確保在單擊之間留下所需的間隙。
記錄HTTP資訊頭:要向測試計劃新增資訊頭嗎?如果勾選,則將向每個HTTP取樣器新增HTTP資訊頭管理器。代理伺服器會從生成的頭管理器中刪除Cookie和授權頭。預設情況下,它也移除了 removes If-Modified-Since和 If-None-Match頭。這些用於確定瀏覽器快取項是否是最新的;在錄製一個需要下載所有內容時,通常需要下載所有內容。通過修改),要修改那些哪些額外的頭部要刪除,可修改JMeter屬性proxy.headers.remove(定義為逗號分隔的頭部列表)。
新增斷言:為每個空的取樣器新增一個斷言;
Regex matching:指定在替換變數時是否使用正則表示式匹配。如果勾選,則將取樣器中的資訊使用正則表示式來匹配使用者定義變數值,替換為變數名(${變數名}),進行替換。匹配時,它只接受真個詞匹配,不接受匹配單詞一部分。
HTTP sampler設定
prefix/Transaction name:在錄製時,在取樣器名稱前新增指定的字首,或者用使用者指定的事務名稱替換取樣器名稱。
指定prefix為aa
在這裡插入圖片描述
指定transaction name為bb
在這裡插入圖片描述
Create new transaction after request (ms):兩個請求之間的不活動時間(需要在兩個單獨的組中考慮它們)。
Type:要生成哪種型別的取樣器(HTTPclient4預設或Java)
自動重定向:錄製的取樣器是否要設定自動重定向。
跟隨重定向:錄製的取樣器是否要設定自動重定向。
HTML檔案中獲取所有內含的資源:錄製的取樣器是否要設定勾選HTML檔案中獲取所有內涵的資源。
Use keep Alive : 錄製的取樣器是否要設定keep Alive。
在這裡插入圖片描述
Content Type filter :根據content-type過濾請求,例如"text/html [;charset=utf-8 ]”。該欄位為正則表示式,它會檢查content-type是否包含了指定字串[不必匹配整個欄位]。先檢查content-type的包含過濾器,再檢查排除過濾器。過濾掉的取樣器將不會被儲存。
包含模式:使用它可以過濾RUL,只有取樣器的完整URL匹配的該正則表示式才會被記錄。如果Include和Exclude都為空,則記錄所有內容(這可能導致為每個頁面記錄幾十個樣本,如影象、樣式表等被記錄)。
如果在包含模式中至少有一個條目,則只記錄匹配一個或多個包含模式的請求。
如果我們要錄製某個網站的請求,可以新增一個url過濾,防止錄製不必要的請求
排除模式:使用它可以過濾URL,滿足該條件的請求不會被錄製,
Notify Child Listeners of filtered samplers:通知被過濾取樣器的子監聽器。匹配一個或多個排除模式的任何響應都不會傳遞給子偵聽器(檢視結果樹)。
啟動按鈕:啟動代理伺服器。一旦代理伺服器啟動並準備接受請求,JMeter就向控制檯寫入以下訊息:“代理啟動並執行!”
停止按鈕:停止代理伺服器;
重啟按鈕:停止並重新啟動代理伺服器,當你改變/新增/刪除 包含/排除過濾器時,這個按鈕很有用,