溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

loadrunner自學(xué)以及問題解答1

發(fā)布時(shí)間:2020-07-24 07:21:29 來源:網(wǎng)絡(luò) 閱讀:2695 作者:小強(qiáng)測試 欄目:軟件技術(shù)

loadrunner自學(xué)以及問題解答1

視頻匯總首頁:https://edu.51cto.com/lecturer/4626073.html

1、LR 腳本為空的解決方法:

 去掉ie設(shè)置中的第三方支持取消掉

 在系統(tǒng)屬性-高級-性能-數(shù)據(jù)執(zhí)行保護(hù)中,添加loadrunner安裝目錄中的vugen.exe文件.

 有可能是由于錄制的URL地址采用的是localhost的問題,改成分配的IP地址或127.0.0.1試試。

 

2、插入文本檢查點(diǎn)步驟時(shí),使用web_reg_find,通常TextPfx和TextSfx中會(huì)包含雙引號,需要進(jìn)行轉(zhuǎn)義(用斜杠),例如:

 

       web_reg_find("Search=Body",

 

              "SaveCount=Welcome",

 

             "TextPfx=歡迎",

 

              "TextSfx=",

 

              LAST)

 

3、LoadRunner錄制腳本時(shí)為什么不彈出IE瀏覽器?

  當(dāng)一臺主機(jī)上安裝多個(gè)瀏覽器時(shí),LoadRunner錄制腳本經(jīng)常遇到不能打開瀏覽器的情況,可以用下面的方法來解決。

 

  啟動(dòng)瀏覽器,打開Internet選項(xiàng)對話框,切換到高級標(biāo)簽,去掉“啟用第三方瀏覽器擴(kuò)展(需要重啟動(dòng))”的勾選,然后再次運(yùn)行VuGen即可解決問題

 

  提示:通常安裝Firefox等瀏覽器后,都會(huì)勾選上面得選項(xiàng),導(dǎo)致不能正常錄制。因此建議運(yùn)行LoadRunner得主機(jī)上保持一個(gè)干凈的測試環(huán)境。

 

4、HTML-based script與URL-based script的腳本有什么區(qū)別?

使用“HTML-based script”的模式錄制腳本,VuGen為用戶的每個(gè)HTML操作生成單獨(dú)的步驟,這種腳本看上去比較直觀;

 

使用“URL-based script”模式錄制腳本時(shí),VuGen可以捕獲所有作為用戶操作結(jié)果而發(fā)送到服務(wù)器的HTTP請求,然后為用戶的每個(gè)請求分別生成對應(yīng)方法。

 

  通常,基于瀏覽器的Web應(yīng)用會(huì)使用“HTML-based script”模式來錄制腳本;而沒有基于瀏覽器的Web應(yīng)用、Web應(yīng)用中包含了與服務(wù)器進(jìn)行交互的Java Applet、基于瀏覽器的應(yīng)用中包含了向服務(wù)器進(jìn)行通信的JavaScript/VBScript代碼、基于瀏覽器的應(yīng)用中使用了HTTPS安全協(xié)議,這時(shí)使用“URL-based script”模式進(jìn)行錄制。

 

5、運(yùn)行時(shí)的Pacing設(shè)置主要影響什么?

     Pacing主要用來設(shè)置重復(fù)迭代腳本的間隔時(shí)間。共有三種方法:

A:上次迭代結(jié)束后立刻開始、 B:上次迭代結(jié)束后等待固定時(shí)間、C:按固定或隨機(jī)的時(shí)間間隔開始執(zhí)行新的迭代。

 

     根據(jù)實(shí)際需要設(shè)置迭代即可。通常,沒有時(shí)間間隔會(huì)產(chǎn)生更大的壓力。

 

6、運(yùn)行時(shí)設(shè)置Log標(biāo)簽中,如果沒有勾選“Enable logging”,則手工消息可以發(fā)送嗎?

  Enable logging選項(xiàng)僅影響自動(dòng)日志記錄和通過lr_log_message發(fā)送的消息。即使沒有勾選,虛擬用戶腳本中如果使用lr_message、lr_output_message、lr_error_message,仍然會(huì)記錄其發(fā)出的消息。

 

7、VuGen支持Netscape的客戶證書嗎?

  不支持。目前的VuGen 8.0版本中僅支持Internet Explorer的客戶端證書。錄制腳本時(shí)可以先從Netscape中導(dǎo)出所需的證書,然后將其導(dǎo)入到Internet Explorer中,并確保以相同的順序?qū)С龊蛯?dǎo)入這些證書。而且,在每臺將要錄制或運(yùn)行需要證書的Web Vuser腳本的計(jì)算機(jī)上都要重復(fù)執(zhí)行前面的過程。

 

