1.LoadRunner錄製指令碼時為什麼不彈出IE瀏覽器?
當一台主機上安裝多個瀏覽器時,LoadRunner錄製指令碼經常遇到不能開啟瀏覽器的情況,可以用下面的方法來解決。
啟動瀏覽器,開啟Internet選項對話方塊,切換到進階標籤,去掉“啟用第三方瀏覽器延伸(需要重啟動)”的勾選,然後再次運行VuGen即可解決問題
提示:通常安裝Firefox等瀏覽器後,都會勾選上面得選項,導致不能正常錄製。因此建議運行LoadRunner得主機上保持一個乾淨的測試環境。
2.錄製Web指令碼時,產生的指令碼中存在亂碼該如何解決?
錄製指令碼前,開啟錄製選項配置對話方塊Record-Options,進入到Advanced標籤,先勾選“Support charset”,然後選擇中支援UTF-8。再次錄製,就不會出現中文亂碼問題了。
3.HTML-based script與URL-based script的指令碼有什麼區別?
使用“HTML-based script”的模式錄製指令碼,VuGen為使用者的每個HTML操作產生單獨的步驟,這種指令碼看上去比較直觀;使用“URL-based script”模式錄製指令碼時,VuGen可以捕獲所有作為使用者操作結果而發送到伺服器的HTTP請求,然後為使用者的每個請求分別產生對應方法。
通常,基於瀏覽器的Web應用會使用“HTML-based script”模式來錄製指令碼;而沒有基於瀏覽器的Web應用、Web應用中包含了與伺服器進行互動的Java Applet、基於瀏覽器的應用中包含了向伺服器進行通訊的JavaScript/VBScript代碼、基於瀏覽器的應用中使用了HTTPS安全性通訊協定,這時使用“URL-based script”模式進行錄製。
4.為什麼指令碼中添加了檢查方法Web-find,但是指令碼回放時卻沒有執行?
由於檢查點功能會耗費一定的資源,因此LoadRunner預設關閉了對文本及映像的檢查。要想開啟檢查功能,必須修改運行時的配置Run-time Setting。
進入“Run-time Setting”對話方塊,依次進入“Internet Protocol→Preferences”,勾選Checks下的“Enable Image and text check”選項即可。
檢查執行結果時推薦使用web_reg_find方法。
5.運行時的Pacing設定主要影響什麼?
Pacing主要用來設定重複迭代指令碼的間隔時間。共有三種方法:上次迭代結束後立刻開始、上次迭代結束後等待固定時間、按固定或隨機的時間間隔開始執行新的迭代。
根據實際需要設定迭代即可。通常,沒有時間間隔會產生更大的壓力。
6.運行時設定Log標籤中,如果沒有勾選“Enable logging”,則手工訊息可以發送嗎?
Enable logging選項僅影響自動日誌記錄和通過lr_log_message發送的訊息。即使沒有勾選,虛擬使用者指令碼中如果使用lr_message、lr_output_message、lr_error_message,仍然會記錄其發出的訊息。
7.LoadRunner 8.0版本的VuGen在錄製Web Services協議的指令碼時一切正常,而回放時報出錯誤提示“Error:server returned an incorrectly formatted SOAP response”。這時說明原因引起的?
造成這種情況的主要原因是LoadRunner 8.0的VuGen在錄製Web Service協議的指令碼時存在一個缺陷:如果伺服器的作業系統是中文的,VuGen會自動將WSDL檔案的頭改為,因此會有上面的錯誤提示。
解決方案:把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”兩個補丁打上即可解決。
8.VuGen支援Netscape的客戶認證嗎?
不支援。目前的VuGen 8.0版本中僅支援Internet Explorer的用戶端認證。錄製指令碼時可以先從Netscape中匯出所需的認證,然後將其匯入到Internet Explorer中,並確保以相同的順序匯出和匯入這些認證。而且,在每台將要錄製或運行需要認證的Web Vuser指令碼的電腦上都要重複執行前面的過程。
9.VuGen會修改錄製瀏覽器中的Proxy 伺服器設定嗎?
會修改。在開始錄製基於瀏覽器的Web Vuser指令碼時,VuGen首先會啟動指定的瀏覽器。然後,VuGen會指示瀏覽器訪問VuGenProxy 伺服器。為此,VuGen會修改錄製瀏覽器上的Proxy 伺服器設定。預設情況下,VuGen會立即將Proxy 伺服器設定更改為Localhost:7777。錄製之後,VuGen會將原始Proxy 伺服器設定還原到該錄製瀏覽器中。因此,在VuGen進行錄製的過程中,不可以更改Proxy 伺服器設定,否則將無法正常進行。
10.在LoadRunner指令碼如何輸出當前系統時間?
LoadRunner提供了char *ctime(const time_t *time)函數,調用參數為一個Long型的整數指標,用於存放返回時間的數值表示。
調用語句與傳回值如下樣本:
typedef long time_t;
Action()
{
time_t t;
lr_message(“Time in seconds since 1/1/70: %ld ”,time(&t));
lr_message(“System time and date: %s”,ctime(&t));
}
輸出結果為:
Time in seconds since 1/1/70: 1185329968
System time and date:Wed Jul 25 10:19:28 2007
11.一些Web虛擬使用者指令碼錄製後立刻回放沒有任何問題,但是當設定迭代次數大於1時,如果進行回放則只能成功迭代一次。為什麼從第二次迭代開始發生錯誤?
這種現象多是由於在“Run-time Setting”的“Browse Emulation”的設定中,勾選了“Simulate a new user on each iteration”及其下面的選項“Clear cache on each iteration”這兩個選項的含義是每次迭代時類比一個新的使用者及每次迭代時清除緩衝。
由於指令碼迭代時,init和end只能執行一次,如果每次迭代都類比一個新的使用者並清除緩衝,
則使用者登入資訊將一併清除,因此迭代時可能會發生錯誤。
12.虛擬客戶指令碼“Run-time Setting”中的線程和進程運行方式的區別?
如果選擇“Run Vuser as a process”,則情境運行時會為每一個虛擬使用者建立一個進程;選擇“Run Vuser as a thread”則將每個虛擬使用者作為一個線程來運行,在工作管理員中只看到一個mmdrv.exe,這種方式的運行效率更高,能造成更大的壓力,時預設選項。
另外,如果啟用了IP欺騙功能,則先在Controller中選中Tools菜單下的“Expert Mode”,然後將Tools菜單下的“Options>General”標籤頁中的IP地址分配方式也設定為與Vuser運行方式一致,同為線程或進程方式。
13.在Controller中運行Web相關測試情境時,經常會有很多逾時錯誤提示,如何處理這類問題?
這主要有指令碼的預設逾時設定引起。當回放Web指令碼時,有時候由於伺服器回應時間較長,會產生逾時的錯誤。這時需要修改指令碼的運行時配置。
進入“Run-time Setting”對話方塊後,依次進入“Internet Protocol→Preference”。然後點擊“Options…”按鈕,進入進階設定對話方塊,可以修改各類逾時設定的預設值。
14.為什麼Windows系統中的CPU、記憶體等資源仍然充足,但是類比的使用者數量卻上不去?
在Windows電腦的標準設定下,作業系統的預設限制只能使用幾百個Vuser,這個限制與CPU或記憶體無關,主要是作業系統本身規定了預設的最大線程數所導致。要想突破Windows這個限制,須修改Windows註冊表。以Windows XP Professional為例。
(1)開啟註冊表後,進入登錄機碼HKEY_LOCAL_MACHINE中的下列關鍵字:SystemCurrentControlSetControlSession ManagerSubSystems。
(2)找到Windows關鍵字,Windows關鍵字如下所示:
%SystemRoot%system32csrss.exe bjectDirectory=Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1
ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2
ProfileControl=Off MaxRequestThreads=16
SharedSection=1024,3072,512關鍵字的格式為xxxx,yyyy,zzz。其中,xxxx定義了系統範圍堆的最大值(以KB為單位),yyyy定義每個案頭堆得大小。
(3)將yyyy的設定從3072更改為8192(即8MB),增加SharedSection參數值。
通過對註冊表的更改,系統將允許運行更多的線程,
因而可以在電腦上運行更多的Vuser。這意味著能夠類比的最大並發使用者數量將不受Windows作業系統的限制,而只受硬體和內部延展性限制的約束。