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會修改錄制浏覽器中的代理服務器設置嗎?
會修改。在開始錄制基於浏覽器的Web Vuser腳本時,VuGen首先會啟動指定的浏覽器。然後,VuGen會指示浏覽器訪問VuGen代理服務器。為此,VuGen會修改錄制浏覽器上的代理服務器設置。默認情況下,VuGen會立即將代理服務器設置更改為Localhost:7777。錄制之後,VuGen會將原始代理服務器設置還原到該錄制浏覽器中。因此,在VuGen進行錄制的過程中,不可以更改代理服務器設置,否則將無法正常進行。
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操作系統的限制,而只受硬件和內部可伸縮性限制的約束。