loadrunner必用函式web_reg_save_param獲取多個符合邊界值條件的使用方法

凌.風發表於2015-01-09

  在做loadrunner效能指令碼開發時,常常碰見一個需求:符合web_reg_save_param函式中定義的左右邊界值的值有多個,而我們的常規寫法預設返回的是符合條件的第一個,而有時我們卻需要使用後面的值,下面來進行介紹,如何獲取多個,並且如何使用這些獲取到的值。

  首先介紹一般我們經常使用的寫法:

    web_reg_save_param("paramName",

                "LB=左邊界",

                "RB=右邊界",

                LAST);

 


  這種寫法儲存到paramName中的值為返回符合條件的第一個值。

  那麼如果我們要獲取到所有符合條件的值,就應該在條件中加入ORD=ALL這樣的一個請求引數。寫法如下:

    web_reg_save_param("paramName",

                "LB=左邊界",

                "RB=右邊界",

                "ORD=ALL",//來指定獲取所有符合條件的值。

                "Savelen=50",//這個引數用來限制獲取字元的長度。這個部分可以不加。
                        //如果加了,那麼就不進行捕捉檢查了,所以會導致長度寫少了就會進行擷取,有可能導致資料丟失。

                LAST);

 



  如果我們有4個符合條件的值,那麼程式執行後,在log中列印出來的結果是:

        Notify: Saving Parameter "paramName_1 = aaa"

        Notify: Saving Parameter "paramName_2 = bbb"

        Notify: Saving Parameter "paramName_3 = ccc"

        Notify: Saving Parameter "paramName_4 = ddd"

        Notify: Saving Parameter "paramName_count = 4"

 



  那麼我們如果拿到這些值並且使用它們呢,其實很簡單,具體實現如下:

    由於我們已經知道了引數的名稱,那麼可以先簡單列印一下驗證是否正確:

            lr_output_message("%s",lr_eval_string("{paramName_2}"));

    接下來,我們可以進行迴圈取出所有:
            
 

            int mark=1;//陣列角標標記。
            char markVar[10];//拼接陣列變數key值
            char markValue[10];//儲存資料變數key

            //關聯函式
            web_reg_save_param("paramName",

                        "LB=左邊界",

                        "RB=右邊界",

                        "ORD=ALL",//來指定獲取所有符合條件的值。

                        LAST);

            //這裡是你的請求函式
                web_submit_data

            //迴圈取出所有值
            for(;mark<=atoi(lr_eval_string("{paramName_count}"));mark++){

                sprintf(markVar, "{paramName_%d}",mark);
                    //將mark變數拼接到markVar中,

                 sprintf(markValue, "Value=%s", lr_eval_string(markVar));
                    //取出markVar中的值,儲存到markValue中,計算後markValue的值就是被關聯後要取出來的值
          //值已經取到,你想要做啥,在這裡就可以隨便做啦!!這裡列印一下! lr_message("%s", markValue); }

 


值已經在markValue中了,怎麼玩就隨你啦!!!

相關文章