初識Loadrunner


一. socket腳本

lrs_startup(257);

lrs_create_socket("socket1", "TCP", "RemoteHost=192.168.86.239:9503", LrsLastArg);

lrs_set_recv_timeout(120, 0);

lrs_set_socket_options("socket1", LRS_NO_DELAY, "TRUE");

 

lrs_send("socket1", "buf1", LrsLastArg);

lrs_receive("socket1", "rbuf1", LrsLastArg);

 

lrs_close_socket("socket1");

lrs_cleanup();

 

二. Loadrunner函數大全

1258個函數

http://files.cnblogs.com/qingxia/LoadRunner%E5%87%BD%E6%95%B0%E5%A4%A7%E5%85%A8%E4%B9%8B%E4%B8%AD%E6%96%87%E8%A7%A3%E9%87%8A.pdf

 

三. 調試優化腳本

   1.設置斷點
   
    相信大家都不陌生,LR也是可以設置斷點的,在需要設置斷點的語句前按F9快捷鍵,斷點就設置好了,程序運行到斷點語句后會暫停,這時我們可以用F10單步調試程序。
   
    2.打開EXtended Log
   
    只是設置斷點是不夠的,我們還得知道具體發生了什么事情,Log告訴了我們一切,默認的Log是standard Log,這時遠遠不夠的。我們要extended log,打開路徑為runtime settings-->log-->extended log.把parameter substitution和data returned by server和advanced trace大家根據需要勾選吧。

    3.注釋掉多余的語句

    很多回放時出錯的腳本都是因為多余的語句。因為LR在錄制的時候,LR生成的語句很多不是我們想要的。不要過分相信LR了,它生成的語句也是有很多BUG的。

 

四. log文件在哪看

(1)在vgen中,我們必須寫輸出函數輸出信息,將我們所想要了解的信息用函數輸出,主要有這么幾個函數輸出信息:lr_output_message,lr_error_message,lr_log_message.這些函數請參閱 help-->function reference.
   
    其次,我們要在Vuser->runtime settings->log中設置,勾選always send messages,這樣我們才能寫出Log,在我們的腳本所在的文件夾中,有兩個文件很重要,mdrv.log.txt和output.txt文件,lr_log_message只會把信息輸到mdrv.log文件中,而lr_output_message則會寫進以上兩個文件。    

(2)在controller中,很多朋友都會想知道多次迭代,參數是否正確的導入了呢,我們依舊查看log,我們在執行結束后,查看結果目錄的Log文件夾,如果是負載生成器運行的話,則在tmp目錄。不過,還想提醒朋友們,在controller我們也要設置runtime settings才行,而且每個用戶組的runtime settings,設置的方法是:在controller的Run標簽頁中,Vusers...->Details...->runtime settings按鈕,點擊它,設置的方法與在vgen中一樣的。

 

五. 網例 —— 數據包亂碼

【說明:】今天用socket協議錄制腳本后,發現數據包中都是亂碼。經過自己的琢磨,最終把所有亂碼都給格式化成十六進制。感觸最深的就是只要懂的字符類型長度就能真正的理解清楚loadrunner中發送的數據包內容是啥。然后就可以完全自己靈活控制數據包的值和數據包的操作。

1、基礎知識
(1)需要知道所測試軟件中的包結構。
(2)知道二進制流;
(3)知道Big Endian 與 Little Endian
(4)知道字符類型的長度
(5)知道:當兩台采用不同字節序的主機通信時,在傳輸數據之前雙方都必須 對其進行字節序轉換,轉為網絡字節序后才能進行傳輸.

2、實例說明:

如某包體中有兩個值,定義如下:

struct msgHead
{
int id,
char name
}

假設我們要發送的包體就包括這兩個字段。並且id=81001 ,name=A

那么在loadrunner的data.ws文件中或者自己自定義的數據包中的值分別如下:

/*********************************
send buf0   5

"\x69\x3C\x01\x00"//說明:十進制:81001  十六進制:13C69 按照高低位存儲:69 3c 01 00

"\x41"   //說明: ascii碼A 對應十進制是65 ,65轉化成十六進制是41  
*********************************/

3、注意

通過上面的例子,不管你錄制后的數據包顯示什么樣的亂碼。

都可以用以上方法,根據包結構中定義的長度,一個個給解析出來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM