本節書摘來自華章計算機《loadrunner性能測試巧匠訓練營》一書中的第2章,第2.7,作者:趙 強 鄒偉偉 任健勇 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
至此,小白可以松口氣了,正常的錄制、放回、設定、腳本編寫已經完全掌握了,終于達到了一個裡程碑,值得慶祝。不過閑不住的小白還是想利用休息時間繼續看看loadrunner的vugen中的各種功能。
2.7.1 協定嗅探
portocol advisor(協定嗅探)功能是loadrunner 11中的新增功能,隻是為了給大家選擇協定時提供參考意見而已,這個功能不能全信,隻是在我們沒有頭緒時,可以參考嗅探出的協定。協定嗅探使用步驟如下。
1)單擊菜單file→protocol→analyze application,在彈出的對話框中選擇待分析内容,并做相關設定後單擊ok按鈕,如圖2-50所示。
2)對打開的頁面進行一些操作,如登入,然後單擊stop aanlyzing按鈕,完成協定的嗅探,之後便會看到報告,如圖2-51所示。

https://yqfile.alicdn.com/fa9ada4502e9c05b63064f8f3eb6659e54692541.png
" >
2.7.2 通用設定
general options(通用設定)是全局生效的,一般情況下很少改動這裡。入口在菜單tools→general options中。下面介紹主要選項。
1)parameterization:參數化。其子選項含義如下。
parammeter braces:可自定義參數括号的類型。
2)replay:回放。如圖2-52所示,各子選項含義如下。
animated run:用來設定loadrunner中的某個函數與另外一個函數之間的等待時間(機關為毫秒),以實作腳本減速運作。
prompt for results directory:是否提示測試報告儲存的目錄名,預設情況下為result1,選中會每次提示讓使用者輸入儲存的目錄名。
after replay view before replay:傳回到回放前的狀态。
after replay replay summary:直接打開回放結果統計。
after replay visual test results:打開測試報告
3)environment:環境。如圖2-53所示,各子選項含義如下。
save autorecover information every x minute:每隔x分鐘自動儲存恢複資訊。可在loadrunner崩潰時還原腳本。
auto show function syntax:自動顯示函數文法。
auto complete word:自動完成函數提示,輸入函數的第一個字母時,顯示一個函數清單,通過它可以選擇函數,而無須手動輸入函數。
select font:設定編輯器的字型。
comparison tool:打開自定義對比工具,可以和另外一個功能一起使用。
https://yqfile.alicdn.com/bf35bb319b5024b8319f91a89006b6e7efdbbcf1.png
4)display:顯示。如圖2-54所示,各子選項含義如下。
show run-time viewer during replay:顯示正在運作的腳本在頁面中的表現,選中後,vugen打開自己的浏覽器來顯示腳本執行的效果,這是調試腳本的一個重要方法。
generate report during script execution:用來生成測試結果報告。
5)correlation:關聯。如圖2-55所示,各子選項含義如下。
enable scripting and java applets on snapshot:啟用腳本和java應用程式快照。如果javascript腳本在treeview視圖裡顯示有問題,則可以嘗試勾選該項。
download images on snapshots viewer:在快照顯示器裡下載下傳圖檔。
(4)
2.7.3 錄制設定
recording options(錄制設定)是對正式錄制操作前進行一些參數設定。入口菜單為tools→ recording options。這裡面有很多選項,但對于測試來說,很多都是不需要太關心的,保持預設即可,下面介紹比較重要的選項設定。
1)recording:錄制選項。這裡提供了兩種錄制方式,如圖2-56所示。
html-based script(基于html的腳本)。這種方式錄制出來的腳本是基于html基礎的。一般來說,如果使用ie通路的b/s架構就選擇它。生成的腳本簡潔,基于使用者操作模拟,淺顯易懂。
url-based script(基于url的腳本)。這種方式錄制出來的腳本是基于url請求的。如果采用非ie标準的c/s架構,建議使用該模式來錄制腳本,這樣可以確定不會遺漏任何http請求,但生成代碼比較繁瑣。另外,使用了https協定也可選用此模式。

https://yqfile.alicdn.com/8a1efe7ab663e3a8292c063e5ca47458c4351ae6.png
2)port mapping:端口映射,預設為socket level data,如圖2-57所示。一般情況下不需要更改,但是在無法錄制腳本或者腳本為空的情況下,可以選擇此選項為socket level and winlnet level data試試。