8、VuGen會(huì)修改錄制瀏覽器中的代理服務(wù)器設(shè)置嗎?

  會(huì)修改。在開始錄制基于瀏覽器的Web Vuser腳本時(shí),VuGen首先會(huì)啟動(dòng)指定的瀏覽器。然后,VuGen會(huì)指示瀏覽器訪問VuGen代理服務(wù)器。為此,VuGen會(huì)修改錄制瀏覽器上的代理服務(wù)器設(shè)置。默認(rèn)情況下,VuGen會(huì)立即將代理服務(wù)器設(shè)置更改為Localhost:7777。錄制之后,VuGen會(huì)將原始代理服務(wù)器設(shè)置還原到該錄制瀏覽器中。因此,在VuGen進(jìn)行錄制的過程中,不可以更改代理服務(wù)器設(shè)置,否則將無法正常進(jìn)行。

 

9、在LoadRunner腳本如何輸出當(dāng)前系統(tǒng)時(shí)間?

  LoadRunner提供了char *ctime(const time_t *time)函數(shù),調(diào)用參數(shù)為一個(gè)Long型的整數(shù)指針,用于存放返回時(shí)間的數(shù)值表示。

 

  調(diào)用語句與返回值如下示例:

 

  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));

 

  }

 

  輸出結(jié)果為:

 

  Time in seconds since 1/1/70: 1185329968

 

  System time and date:Wed Jul 25 10:19:28 2007

 

10、一些Web虛擬用戶腳本錄制后立刻回放沒有任何問題,但是當(dāng)設(shè)置迭代次數(shù)大于1時(shí),如果進(jìn)行回放則只能成功迭代一次。為什么從第二次迭×××始發(fā)生錯(cuò)誤?

  這種現(xiàn)象多是由于在“Run-time Setting”的“Browse Emulation”的設(shè)置中,勾選了“Simulate a new user on each iteration”及其下面的選項(xiàng)“Clear cache on each iteration”這兩個(gè)選項(xiàng)的含義是每次迭代時(shí)模擬一個(gè)新的用戶及每次迭代時(shí)清除緩存。

 

  由于腳本迭代時(shí),init和end只能執(zhí)行一次,如果每次迭代都模擬一個(gè)新的用戶并清除緩存,則用戶登錄信息將一并清除,因此迭代時(shí)可能會(huì)發(fā)生錯(cuò)誤。

 

11、虛擬客戶腳本“Run-time Setting”中的線程和進(jìn)程運(yùn)行方式的區(qū)別?

  如果選擇“Run Vuser as a process”,則場景運(yùn)行時(shí)會(huì)為每一個(gè)虛擬用戶創(chuàng)建一個(gè)進(jìn)程;選擇“Run Vuser as a thread”則將每個(gè)虛擬用戶作為一個(gè)線程來運(yùn)行,在任務(wù)管理器中只看到一個(gè)mmdrv.exe,這種方式的運(yùn)行效率更高,能造成更大的壓力,時(shí)默認(rèn)選項(xiàng)。

 

  另外,如果啟用了IP欺騙功能,則先在Controller中選中Tools菜單下的“Expert Mode”,然后將Tools菜單下的“Options>General”標(biāo)簽頁中的IP地址分配方式也設(shè)置為與Vuser運(yùn)行方式一致,同為線程或進(jìn)程方式。

 

12、在Controller中運(yùn)行Web相關(guān)測試場景時(shí),經(jīng)常會(huì)有很多超時(shí)錯(cuò)誤提示,如何處理這類問題?

  這主要有腳本的默認(rèn)超時(shí)設(shè)置引起。當(dāng)回放Web腳本時(shí),有時(shí)候由于服務(wù)器響應(yīng)時(shí)間較長,會(huì)產(chǎn)生超時(shí)的錯(cuò)誤。這時(shí)需要修改腳本的運(yùn)行時(shí)配置。

 

  進(jìn)入“Run-time Setting”對話框后,依次進(jìn)入“Internet Protocol→Preference”。然后點(diǎn)擊“Options…”按鈕,進(jìn)入高級設(shè)置對話框,可以修改各類超時(shí)設(shè)置的默認(rèn)值。

 

13、為什么Windows系統(tǒng)中的CPU、內(nèi)存等資源仍然充足,但是模擬的用戶數(shù)量卻上不去-27796?

在Windows計(jì)算機(jī)的標(biāo)準(zhǔn)設(shè)置下,操作系統(tǒng)的默認(rèn)限制只能使用幾百個(gè)Vuser,這個(gè)限制與CPU或內(nèi)存無關(guān),主要是操作系統(tǒng)本身規(guī)定了默認(rèn)的最大線程數(shù)所導(dǎo)致。要想突破Windows這個(gè)限制,須修改Windows注冊表。以Windows XP Professional為例。

 

(1)打開注冊表后,進(jìn)入注冊表項(xiàng)HKEY_LOCAL_MACHINE中的下列關(guān)鍵字:System\CurrentControlSet\Control\Session Manager\SubSystems。

 

(2)找到Windows關(guān)鍵字,Windows關(guān)鍵字如下所示:

 

  %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關(guān)鍵字的格式為xxxx,yyyy,zzz。其中,xxxx定義了系統(tǒng)范圍堆的最大值(以KB為單位),yyyy定義每個(gè)桌面堆得大小。

 

(3)將yyyy的設(shè)置從3072更改為8192(即8MB),增加SharedSection參數(shù)值。

 

通過對注冊表的更改,系統(tǒng)將允許運(yùn)行更多的線程,因而可以在計(jì)算機(jī)上運(yùn)行更多的Vuser。這意味著能夠模擬的最大并發(fā)用戶數(shù)量將不受Windows操作系統(tǒng)的限制,而只受硬件和內(nèi)部可伸縮性限制的約束。

 

14、Error -27728: Step download timeout (120 seconds)的解決方法

  loadruner報(bào)錯(cuò):Error -27728: Step download timeout (120 seconds)如何解決語法檢查通過,但是在并發(fā)執(zhí)行一個(gè)查詢時(shí)候報(bào)錯(cuò)Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s),                                 請問有啥子解決方法,我使用web_set_timeout ,好象不起作用,直接在option中設(shè)置timeout時(shí)間為600,(單位應(yīng)該是秒吧)還是沒有起作用,結(jié)果都還是提示(120seconds),說明還是以120秒來判斷的;使用lrs_set_recv_timeout,語法檢查不過,說明庫函數(shù)里面沒有這個(gè)函數(shù)。嘗試步驟:設(shè)置超時(shí)時(shí)間到600秒,回放還是出錯(cuò)。后來我設(shè)置了runt time setting中的internet protocol-preferences中的advaced區(qū)域有一個(gè)winlnet replay instead of sockets選項(xiàng),選項(xiàng)后再回放就成功了。   

 

   首先LR是通過Microsoft WinInet DLL去錄制web協(xié)議的!但是在Control運(yùn)行的時(shí)候它默認(rèn)通過socket去模擬請求,因?yàn)檫@些可以真實(shí)的模擬帶寬,而采用Microsoft WinInet DLL通過這個(gè)DLL去訪問網(wǎng)卡方式去模擬帶寬,使得模擬不是很精確!而且也不支持unix的應(yīng)用,但是使用這個(gè)確實(shí)有時(shí)無法處理winnet Dll的一些請求,我認(rèn)為是它的一些BUG,比如說:回放時(shí)它會(huì)檢查Content-Length,但是網(wǎng)頁支持receive more data時(shí),這時(shí)socket模擬會(huì)一直等待直到timeout!先說了一些優(yōu)缺點(diǎn),最后回到這個(gè)問題!這個(gè)問題分兩個(gè)方面分析:

 

  第一:你要明白web_set_timeout()這個(gè)函數(shù)的適用范圍!比如說一個(gè)web_submit_data()中實(shí)際涵蓋了10個(gè)對Server 端的請求,這個(gè)函數(shù)是針對10個(gè)請求的總和時(shí)間的?。▌e犯低級錯(cuò)誤,timeout分了connect,receive以及download三個(gè)部分:) )                                                                            第二:就是我解釋的上面的一些BUG問題!WinInet dll在新版本中處理請求時(shí)可以異步的,就是不再是那種連接等待然后超時(shí)模式!但是LR用的socket是同步請求!只有等到timeout才會(huì)退出!microsoft已經(jīng)明確表示INTERNET_OPTION_RECEIVE_TIMEOUT 不再適用于 Microsoft Internet Explorer 5.0,顯而易見,他們處理請求采取了異步處理的方式!呵呵!這下大概可以圓滿解釋你的問題了!呵呵這里,

 

 我補(bǔ)充如下:VuGen專用的基于套接字的重播是一種可伸縮以便進(jìn)行負(fù)載測試的輕型引擎。使用線程時(shí)是準(zhǔn)確的?;谔捉幼值囊娌恢С謘ocks代理服務(wù)器。如果在這樣的環(huán)境中錄制,應(yīng)該使用winInet重播引擎。

 

    15.性能測試往往需要準(zhǔn)備大批量的數(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ù)時(shí)會(huì)出現(xiàn)空值的情況,可以先修改數(shù)據(jù)庫的數(shù)據(jù)類型設(shè)置,插完數(shù)據(jù)后再改回來

 

    16.錄制腳本中包含中文,出現(xiàn)亂碼怎么辦?

           把錄制選項(xiàng)中的Support charset選中UTF-8

 

           錄制腳本后,切換到樹視圖中,打開相應(yīng)的腳本頁面。在右側(cè)的PageView中錄制的腳本呈現(xiàn)中文版式,但是當(dāng)切換到Server Response中,所有的中文全部換成的亂碼,如“勌缞仫訆”。

 

          原因是服務(wù)器端沒有把響應(yīng)的編碼設(shè)置為gb2312

 

