<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    LoadRunner—win/websockets通信中獲取數據

     過socket進行通信的分布式應用是比較常見的,包括winsocket和websocket,LR支持這兩個協議。
      在使用LR回放socket協議的腳本時,可能會經常需要獲取服務器返回的數據,語句格式如下:
    lrs_create_socket("socket0", "TCP", "RemoteHost=1.2.3.4:12345",  LrsLastArg);
    lrs_send("socket0", "buf0", LrsLastArg);
    lrs_receive("socket0", "buf1", LrsLastArg);
      很明顯,socket0是通信所用套接字,buf0是LR將要發送給服務器的內容(來自用戶行為),buf1則接收服務器返回。
      我們經常需要通過提取buf1中的內容,并適當的加一些斷定語言,來判斷這個通信操作有沒有獲取期望的數據。經常使用函數lrs_get_last_received_buffer,如下:
      lrs_get_last_received_buffer("socket0", &ActualBuffer, &NumberOfBytes);
      這樣就把lrs_receive接收到的數據保存在了內存中(指針ActualBuffer指向的一個有LR自動動態分配的內存塊),并返回數據長度(保存在NumberOfBytes中)。
      然后就可以像使用用戶自定義的數組一樣使用該緩沖區,如ActualBuffer[0]。需要注意的是,使用完成后需要手動釋放ActualBuffer指向的內存,通過調用lrs_free_buffer。
      下面是一個簡單示例,在處理服務器返回數據時,我們將其作為char數組處理,經過驗證這是沒問題的。
      完整代碼:
    vuser_init.c
    #include "lrs.h"
    vuser_init()
    {
    lrs_startup(257);
    return 0;
    }
    Action.c

    /*********************************************************************
    * Created by Mercury Interactive Windows Sockets Recorder
    *
    * Created on: Tue Nov 12 14:51:33
    *********************************************************************/
    #include "lrs.h"
    Action()
    {
    int NumberOfBytes=0;
    char *ActualBuffer;
    unsigned char num1,num2,num3,num4;
    unsigned int jifen =0;
    int dj =0 ;
    char * tmp;
    int i=0;
    lrs_create_socket("socket0", "TCP", "RemoteHost=10.15.107.12:12345",  LrsLastArg);
    lrs_send("socket0", "buf0", LrsLastArg);
    lrs_receive("socket0", "buf1", LrsLastArg);
    /* Get the last received buffer and its size. */
    lrs_get_last_received_buffer("socket0", &ActualBuffer, &NumberOfBytes);
    //7B 9C 0B 00 00 0F 00 02 6C 00 00 00 08 00 90 5F 01 00 0D 00 00 00,從第偏移量17取數,直到14,作為積分;偏移量18為等級。
    lr_output_message("The last buffer's size is:%d/n", NumberOfBytes);
    num1 = ActualBuffer[17];  //最高位
    num2 = ActualBuffer[16];
    num3 = ActualBuffer[15];
    num4 = ActualBuffer[14];  //最低位
    lr_output_message("num1 = %d,num2 = %d,num3 = %d,num4 = %u\n",num1,num2,num3,num4);
    jifen = (num1 / 16 ) * 268435456 + (num1 % 16)* 16777216 + (num2 / 16)* 1048576 +(num2 % 16) * 65536 +(num3 / 16) * 4096 +  (num3 % 16 ) * 256 +(num4 / 16)* 16 + (num4 % 16) * 1; //注意00 90 5F 01是16進制格式,其中01(num1)是最高位。
    dj=(int)ActualBuffer[18];
    lrs_free_buffer(ActualBuffer);
    lr_output_message("jifen = %d\n",jifen );
    lr_output_message("dj = %d\n",dj );
    lrs_close_socket("socket0");
    return 0;
    }
    vuser_end.c
    [cpp] view plaincopy
    #include "lrs.h"
    vuser_end()
    {
    lrs_cleanup();
    return 0;
    }

    posted on 2013-12-10 10:53 順其自然EVO 閱讀(1179) 評論(0)  編輯  收藏 所屬分類: loadrunner

    <2013年12月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 69精品免费视频| a级毛片黄免费a级毛片| 国产免费AV片在线播放唯爱网| 亚洲成人动漫在线| 小草在线看片免费人成视久网| 亚洲国产精品一区二区第一页| 中文字幕免费在线看线人动作大片| 亚洲国产小视频精品久久久三级| 午夜免费国产体验区免费的 | 亚洲AV无码久久久久网站蜜桃| www视频在线观看免费| 亚洲伊人色一综合网| 成人免费无码大片a毛片软件| 亚洲日韩精品无码专区加勒比☆| 在线免费观看污网站| 国产亚洲精品美女2020久久| 亚洲精品国产精品乱码不卡 | 亚洲av片不卡无码久久| 美女视频黄的全免费视频网站| 中文无码亚洲精品字幕| 无码国模国产在线观看免费| 一级毛片a女人刺激视频免费| 久久青青成人亚洲精品| 免费福利网站在线观看| 亚洲av永久无码天堂网| 久久久久亚洲AV成人网人人网站| 日本在线看片免费人成视频1000 | 亚洲免费观看网站| 日韩免费观看的一级毛片| 国产一区二区三区免费观在线| 亚洲视频免费一区| 日产乱码一卡二卡三免费| a级精品九九九大片免费看| 亚洲av无码专区在线| 亚洲精品国产精品乱码不卡| 1000部禁片黄的免费看| 国产精品亚洲AV三区| 亚洲bt加勒比一区二区| 全免费a级毛片免费看无码| 国产一级一毛免费黄片| 亚洲欧美一区二区三区日产|