1.LR?腳本為空的解決方法:
1)如果安裝了IE以外的瀏覽器,并且IE不是默認瀏覽器,則無法生成錄制腳本
2)如果錄制腳本時IE不能打開,則需要將瀏覽器的IE工具高級選項中,將“啟用第三方瀏覽器擴展”的
勾選去掉
3)lr自帶的webtours系統(tǒng),如果點擊Flights選項,出現(xiàn)空白頁面,請檢查本機oracle的 PERL5LIB環(huán)境
2.LoadRunner錄制腳本時為什么不彈出IE瀏覽器?
當一臺主機上安裝多個瀏覽器時,LoadRunner錄制腳本經(jīng)常遇到不能打開瀏覽器的情況,可以用下面的方法來解決。
啟動瀏覽器,打開Internet選項對話框,切換到高級標簽,去掉“啟用第三方瀏覽器擴展(需要重啟動)”的勾選,然后再次運行VuGen即可解決問題
提示:通常安裝Firefox等瀏覽器后,都會勾選上面得選項,導(dǎo)致不能正常錄制。因此建議運行LoadRunner得主機上保持一個干凈的測試環(huán)境。
3.HTML-based script與URL-based script的腳本有什么區(qū)別?
使用“HTML-based script”的模式錄制腳本,VuGen為用戶的每個HTML操作生成單獨的步驟,這種腳本看上去比較直觀;
使用“URL-based script”模式錄制腳本時,VuGen可以捕獲所有作為用戶操作結(jié)果而發(fā)送到服務(wù)器的HTTP請求,然后為用戶的每個請求分別生成對應(yīng)方法。
通常,基于瀏覽器的Web應(yīng)用會使用“HTML-based script”模式來錄制腳本;而沒有基于瀏覽器的Web應(yīng)用、Web應(yīng)用中包含了與服務(wù)器進行交互的Java Applet、基于瀏覽器的應(yīng)用中包含了向服務(wù)器進行通信的JavaScript/VBScript代碼、基于瀏覽器的應(yīng)用中使用了HTTPS安全協(xié)議,這時使用“URL-based script”模式進行錄制。
4.運行時的Pacing設(shè)置主要影響什么?
????Pacing主要用來設(shè)置重復(fù)迭代腳本的間隔時間。共有三種方法:A:上次迭代結(jié)束后立刻開始、 B:上次迭代結(jié)束后等待固定時間、C:按固定或隨機的時間間隔開始執(zhí)行新的迭代。
?????根據(jù)實際需要設(shè)置迭代即可。通常,沒有時間間隔會產(chǎn)生更大的壓力。
?5.運行時設(shè)置Log標簽中,如果沒有勾選“Enable logging”,則手工消息可以發(fā)送嗎?
Enable logging選項僅影響自動日志記錄和通過lr_log_message發(fā)送的消息。即使沒有勾選,虛擬用戶腳本中如果使用lr_message、lr_output_message、lr_error_message,仍然會記錄其發(fā)出的消息。
6.VuGen會修改錄制瀏覽器中的代理服務(wù)器設(shè)置嗎?
會修改。在開始錄制基于瀏覽器的Web Vuser腳本時,VuGen首先會啟動指定的瀏覽器。然后,VuGen會指示瀏覽器訪問VuGen代理服務(wù)器。為此,VuGen會修改錄制瀏覽器上的代理服務(wù)器設(shè)置。默認情況下,VuGen會立即將代理服務(wù)器設(shè)置更改為Localhost:7777。錄制之后,VuGen會將原始代理服務(wù)器設(shè)置還原到該錄制瀏覽器中。因此,在VuGen進行錄制的過程中,不可以更改代理服務(wù)器設(shè)置,否則將無法正常進行。
7.在LoadRunner腳本如何輸出當前系統(tǒng)時間?
LoadRunner提供了char *ctime(const time_t *time)函數(shù),調(diào)用參數(shù)為一個Long型的整數(shù)指針,用于存放返回時間的數(shù)值表示。
調(diào)用語句與返回值如下示例:
typedef long time_t;
Action()
{
time_t t;
lr_message(“Time in seconds since 1/1/70: %ldn”,time(&t));
lr_message(“System time and date: %s”,ctime(&t));
}
輸出結(jié)果為:
Time in seconds since 1/1/70: 1185329968
System time and date:Wed Jul 25 10:19:28 2007
8.一些Web虛擬用戶腳本錄制后立刻回放沒有任何問題,但是當設(shè)置迭代次數(shù)大于1時,如果進行回放則只能成功迭代一次。為什么從第二次迭代開始發(fā)生錯誤?
這種現(xiàn)象多是由于在“Run-time Setting”的“Browse Emulation”的設(shè)置中,勾選了“Simulate a new user on each iteration”及其下面的選項“Clear cache on each iteration”這兩個選項的含義是每次迭代時模擬一個新的用戶及每次迭代時清除緩存。
由于腳本迭代時,init和end只能執(zhí)行一次,如果每次迭代都模擬一個新的用戶并清除緩存,則用戶登錄信息將一并清除,因此迭代時可能會發(fā)生錯誤。
9.虛擬客戶腳本“Run-time Setting”中的線程和進程運行方式的區(qū)別?
如果選擇“Run Vuser as a process”,則場景運行時會為每一個虛擬用戶創(chuàng)建一個進程;選擇“Run Vuser as a thread”則將每個虛擬用戶作為一個線程來運行,在任務(wù)管理器中只看到一個mmdrv.exe,這種方式的運行效率更高,能造成更大的壓力,時默認選項。
另外,如果啟用了IP欺騙功能,則先在Controller中選中Tools菜單下的“Expert Mode”,然后將Tools菜單下的“Options>General”標簽頁中的IP地址分配方式也設(shè)置為與Vuser運行方式一致,同為線程或進程方式。
10.在Controller中運行Web相關(guān)測試場景時,經(jīng)常會有很多超時錯誤提示,如何處理這類問題?
這主要有腳本的默認超時設(shè)置引起。當回放Web腳本時,有時候由于服務(wù)器響應(yīng)時間較長,會產(chǎn)生超時的錯誤。這時需要修改腳本的運行時配置。
進入“Run-time Setting”對話框后,依次進入“Internet Protocol→Preference”。然后點擊“Options…”按鈕,進入高級設(shè)置對話框,可以修改各類超時設(shè)置的默認值。
11.為什么Windows系統(tǒng)中的CPU、內(nèi)存等資源仍然充足,但是模擬的用戶數(shù)量卻上不去-27796?
?????在Windows計算機的標準設(shè)置下,操作系統(tǒng)的默認限制只能使用幾百個Vuser,這個限制與CPU或內(nèi)存無關(guān),主要是操作系統(tǒng)本身規(guī)定了默認的最大線程數(shù)所導(dǎo)致。要想突破Windows這個限制,須修改Windows注冊表。以Windows XP Professional為例。
???????(1)打開注冊表后,進入注冊表項HKEY_LOCAL_MACHINE中的下列關(guān)鍵字:SystemCurrentControlSetControlSession ManagerSubSystems。
????????(2)找到Windows關(guān)鍵字,Windows關(guān)鍵字如下所示:
%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關(guān)鍵字的格式為xxxx,yyyy,zzz。其中,xxxx定義了系統(tǒng)范圍堆的最大值(以KB為單位),yyyy定義每個桌面堆得大小。
???????(3)將yyyy的設(shè)置從3072更改為8192(即8MB),增加SharedSection參數(shù)值。
?通過對注冊表的更改,系統(tǒng)將允許運行更多的線程,因而可以在計算機上運行更多的Vuser。這意味著能夠模擬的最大并發(fā)用戶數(shù)量將不受Windows操作系統(tǒng)的限制,而只受硬件和內(nèi)部可伸縮性限制的約束。
?12.性能測試 往往需要準備大批量的數(shù)據(jù),大批量數(shù)據(jù)的生成方法有很多種,常見的有:
(1)編寫SQL語句來插入數(shù)據(jù)
(2)使用DataFactory等專業(yè)的數(shù)據(jù)生成工具
(3)通過LoadRunner錄制回放的方式重復(fù)執(zhí)行生成大批量數(shù)據(jù)
????????Tips:
????????使用DataFactory插入nchar數(shù)據(jù)類型的數(shù)據(jù)時會出現(xiàn)空值的情況,可以先修改數(shù)據(jù)庫的數(shù)據(jù)類型設(shè)置,插完數(shù)據(jù)后再改回來
13.錄制腳本中包含中文,出現(xiàn)亂碼怎么辦?
?把錄制選項中的Support charset選中UTF-8
?錄制腳本后,切換到樹視圖中,打開相應(yīng)的腳本頁面。在右側(cè)的PageView中錄制的腳本呈現(xiàn)中文版式,但是當切換到Server Response中,所有的中文全部換成的亂碼,如“勌缞仫訆”。
原因是服務(wù)器端沒有把響應(yīng)的編碼設(shè)置為gb2312
在IIS中找到Web.Config文件,在<system.web>….</system.web>節(jié)加入<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>后再次錄制腳本,亂碼變中文。
?14.LoadRunner回放腳本時,在瀏覽器顯示的中文是亂碼
解決辦法(1):
首先設(shè)置Run-Time Settings?– Browser – Browser Emulation – User-Agent
然后設(shè)置IE:
查看-編碼-鉤上“自動選擇”和Unicode(UTF-8)。
解決辦法(2):
使用lr_convert_string_encoding函數(shù)來轉(zhuǎn)換編碼
下面是一個使用的例子:
lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"ReplyMessage");
???????web_submit_data("postreply.aspx_2",
??????????????"Action=http://127.0.0.1/postreply.aspx?infloat=1&topicid=2&&inajax=1",
??????????????"Method=POST",
??????????????"EncType=multipart/form-data",
??????????????"RecContentType=text/xml",
??????????????"Referer=http://127.0.0.1/showtopic-2.aspx",
??????????????"Snapshot=t9.inf",
??????????????"Mode=HTML",
??????????????ITEMDATA,
??????????????"Name=iconid", "Value=0", ENDITEM,
??????????????"Name=title", "Value=", ENDITEM,
??????????????"Name=wysiwyg", "Value=0", ENDITEM,
??????????????"Name=checkbox", "Value=0", ENDITEM,
??????????????"Name=message", "Value=[localimg=180,112]1[/localimg]rnrn{ReplyMessage}", ENDITEM,
??????????????"Name=e_mediatyperadio", "Value=on", ENDITEM,
??????????????"Name=sl_attachdesc", "Value=", ENDITEM,
??????????????"Name=attachid", "Value=", ENDITEM,
??????????????"Name=attachdesc", "Value=", ENDITEM,
??????????????"Name=localid", "Value=", ENDITEM,
??????????????"Name=attachdesc", "Value=", ENDITEM,
??????????????"Name=localid", "Value=1", ENDITEM,
??????????????"Name=attachdesc", "Value=", ENDITEM,
??????????????"Name=localid", "Value=2", ENDITEM,
??????????????"Name=emailnotify", "Value=on", ENDITEM,
??????????????"Name=postreplynotice", "Value=on", ENDITEM,
??????????????"Name=postfile", "Value=", "File=Yes", ENDITEM,
??????????????"Name=postfile", "Value=D:圖片收集It's about time.JPG", "File=Yes", ENDITEM,
??????????????"Name=postfile", "Value=", "File=Yes", ENDITEM,
??????????????"Name=uploadallowmax", "Value=10", ENDITEM,
??????????????"Name=uploadallowtype", "Value=jpg,gif", ENDITEM,
??????????????"Name=thumbwidth", "Value=300", ENDITEM,
??????????????"Name=thumbheight", "Value=250", ENDITEM,
??????????????"Name=noinsert", "Value=0", ENDITEM,
??????????????LAST);
15.怎樣抓取有相同左右邊界的動態(tài)value?
怎樣抓取有相同左右邊界的動態(tài)value?例如:
stateID="d7lg0ehmjkkm6uin3s4boei7oq">
stateID="cvopakp46ftsf8mh6l37ti3ubm">
stateID="bv9mja8gtgr39ddibm5t9163re">
web_reg_save_param里的ORD應(yīng)該怎樣設(shè)置?
ORD: Indicates the ordinal position or instance of the match. The default instance is 1. If you specify "All," it saves the parameter values in an array.
例子:
char outFlightParam[50]; // The name of the parameter for correlation
char outFlightParamVal[50]; // The formatted value of outFlightParam
web_reg_save_param("outFlightVal",
????????"LB=outboundFlight value=", "RB=>",
????????"ORD=ALL",
????????"SaveLen=18",
????????LAST);
????web_submit_form("reservations.pl",
????????"Snapshot=t4.inf",
????????ITEMDATA,
????????"Name=depart", "Value=London", ENDITEM,
????????"Name=departDate", "Value=11/20/2003", ENDITEM,
????????"Name=arrive", "Value=New York", ENDITEM,
????????"Name=returnDate", "Value=11/21/2003", ENDITEM,
????????"Name=numPassengers", "Value=1", ENDITEM,
????????"Name=roundtrip", "Value=<OFF>", ENDITEM,
????????"Name=seatPref", "Value=None", ENDITEM,
????????"Name=seatType", "Value=Coach", ENDITEM,
????????"Name=findFlights.x", "Value=83", ENDITEM,
????????"Name=findFlights.y", "Value=16", ENDITEM,
????????LAST);
????sprintf(outFlightParam, "{outFlightVal_%s}",
????????lr_eval_string("{outFlightVal_count}"));
????sprintf(outFlightParamVal, "Value=%s",
????????lr_eval_string(outFlightParam));
????lr_message("The value argument is : %s", outFlightParamVal);
????web_submit_form("reservations.pl_2",
???????"Snapshot=t5.inf",
???????ITEMDATA,
???????"Name=outboundFlight",outFlightParamVal, ENDITEM,
????????"Name=reserveFlights.x", "Value=92", ENDITEM,
????????"Name=reserveFlights.y", "Value=10", ENDITEM,
????????LAST);
16.運行場景時提示“Step download timeout (120 seconds) has expired when downloading resource(s)”
vuser_init.c(12): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)(出現(xiàn)個別,可以忽略)
vuser_init.c(12): Error -27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Step Timeout caused by resources is a warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively
vuser_init.c(12): Error -27796
????????????如果覺得下載一個頁面超過2分鐘不是錯誤的話,可以在Run-Time設(shè)置中選擇Preferences->Options,修改Step download timeout(sec)的時間文章來源:http://www.zghlxwxcb.cn/news/detail-690576.html
【性能測試】終于有一套全面的性能測試教程啦!真實企業(yè)性能測試全流程項目實戰(zhàn)!文章來源地址http://www.zghlxwxcb.cn/news/detail-690576.html
到了這里,關(guān)于性能測試工具LR常見問題匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!