在IIS中找到Web.Config文件,在….節(jié)加入后再次錄制腳本,亂碼變中文。

 

    17.LoadRunner回放腳本時(shí),在瀏覽器顯示的中文是亂碼

解決辦法(1):

 

首先設(shè)置Run-Time Settings – Browser – Browser Emulation – User-Agent

 

然后設(shè)置IE:

 

查看-編碼-鉤上“自動(dòng)選擇”和Unicode(UTF-8)。

 

解決辦法(2):

 

使用lr_convert_string_encoding函數(shù)來轉(zhuǎn)換編碼

 

下面是一個(gè)使用的例子:

 

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]\r\n\r\n{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);

 

    18.可以在LR測試腳本的目錄中找到參數(shù)文件,直接修改參數(shù)文件

            The parameter file is stored in the script directory as .dat file extension.  It can be opened with a simple text editor like Notepad as it is stored in pure text format.  Therefore, you can manipulate the files via the Notepad.  You can also use office applications such as Microsoft Excel or OpenOffice.org Calc to work on the file.  This greatly the amount of work required for maintaining a long list of data.

 

    19.LR9.x啟動(dòng)VUGen時(shí)提示"Failed to connect to server"

             After upgrading to LoadRunner 9.x I started getting a window popup which said "Failed to connect to server" every time I opened virtual user generator (vugen.exe).

 

The solution to this was to close virtual user generator and delete the [vugen.ini] file.

 

vugen.ini is found in the %systemroot% folder on your Windows PC (usually C:\WINDOWS or C:\WINNT).

 

Once you've deleted the file, virtual user generator will open without any issues and create a new vugen.ini file automatically.

 

    20.怎樣抓取有相同左右邊界的動(dòng)態(tài)value?

怎樣抓取有相同左右邊界的動(dòng)態(tài)value?例如:

 

stateID="d7lg0ehmjkkm6uin3s4boei7oq">

 

stateID="cvopakp46ftsf8mh7l37ti3ubm">

 

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=", 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);

 

    21.運(yùn)行場景時(shí)提示“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)個(gè)別,可以忽略)

 

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

 

            如果覺得下載一個(gè)頁面超過2分鐘不是錯(cuò)誤的話,可以在Run-Time設(shè)置中選擇Preferences->Options,修改Step download timeout(sec)的時(shí)間

 

            或者把“Step timeout caused by resources is a warning”設(shè)置為Yes,這樣下載資源超時(shí)也只是作為警告,不作為錯(cuò)誤提示,但是對于非資源的下載超時(shí),則總是會(huì)提示錯(cuò)誤的

 

    22.用strtok函數(shù)分割字符串

              需要在loadrunner里面獲得“15”(下面紅色高亮的部分),并做成關(guān)聯(lián)參數(shù)。

 

//Body response 內(nèi)容: <; PRE>//OK[8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1

 

用web_reg_save_param取出“8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1”這一段,然后用strtok函數(shù)切割出一個(gè)個(gè)數(shù)字,第四個(gè)數(shù)字就是要找的值

 

例如:

 

extern char * strtok(char * string, const char * delimiters ); // Explicit declaration

 

char separators[] = ",";

 

char * token;

 

lr_save_string("1,2,3,4,5,6","str");

 

token = (char *)strtok(lr_eval_string("{str}"), separators); // Get the first token

 

if (!token) {

 

        lr_output_message ("No tokens found in string!");

 

        return( -1 );

 

    }

 

while (token != NULL ) { // While valid tokens are returned

 

       lr_output_message ("%s", token );

 

       token = (char *)strtok(NULL, separators); // Get the next token

 

   }

 

    23.LoadRunner沒有購買webservice協(xié)議的license,只有http的,可不可以完全用http協(xié)議模擬webservice?

 可以,參考:

 

   http://blog.testsautomation.com/2009/01/web-services-performance-using-loadrunner/

 

   http://blog.testsautomation.com/2009/05/validating-web-service-response-with-xpath/

 

    24.在場景設(shè)置中不忽略思考時(shí)間,但是在查看響應(yīng)時(shí)間的時(shí)候怎樣讓LR自動(dòng)在響應(yīng)時(shí)間里減去思考時(shí)間?

          在analysis中找到了設(shè)置是否在報(bào)告中包含思考時(shí)間的地方做相應(yīng)的設(shè)置即可:

 

    25.LoadRunner在運(yùn)行過程中停掉1半虛擬用戶