https://yqfile.alicdn.com/530c8193779f06c5372e34b93bd1bd938f6ec88a.png
3)advanced:進階設定。各子選項含義如下。
reset context for each action:在錄制過程中,每個action之間是否需要重置context,這裡存放請求發送後傳回的資料資訊,如伺服器傳回的html、cookie、session等。
save snapshot resources locally:在本地儲存快照資源。
generate web_reg_find functions for page titles:是否需要為每個标題自動生成web_reg_find檢查點函數。
generate web_rege_find functions for sub-frames:為子架構也生成檢查點函數。
add comment to script for http errors while recording:錄制過程中出錯時添加注釋内容。
support charset:編碼規則選項。如果出現了亂碼,可以試着選中“utf-8”,如圖2-58所示。
recording engine:錄制的相容性選項,可以使用以前的錄制引擎來錄制腳本。
recording scheme headers:對headers中的内容進行過濾。
recording scheme content types:對錄制的正文内容進行過濾。
recording scheme non-resource:對非資源的内容進行過濾。
4)correlatio:關聯。子選項含義如下。
enable correlation during recording:錄制過程中啟用自動關聯。這個就是自動關聯的開關。
2.7.4 run-time settings設定
run-time settings(運作時設定)是最常用的,也是調試腳本最常修改的地方。選擇vuser→run-time settings菜單項進入入口後,可以對以下幾項内容進行設定。
run logic
如圖2-59所示,可在run logic(運作邏輯)對action設定疊代次數(運作的次數),init和end不能設定。

https://yqfile.alicdn.com/f44eb8cb491cb0536b49a4078fee9b568e748719.png
pacing
pacing(步調)配置腳本運作中每次interation之間的等待時間,如圖2-60所示。
log
腳本回放驗證時基本都是依靠log(日志),過多的日志雖然可以更清晰地了解腳本執行的内容,但是也為定位帶來了不便,是以要合适地選擇日志設定。一般在調試腳本時打開,在controller運作腳本時關閉。如圖2-61所示,各子選項含義如下。
enable logging:勾選則打開日志,不勾選則關閉日志,不會在vugen的控制台輸出。
send message only when an error occurs:隻有當發生錯誤時,才發送日志資訊。
standard log:标準日志。
extended log:擴充日志。
parameter substitution:顯示參數的指派取值,一般參數化調試時打開此項。
data returned by server:顯示伺服器傳回的資料。
advanced trace:進階的追蹤,會顯示非常多的資料資訊。
think time
通過think time(思考時間)來設定模拟使用者真實操作的等待時間,對應的函數是lr_think_time(),機關為s。選擇as recorded時,表示與錄制時的思考時間一樣。multiply recorded think time by表示以錄制時間的幾倍增加。use random percentage of recorded think time表示用錄制時思考時間的百分比。limit think time to表示限制多少秒。
忽略思考時間可以加大對系統的壓力,但這種做法和真實業務不符,是以一般不采用。其餘注意事項請回顧1.3.6。
miscellaneous
在miscellaneous(其他)中可以設定其他選項,如圖2-62所示。
1)error handing:錯誤處理。各子選項含義如下。
continue on error:出現錯誤時繼續運作。
fail open transaction on lr_error_message:失敗時使用lr_error_message函數列印。
generate snapshot on error:錯誤出現時生成快照。
2)multithreading:程序與線程。各子選項含義如下。
run vuser as a process:以一個程序運作虛拟使用者,程序是指一個虛拟使用者用一個mmdrv.exe。
run vuser as a thread:以一個線程運作虛拟使用者,線程是指多個使用者一起使用一個mmdrv.exe。
3)automatic transactions:自動化事務。事務是用來獲得某一行為所消耗時間的函數,預設情況下使用者自定義事務。各子選項含義如下。
define each action as a transaction:定義每一個action作為一個事務。
define each step as a transaction:定義每一步作為一個事務
speed simulation
提供寬帶模拟的選項,預設情況下,腳本以最大寬帶來通路。
browser emulation
通過browser emulation(浏覽器模拟)模拟整個http頭中的user-agent資訊,進而讓伺服器錯誤地認為是一個個真實的用戶端對伺服器發出了請求,通過設定可以改變浏覽器類型。如圖2-63所示,各子選項的含義如下。
user-agent(brower to be emulated):浏覽器的模仿。
download non-html resources:下載下傳non-html資源。
simulate a new user on each iteration:每次疊代時模拟一個新使用者。
clear cache on each iteration:每次疊代時清除cache。
preferences
一般正常的設定都可以在preferences(首選項)中完成,各選項含義如下。
1)checks:檢查。
其中,enable image and text check為其子項。還記得圖檔檢查點嗎?如果使用圖檔檢查點就必須勾選該選項。如果使用的是reg的文本檢查點,則可以不勾選,如果使用的是不帶reg的文本檢查點,就需要勾選該選項。
2)advanced options:進階設定。
小白在網上看到很多人都會問關于“download timeout 120s”這樣錯誤的原因和解決方法,其實這個錯誤在這裡設定後就可以避免,主要修改http-request connect timeout(sec),http-request revice timeout(sec)、setup download timeout(sec)三項的value值,适當調大即可。