LoadRunner常見問題整理

本文轉自51testing
 
  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文件的頭改爲<?xml version=”1.0” encoding=”zh_cn”?>,因此會有上面的錯誤提示。
  解決方法:把“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\n”,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中的下列關鍵字:System\CurrentControlSet\Control\Session Manager\SubSystems。
  (2)找到Windows關鍵字,Windows關鍵字如下所示:
  %SystemRoot%\system32\csrss.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操作系統的限制,而只受硬件和內部可伸縮性限制的約束。
  15.Controller中設置了用戶併發數量,但是運行時爲何初始化的用戶數量少於實際數量?
  主要時設置問題。在Tools→options→Run-time setting中可以設置每次最多初始化的虛擬用戶。如果需要100個併發用戶,則將該值設置爲大於100的數值。另外,注意LoadRunner相關協議License的更新,確保使用的License能夠允許所需要的併發用戶數量。
  16.如何讓場景的用戶執行發生錯誤繼續運行,以保證不間斷進行壓力測試?
  用VuGen打開虛擬用戶腳本後,進入“Run-time Settings”對話框後,依次進入“General→Miscellaneous”,可以看到Miscellaneous設置中關於“Error Handling”的配置。勾選“Continue on error”即可讓虛擬用戶發生錯誤繼續運行。
  17.爲什麼.NET虛擬用戶有時不能在遠程主機執行?
  主要時LoadRunner的版本問題。根據筆者的經驗,如果是Microsoft Visual Studio 2005開發的虛擬用戶,同時LoadRunner客戶端的版本低於8.1,執行Controller的主機將會發生錯誤。
  因此要想正確的運行Microsoft Visual Studio 2005開發的.NET虛擬用戶,客戶端最好裝8.1以上的版本,Controller的主機則安裝8.0和8.1兩個版本均可。此外,產生壓力的LoadRunner客戶端上預先應該安裝.NET運行環境,如果Microsoft Visual Studio 2005開發的是.NET虛擬用戶,則應該安裝Microsoft .NET Framework SDK v2.0。
  18.測試分析結果中會統計Action時間,而實際上可能並不須要這些數據,如何只顯示自己定義的用戶事務?
  進入腳本的運行時設置,依次進入General→Miscellaneous。默認情況下,自動事務配置“Automatic Transactions”下有兩個選項:第一個是把腳本的Action部分定義爲一個事務;第二個時把腳本的每一部分定義爲一個事務。去掉這兩個勾選後,測試結果將會只顯示自己定義的用戶事務。
  19.測試結果中,Summary和平均事務響應時間圖裏的各個事務的最大值、平均值、最小值爲什麼顯示不一樣?
  主要是受採樣時間的影響。Summary裏的事務平均響應時間是根據整個場景執行過程得到的數據計算所得,最大值與最小值也是從整個場景中得到的。平均事務響應時間圖主要時按照LoadRunner分析出來的採樣頻率來獲取事務響應時間的最大值與最小值,然後計算平均值。
  可以通過“Set Granularity”來修改平均事務響應時間圖的採樣頻率。如果把“Granularity”設爲場景執行時間,則統計結果將會一致。
  20.統計結果中的總點擊量Total Hits時用戶的鼠標點擊次數嗎?
  Total Hits不時按照用戶的鼠標點擊次數來計算的,而是按照各個虛擬客戶端向後臺發起的總的請求數來進行統計的。例如在向服務器請求的一個頁面中,如果該頁面包含5個圖片,用戶只要單擊鼠標就可以訪問該頁面,而單個虛擬用戶在LoadRunner訪問的點擊量爲1+5=6次。
  21.有些Web測試結果分析圖(例如每秒返回頁面數)在測試結果分析圖中無法看到,如何進行配置?
  用VuGen打開虛擬用戶腳本後,進入“Run-time Settings”對話框後,依次進入“Internet Protocol>Preference”,可以看到一些Web性能圖配置。
  勾選上面得選項後,Controller將會在測試執行過程中生成數據,然後可在Analysis中查看相應的性能結果分析圖。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章