Another issue that I’m facing from time to time is that LoadRunner stops 50% of running users without any notification, issue, error message etc. I’ve find out that it happens only when running with log level set to ‘a(chǎn)lways send a message’. Because of that, I suggest to run with log level set to ‘Send message only when error occur’.

 

    26.測試RTMP協(xié)議應(yīng)該在LoadRunner選擇什么協(xié)議來錄制?

 用flex協(xié)議

 

有這幾個(gè)函數(shù)可用:

 

flex_rtmp_connect  Connects a client to an RTMP server and sets connection options. 

 

flex_rtmp_disconnect  Disconnects a client from an RTMP server. 

 

flex_rtmp_send  Sends messages to an RTMP server. 

 

flex_rtmp_receive  Receives responses from an RTMP server

 

Flex can record and replay scripts involving RTMP (Real Time Messaging Protocol). In order to enable RTMP simulation, you must configure the recording options for the Flex protocol.

 

To enable RTMP:

 

1 Open the Recording Options dialog box by selecting Tools > Recording Options or clicking the Options button in the Start Recording dialog box.

 

2 In the Network > Port Mapping node click Options.

 

3 Set the Send-Receive buffer size threshold to 1500.

 

    27.如何在LoadRunner中運(yùn)行QTP腳本?

  1、運(yùn)行準(zhǔn)備:

 

1)勾選QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"

 

2)錄制需要在lr中運(yùn)行的QTP腳本,并且在QTP腳本中設(shè)置事務(wù),Services.StartTransaction "start"與Services.EndTransaction "start"

 

2、運(yùn)行QTP腳本

 

在LR中運(yùn)行時(shí)選擇QTP腳本,為QTP腳本存放目錄下文件擴(kuò)展名為.usr的文件。

 

 注:LR中運(yùn)行QTP腳本時(shí),只能有一個(gè)Vuser,否則將報(bào)錯(cuò):

 

  The load generator is currently running the maximum number of Vusers of this type

 

    28.在LR中如何忽略Socket接收數(shù)據(jù)的驗(yàn)證

在LR中對Socket進(jìn)行性能測試時(shí),LR會(huì)自己判斷l(xiāng)rs_receive回來的數(shù)據(jù)的長度,而如果長度不符的話會(huì)有時(shí)間延遲的情況(這是性能測試完全不能接受的事情),如果做到這一點(diǎn)呢,經(jīng)過反復(fù)嘗試,發(fā)現(xiàn)一種簡單的方法(用*代替具體的長度):

 

類似于將:

 

recv buf1 12

 

"Hello, Denny"

 

改為:

 

recv buf1 *

 

"Hello, Denny"

 

一切OK。

 

    29.LoadRunner9.5的Controller中不能添加Apache的監(jiān)控

     在C:\Program Files\HP\LoadRunner\dat\online_graphs中找到online_resource_graphs.rmd文件,修改[Apache]部分中的EnableInUI為1

 

參考:

 

http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1274450165814+28353475&threadId=1229523

 

    30.VB Vuser開發(fā)ADO腳本,提示“user-defined type not defined”

想在VB Vuser寫入模擬數(shù)據(jù)操作的過程,然后在VB Vuser里定義了這個(gè)全局變量

 

Private m_Conn As ADODB.Connection '連接對象

 

Private m_Reco As ADODB.Recordset '結(jié)果集

 

但是在VB Vuser中不識別這個(gè)對象,報(bào)出user-defined type not defined

 

需要在Run-Time 設(shè)置中的VBA部分把ADO的庫選上

 

如果用VB Script虛擬用戶來開發(fā)就不要,直接用CreateObject來創(chuàng)建ADO對象即可

 

    31.loadrunner9.5錄制腳本時(shí)出現(xiàn)c:\PROGRA~1\MICROS~1\office12\Grooveutil.DLL時(shí)出錯(cuò)內(nèi)存位置訪問無效

              Office2007的問題,IE加載項(xiàng)禁用Groove  GFSBrowser Helper 組件

 

    32.LR自帶的例子端口號怎么修改?

          LR自帶的例子端口號是1080,我怎么樣把這個(gè)端口設(shè)置我自己想用的端口號8088,在什么地方設(shè)置在LR安裝目錄下,找到Xitami.config文件,找到portbase,可以修改它(默認(rèn)是1000);

 

默認(rèn)的端口號是portbase+80;要把端口號改成8088,就把portionbase改為8008,保存之后就是了(8088=8008+80)。

 

    33.用Web_reg_find查找中文字符串時(shí)查找不到

            腳本文件里有個(gè)default.cfg,里面有個(gè)參數(shù)是 UTF8InputOutput ,將其值改為0

 

    34.替代IP Wizard的腳本

