qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          LoadRunner:關(guān)聯(lián)HTTP請求

          本例通過一個使用HTTP/HTML協(xié)議發(fā)送、獲取服務(wù)器數(shù)據(jù)的vuser腳本,分析LoadRunner如何進(jìn)行HTTP關(guān)聯(lián)。

            下面這個例子包括兩個事務(wù):上傳數(shù)據(jù)到服務(wù)器、下載服務(wù)器數(shù)據(jù),通過關(guān)聯(lián)將服務(wù)器返回的數(shù)據(jù)保存下來,方便就行分析。

            1、定義變量

            在Action最前面定義變量,否則會報錯。

            代碼:

           merc_timer_handle_t timer;
           double wasteTime=0;
                  char *ActualBuffer;
           int NumberOfBytes;
           char *tmp;
           char tmpcode[24]={0};
           //iterator
           int i=0;
           int j = 0;
           int m = 0;

           //mobile
           char codearray[100][24]={0}; //存儲mobile下載的代碼,每個代碼暫設(shè)為24字節(jié)長
           char* code;
           short codelen;        //存儲mobile下載的代碼的長度
           short codenum;        //總代碼個數(shù)
           int retUL = -1;  //上傳返回值
           //int lenUL = 0;   //上傳返回長度
           int retDL = -1;  //下載返回值
           int lenDL = 0;   //下載返回長度
           int flag = 0;    //符合的code總數(shù)

           //pc
           //char retcodeUL[10]={0};
           //char retcodeDL[2048]={0};
           char* pcretUL;
           char pccode[24]={0};
           char pccodearray[1024][24]={0};
           short pccodelen=0;

            2、保存服務(wù)返回數(shù)據(jù)

            在定義變量或常量后,開始定義事務(wù)、進(jìn)行關(guān)聯(lián)。

            代碼:

           web_set_max_html_param_len("2000000");//設(shè)置頁面接收最大的字節(jié)數(shù),該設(shè)置應(yīng)大于下載文件的大小

           //使用關(guān)聯(lián)函數(shù)獲取下載文件的內(nèi)容,在這里不定義左右邊界,獲得服務(wù)器響應(yīng)的所有內(nèi)容 
           web_reg_save_param("filecontent",
             "LB=",
             "RB=",
             "Search=BODY",
             LAST);
           lr_rendezvous("Re_UL_PC");

           lr_start_transaction("UL_PC");
           //pc上傳
           web_url("create",
            "URL=http://10.15.107.112:9089/sys/userdata/create?userid={userid}&content={'group0':[{'data':'{code1}.stk','time':1376904823299640},{'data':'{code2}.stk','time':1376904823299647},{'data':'{code3}.stk','time':1376904823299651},{'data':'{code4}.stk','time':1376904836969909}]}&fileName=mystock.json&rawtype=true&Accept=json",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t1.inf",
            "Mode=HTTP",
            LAST);

           pcretUL = lr_eval_string("{filecontent}");
           if(NULL != strcmp(pcretUL,"{\"state\":1"))
            lr_end_transaction("UL_PC",LR_PASS);
           else
            lr_end_transaction("UL_PC",LR_FAIL);

            在上述代碼中,web_reg_save_param函數(shù)起到了關(guān)聯(lián)作用,必須在調(diào)用web_url之前使用,它的作用類似一個注冊機(jī)制。調(diào)用了語句web_reg_save_param("filecontent",  "LB=",  "RB=",  "Search=BODY",  LAST);之后,LoadRunner自動將服務(wù)器返回的HTTP數(shù)據(jù)的BODY中左右邊界(LB左邊界,RB右邊界)之內(nèi)的內(nèi)容保存到變量filecontent中。具體參數(shù)說明請參考幫助文檔。

            filecontent由系統(tǒng)自動分配,我們只需要給它傳個名字,以后可以直接使用該變量。pcretUL = lr_eval_string("{filecontent}");將變量filecontent的內(nèi)容提取賦值給我們自定義變量pcretUL。注意調(diào)用形式。

            獲取到服務(wù)器數(shù)據(jù)后,通過添加自己的判斷邏輯,來斷定事務(wù)成功或失敗。

          posted on 2013-09-27 10:40 順其自然EVO 閱讀(1052) 評論(0)  編輯  收藏 所屬分類: loadrunner

          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 湘潭县| 蒙城县| 双辽市| 安溪县| 休宁县| 尚义县| 边坝县| 武宣县| 宁蒗| 正镶白旗| 简阳市| 廉江市| 南汇区| 洛川县| 辽中县| 永昌县| 九江县| 宁强县| 朔州市| 曲靖市| 靖远县| 东源县| 嘉荫县| 成安县| 慈溪市| 兴山县| 民勤县| 秀山| 申扎县| 阳高县| 丰镇市| 文水县| 阜新| 斗六市| 右玉县| 江川县| 宿州市| 东宁县| 准格尔旗| 轮台县| 桑日县|