一:模擬瀏覽器基本介紹
在Loadrunner有一個瀏覽器模擬設置,可以使代碼模擬瀏覽器的行爲,更加貼近真實的用戶操作,從而實現多用戶真實的併發操作。這個選項在Run-time Settings》browser》browser emulation
0.User-Agent
此選項點【Change】
use browser:可以直接選擇測試的瀏覽器類型,支持IE、firefox,當前是11版本主要支持3個,chrome暫不支持,可能最新的lr12支持吧。
use custom browser:自定義UA把需要的內容寫到裏面,更加靈活,可以支持chrome。
主要選項說明:
2.選項詳細介紹
1.Simulate browser cache
Simulate browser cache
Instructs the Vuser to simulate a browser with a cache. By default, cache simulation is enable. If you disable this option, all Vuser emulate a browser with no cache avaiable.
模擬瀏覽器緩存 指Vuser模擬瀏覽器帶緩存。 默認情況下,啓用緩存模擬。如果禁用此選項,則所有Vuser使用瀏覽器不緩存功能。
瀏覽器緩存
瀏覽器的緩存就是--使用瀏覽器訪問頁面時,瀏覽器會將一些網頁的文字,圖片,保存到本地的一個文件內。然後,再次使用瀏覽器訪問這個網頁的時候,先前被保存(緩存)的文字和圖片不會從新被下載,而是使用保存在本地的資源。 Browser Emulation就是用來設置腳本回放時,lr模擬瀏覽器緩存策略的 緩存的東西一般都放在C:\Documents and Settings\admin\Local Settings\Temporary Internet Files下。可以進去打開立面都是些什麼--文檔和圖片,而且都是你曾經瀏覽過的界面中信息
2.Cache URLs requiring content (HTML) 選項
這個選項是指Vugen僅緩存網頁的一些必要信息,這些信息可以是一些必須的驗證信息、分析數據或者關聯數據,當你勾選了這項後,這些信息自動被緩存(默認是啓用)。
提示:爲了減少虛擬用戶的內存佔用量,可以禁用該選項,除非它是一個明確規定的測試要求
Cache URLs Requiring Content – Advanced 選項
在高級設置裏可以設置指定類型的信息存儲到cache中
注意:這裏的高級設置時同時針對所有的用戶組,而不能對單獨用戶組進行設置。
修改指定類型信息步驟:
1. 勾選Specify URLs requiring content in addition to HTML page。
2. 點“+”號,添加指定類型信息,如text/plain, text/xml, image/jpeg, and image/gif。
3. 點“-”號,從緩存中去除指定類型信息。
Check for newer versions of stored pages every visit to the page 選項
這個選項是指瀏覽器會將存儲在cache中的網頁信息和最新瀏覽的頁面進行比較,當你勾選此項時,vugen會增加"If-modified-since"到HTTP包頭,在場景執行過程中這個選項可以顯示最新的網頁信息,但是也增加了更多的網絡流量,通常配置這個選項是用來匹配瀏覽器設置來達到模擬瀏覽器的目的
Chang User-Agent:模擬各種瀏覽器
Download non-HTML resources:模擬本地Cache
Sinulate a new user on each iteration:模擬新用戶進行本次迭代操作,只在Action中有作用。
3.Check for newer versions of stored pages every visit to the page
該設置將指示瀏覽器檢查指定 URL 的較新(與存儲在緩存中的 URL 相比)版本。啓用該選項時,VuGen 將向 HTTP 標頭中添加“If-modified-since”屬性。此選項將打開頁面的最新版本,但將在場景或會話執行期間生成更大的流量。默認情況下,瀏覽器不檢查較新的資源,因此禁用該選項。配置該選項以匹配要模擬的瀏覽器中的設置。
在調查的過程中,逐漸瞭解了HTTP的If-Modified-Since的頭標籤的作用。
大家都知道客戶端瀏覽器是有緩存的,裏面存放之前訪問過的一些網頁文件。
例如IE,會把緩存文件存到“C:\Documents and Settings\zh2000g\Local Settings\Temporary Internet Files” 這樣類似的目錄裏。
其實緩存裏存儲的不只是網頁文件,還有服務器發過來的該文件的最後服務器修改時間。
If-Modified-Since是標準的HTTP請求頭標籤,在發送HTTP請求時,把瀏覽器端緩存頁面的最後修改時間一起發到服務器去,服務器會把這個時間與服務器上實際文件的最後修改時間進行比較。
如果時間一致,那麼返回HTTP狀態碼304(不返回文件內容),客戶端接到之後,就直接把本地緩存文件顯示到瀏覽器中。
如果時間不一致,就返回HTTP狀態碼200和新的文件內容,客戶端接到之後,會丟棄舊文件,把新文件緩存起來,並顯示到瀏覽器中。
下面用一個簡單的小例子說明一下。
由於演示例子需要截取HTTP Request和Response的信息,我在這裏使用的工具是Fiddler。
1.首先在服務器創建一個簡單的HTML文件,用瀏覽器訪問一下,成功表示HTML頁面。Fiddler就會產生下面的捕獲信息。
需要留意的是
(1)因爲是第一次訪問該頁面,客戶端發請求時,請求頭中沒有If-Modified-Since標籤。
(2)服務器返回的HTTP狀態碼是200,併發送頁面的全部內容。
(3)服務器返回的HTTP頭標籤中有Last-Modified,告訴客戶端頁面的最後修改時間。
2.在瀏覽器中刷新一下頁面,Fiddler就會產生下面的捕獲信息。
需要注意的是
(1)客戶端發HTTP請求時,使用If-Modified-Since標籤,把上次服務器告訴它的文件最後修改時間返回到服務器端了。
(2)因爲文件沒有改動過,所以服務器返回的HTTP狀態碼是304,沒有發送頁面的內容。
3.用文本編輯器稍微改動一下頁面文件,保存。再用瀏覽器訪問一下,Fiddler就會產生下面的捕獲信息。
需要留意的是
(1)客戶端發HTTP請求時,使用If-Modified-Since標籤,把上次服務器告訴它的文件最後修改時間返回到服務器端了。
(2)因爲文件被改動過,兩邊時間不一致,所以服務器返回的HTTP狀態碼是200,併發送新頁面的全部內容。
(3)服務器返回的HTTP頭標籤中有Last-Modified,告訴客戶端頁面的新的最後修改時間。
HTTP的If-Modified-Since頭標籤與客戶端緩存相互配合,大大節約了網絡流量。
4.Download non-HTML resources選項
該選項指示 Vuser 在回放期間訪問網頁時加載圖形圖像。其中包括同頁面一起錄製的圖形圖像,還包括未明確同頁面一起錄製的圖形圖像。當實際用戶訪問網頁時,需要等待圖像加載。因此,如果嘗試測試整個系統(包括終端用戶時間),請啓用該選項(默認情況下啓用)。要提高性能並且不模擬實際用戶,請禁用該選項。
注意:如果在圖像檢查中遇到了差異,請禁用該選項,因爲每次訪問網頁時,一些圖像會隨之改變(例如,廣告橫幅)。
5.Simulate a new user on each iteration選項
指示 VuGen 將各個迭代之間的所有 HTTP 上下文重置爲 init 部分結束時相應的狀態。使用該設置,Vuser 可以更準確地模擬開始瀏覽會話的新用戶。它將刪除所有 Cookie,關閉所有 TCP 連接(包括 Keep-Alive 連接),清除模擬瀏覽器的緩存,重置 HTML 幀層次結構(幀編號將從 1 開始)並清除用戶名和密碼。默認情況下啓用該選項。
6.Clear cache on each iteration選項
每次迭代時清除瀏覽器緩存,以模擬第一次訪問網頁的用戶。清除該複選框可以禁用此選項並允許 Vuser 使用瀏覽器緩存中存儲的信息,模擬近期訪問過該網頁的用戶。