http://hi.baidu.com/higkoo/blog/item/39bbb21bc33d76dcac6e751c.html

 

LoadRunner自帶的“IP Wizard”用起來非常麻煩,要不停的點(diǎn),重要的是最后還必須重啟系統(tǒng)生效。

 

于是乎寫個(gè)腳本替代之:

 

1. 假設(shè)客戶端IP為 192.168.10.31

 

2. 假設(shè)服務(wù)端IP為 192.168.10.10

 

3. 需要模擬的IP為 110.119.120.122

 

那么,客戶端提供添加虛擬IP的BAT腳本:

 

netsh    interface    ip    add    address   本地連接    110.119.120.122    255.255.0.0

 

對應(yīng)的刪除設(shè)置為:

 

netsh    interface    ip    del    address    本地連接   110.119.120.122

 

對應(yīng)服務(wù)器添加虛擬路由的Shell腳本:

 

route add -host 110.119.120.122 gw 192.168.10.31

 

刪除路由的腳本:

 

route del -host 110.119.120.122 gw 192.168.10.31

 

這樣就非常方便了,不用重啟任何機(jī)器,執(zhí)行腳本就生效,再執(zhí)行腳本就取消。

 

    35.如何從命令行調(diào)用LoadRunner腳本?

 Here is the command line that you need to execute to run a VuGen script from the command prompt:

 

   \bin\mmdrv.exe -usr 

 

Note:

 

In order to get all the other options that go with the command, run mmdrv.exe from the command prompt without any options.

 

    36.請問"int64這個(gè)類型,在LR中怎么表示"。我將一段C的代碼放在LR中,LR不認(rèn)int64這個(gè)類型,怎么解決?

 把那段C代碼做成DLL,然后在LR中調(diào)用

 

    37.LoadRunner監(jiān)控遠(yuǎn)程機(jī)器Windows資源,提示“net use failed”

解決辦法:

 

在被監(jiān)控機(jī)器上更改本地帳戶的共享和安全模式為經(jīng)典模式??刂泼姘?>管理工具->本地安全策略->網(wǎng)絡(luò)訪問:本地帳戶的共享和安全模式->經(jīng)典模式。

 

監(jiān)視連接前的準(zhǔn)備工作:

 

首先保證被監(jiān)視的windows系統(tǒng)開啟以下二個(gè)服務(wù)Remote Procedure Call(RPC) 和Remote Registry Service

 

被監(jiān)視的WINDOWS機(jī)器:右擊我的電腦,選擇管理->共享文件夾->共享 在這里面要有C$這個(gè)共享文件夾,(要是沒有自己手動(dòng)加)

 

然后保證在安裝LR的機(jī)器上使用運(yùn)行.輸入\\被監(jiān)視機(jī)器IP\C$ 然后輸入管理員帳號和密碼,如果能看到被監(jiān)視機(jī)器的C盤了,就說明你得到了那臺機(jī)器的管理員權(quán)限,可以使用LR去連接了

 

   38.LoadRunner腳本中出現(xiàn)亂碼問題現(xiàn)象某個(gè)鏈接或者圖片名稱為中文亂碼,腳本運(yùn)行無法通過。

 

  錯(cuò)誤分析

  腳本錄制可能采用的是URL-based script方式,如果程序定義的字符集合采用的是國際標(biāo)準(zhǔn),腳本就會(huì)出現(xiàn)亂碼現(xiàn)象。

  解決辦法重新錄制腳本,在錄制腳本前,打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Advanced”選項(xiàng)里先將“Surport Charset”選中,然后選中支持“UTF-8”的選項(xiàng)。

 

    39.LoadRunner不執(zhí)行檢查方法錯(cuò)誤現(xiàn)象在腳本中插入函數(shù)Web_find,在腳本中設(shè)置文本以及圖像的檢查點(diǎn),但是在回放過程中并沒有對設(shè)置的檢查點(diǎn)進(jìn)行檢查,即Web_find失效。

 

  錯(cuò)誤分析

  由于檢查功能會(huì)消耗一定的資源,因此LoadRunner默認(rèn)關(guān)閉了對文本以及圖像的數(shù)據(jù)執(zhí)行保護(hù)檢查,所以在設(shè)置檢查點(diǎn)后,需要開啟檢查功能。

  解決辦法打開運(yùn)行環(huán)境設(shè)置對話框進(jìn)行設(shè)置,在“Run-time Settings”的“Internet Protocol”選項(xiàng)里的“Perference”中勾選“Check”下的“Enable Image and text check”選項(xiàng)。

   需要注意的是,回放腳本時(shí)出現(xiàn)的錯(cuò)誤有時(shí)是程序自身的原因?qū)е碌?,因此在解決腳本回放問題前必須保證程序錄制出的腳本是正確的。

 

  40.LoadRunner超時(shí)錯(cuò)誤:在錄制Web協(xié)議腳本回放時(shí)超時(shí)情況經(jīng)常出現(xiàn),產(chǎn)生錯(cuò)誤的原因也有很多,解決的方法也不同。

  錯(cuò)誤現(xiàn)象1:Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。

 

  錯(cuò)誤分析:對于HTTP協(xié)議,默認(rèn)的超時(shí)時(shí)間是120秒(可以在LoadRunner中修改),客戶端發(fā)送一個(gè)請求到服務(wù)器端,如果超過120秒服務(wù)器端還沒有返回結(jié)果,則出現(xiàn)超時(shí)錯(cuò)誤。

 

