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中查看相應的性能結果分析圖。