解決辦法:首先在運(yùn)行環(huán)境中對超時(shí)進(jìn)行設(shè)置,默認(rèn)的超時(shí)時(shí)間可以設(shè)置長一些,再設(shè)置多次迭代運(yùn)行,如果還有超時(shí)現(xiàn)象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”區(qū)域中設(shè)置一個(gè)“winlnet replay instead of sockets”選項(xiàng),再回放是否成功。

 

  錯(cuò)誤現(xiàn)象 2:Action.c(81):Continuing after Error -27498: Timed out while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do

 

  錯(cuò)誤分析:這種錯(cuò)誤常常是因?yàn)椴l(fā)壓力過大,服務(wù)器端太繁忙,無法及時(shí)響應(yīng)客戶端的請求而造成的,所以這個(gè)錯(cuò)誤是正?,F(xiàn)象,是壓力過大造成的。

 

  如果壓力很小就出現(xiàn)這個(gè)問題,可能是腳本某個(gè)地方有錯(cuò)誤,要仔細(xì)查看腳本,提示的錯(cuò)誤信息會(huì)定位某個(gè)具體問題發(fā)生的位置。

 

  解決辦法:例如上面的錯(cuò)誤現(xiàn)象問題定位在某個(gè)URL上,需要再次運(yùn)行一下場景,同時(shí)在其他機(jī)器上訪問此URL。如果不能訪問或時(shí)間過長,可能是服務(wù)器或者此應(yīng)用不能支撐如此之大的負(fù)載。分析一下服務(wù)器,最好對其性能進(jìn)行優(yōu)化。

 

如果再次運(yùn)行場景后還有超時(shí)現(xiàn)象,就要在各種圖形中分析一下原因,例如可以查看是否服務(wù)器、DNS、網(wǎng)絡(luò)等方面存在問題。

 

  最后,增加一下運(yùn)行時(shí)的超時(shí)設(shè)置,在“Run-Time Settings”>“Internet Protocol:Preferences”中,單擊“options”,增加“HTTP-request connect timeout” 或者“HTTP-request receive”的值。

 

  41.LoadRunner腳本中出現(xiàn)亂碼:在錄制Web協(xié)議腳本時(shí)出現(xiàn)中文亂碼,在回放腳本時(shí)會(huì)使回放停止在亂碼位置,腳本無法運(yùn)行。

  錯(cuò)誤現(xiàn)象:某個(gè)鏈接或者圖片名稱為中文亂碼,腳本運(yùn)行無法通過。

 

  錯(cuò)誤分析:腳本錄制可能采用的是URL-based script方式,如果程序定義的字符集合采用的是國際標(biāo)準(zhǔn),腳本就會(huì)出現(xiàn)亂碼現(xiàn)象。

 

  解決辦法:重新錄制腳本,在錄制腳本前,打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Advanced”選項(xiàng)里先將“Surport Charset”選中,然后選中支持“UTF-8”的選項(xiàng)。

 

  42.LoadRunner HTTP服務(wù)器狀態(tài)代碼:在錄制Web協(xié)議腳本回放腳本的過程中,會(huì)出現(xiàn)HTTP服務(wù)器狀態(tài)代碼,例如常見的頁面-404錯(cuò)誤提示、-500錯(cuò)誤提示。

  錯(cuò)誤現(xiàn)象1:-404 Not Found服務(wù)器沒有找到與請求URI相符的資源,但還可以繼續(xù)運(yùn)行直到結(jié)束。

 

  錯(cuò)誤分析:此處與請求URI相符的資源在錄制腳本時(shí)已經(jīng)被提交過一次,回放時(shí)不可再重復(fù)提交同樣的資源,而需要更改提交資源的內(nèi)容,每次回放一次腳本都要改變提交的數(shù)據(jù),保證模擬實(shí)際環(huán)境,造成一定的負(fù)載壓力。

 

解決辦法:在出現(xiàn)錯(cuò)誤的位置進(jìn)行腳本關(guān)聯(lián),在必要時(shí)插入相應(yīng)的函數(shù)。

 

  錯(cuò)誤現(xiàn)象2:-500 Internal Server Error服務(wù)器內(nèi)部錯(cuò)誤,腳本運(yùn)行停止。

 

  錯(cuò)誤分析:服務(wù)器碰到了意外情況,使其無法繼續(xù)回應(yīng)請求。

 

  解決辦法:出現(xiàn)此錯(cuò)誤是致命的,說明問題很嚴(yán)重,需要從問題的出現(xiàn)位置進(jìn)行檢查,此時(shí)需要此程序的開發(fā)人員配合來解決,而且產(chǎn)生的原因根據(jù)實(shí)際情況來定,測試人員無法單獨(dú)解決問題,而且應(yīng)該盡快解決,以便于后面的測試。

 

  43.LoadRunner請求無法找到:在錄制Web協(xié)議腳本回放腳本的過程中,會(huì)出現(xiàn)請求無法找到的現(xiàn)象,而導(dǎo)致腳本運(yùn)行停止。

  錯(cuò)誤現(xiàn)象:Action.c(41): Error -27979: Requested form. not found [MsgId: MERR-27979]

 

  Action.c(41): web_submit_form. highest severity level was "ERROR",0 body bytes, 0 header bytes [MsgId: MMSG-27178]"

 

  這時(shí)在tree view中看不到此組件的相關(guān)URL。

 

錯(cuò)誤分析:所選擇的錄制腳本模式不正確,通常情況下,基于瀏覽器的Web應(yīng)用會(huì)使用“HTML-based script”模式來錄制腳本;而沒有基于瀏覽器的Web應(yīng)用、Web應(yīng)用中包含了與服務(wù)器進(jìn)行交互的Java Applet、基于瀏覽器的應(yīng)用中包含了向服務(wù)器進(jìn)行通信的JavaScript/VBScript代碼、基于瀏覽器的應(yīng)用中使用HTTPS安全協(xié)議,這時(shí)則使用“URL-based script”模式進(jìn)行錄制。

 

  解決辦法:打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Internet Protocol”選項(xiàng)里的“Recording”中選擇“Recording Level”為“HTML-based script”,單擊“HTML Advanced”,選擇“Script. Type”為“A script. containing explicit”。然后再選擇使用“URL-based script”模式來錄制腳本。

 

  44.LoadRunner不執(zhí)行檢查方法:在錄制Web協(xié)議腳本中添加了檢查方法Web_find,但是在腳本回放的過程中并沒有執(zhí)行。

  錯(cuò)誤現(xiàn)象:在腳本中插入函數(shù)Web_find,在腳本中設(shè)置文本以及圖像的檢查點(diǎn),但是在回放過程中并沒有對設(shè)置的檢查點(diǎn)進(jìn)行檢查,即Web_find失效。

 

  錯(cuò)誤分析:由于檢查功能會(huì)消耗一定的資源,因此LoadRunner默認(rèn)關(guān)閉了對文本以及圖像的檢查,所以在設(shè)置檢查點(diǎn)后,需要開啟檢查功能。

 

解決辦法:打開運(yùn)行環(huán)境設(shè)置對話框進(jìn)行設(shè)置,在“Run-time Settings”的“Internet Protocol”選項(xiàng)里的“Perference”中勾選“Check”下的“Enable Image and text check”選項(xiàng)。

 

  45.LoadRunner回放Web Services協(xié)議腳本錯(cuò)誤:LoadRunner 8.0版本在錄制Web Services協(xié)議的腳本時(shí)正常,但在回放時(shí)會(huì)出現(xiàn)錯(cuò)誤,提示停止腳本運(yùn)行。

  錯(cuò)誤現(xiàn)象:利用LoadRunner 8.0版本來錄制Web Services協(xié)議的腳本沒有任何錯(cuò)誤提示,回放腳本時(shí)會(huì)出現(xiàn)如下錯(cuò)誤提示“Error:server returned an incorrectly formatted SOAP response”。

 

  錯(cuò)誤分析:出現(xiàn)此錯(cuò)誤的原因是LoadRunner8.0在錄制Web Services協(xié)議的腳本時(shí)存在一個(gè)缺陷:如果服務(wù)器的操作系統(tǒng)是中文的,VuGen會(huì)自動(dòng)將WSDL文件的頭改為,所以才會(huì)有此錯(cuò)誤提示。

 

解決辦法:下載兩個(gè)補(bǔ)丁,分別為“LR80WebServicesFPI_setup.exe”和“l(fā)runner_web_ services_patch_1.exe”安裝上即可。

loadrunner自學(xué)以及問題解答1



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI