1. 程式人生 > >LoadRunner測試介面效能

LoadRunner測試介面效能

LoadRunner測試介面效能

方法一:通過wsdl地址呼叫介面

1、開啟LoadRunner點選左上角選擇新建指令碼,在彈出視窗中選擇web service協議,然後點選create按鈕

2、點選 Manager services(注意:點選前右側視窗指令碼的游標必須在“return();”之前),在彈出視窗中點選Import,在彈出視窗內選擇“url”並填入要測試介面對應的地址,在地址的後面加上“?wsdl”,然後點選Import

3、匯入url成功後會有相應的資訊出現,然後點選“ok

4、點選“Add service call”,然後在彈出的視窗中Opertion

對應的下拉列表中選擇要測試的方法,在左側選擇Import Arguments,然後在右側value中輸入對應的請求(也可以隨便輸入,下面可以再指令碼中修改)。

5、在視窗左側選擇out,然後在右側勾選“Save returned...”,在parameter對應的內容可以修改,可以保持不變,其實就是一個變數,用來儲存輸出的值。

6、完成上述操作後自動生成如下指令碼,標紅的地方為剛才隨意輸入的請求內容,現在用合法的請求替換掉

7、在指令碼中替換請求內容後除錯下指令碼看是否有錯誤,如果指令碼正常,那就設計執行場景,進行後續的負載測試工作。

方法二:匯入XML檔案

先看下面開發人員給的對應介面的請求內容:

{

    "sysId": "1",

    "userName": "root",

    "passWord": "root321",

    "queryArray": [

            {

            "fltNum": "QW9977",

            "fltDate": "2014-04-12",

            "orig":"SZX"

            }

       ]

}

如上所示,我們從開發人員那裡獲得的請求內容為js格式的,不是xml格式的,此時我們再用方法一來試試:

1、匯入在指令碼中貼上上我們的請求發現有“:”、“}

”等都沒有變成藍色,而是黑色顯示,這說明這些內容是LoadRunner未識別的,我們執行一下發現日誌中也有很多日誌報出,這是什麼原因呢?因為LoadRunner指令碼時遵循的C語言的語法規則,而這些符號在C語言中是有定義的,我們要想使用必須新增轉義字元使他們轉義。一一修改又太麻煩,所以介紹使用LoadRunner測試介面的第二種方法:匯入xml檔案法。

2、在soapUI中新增js請求,除錯指令碼看是否通過

3、指令碼除錯通過後將指令碼另存為xml檔案

4、點選Import SOAP,點選“...”按鈕選擇剛才從soapUI中另存出來的xml檔案

5、然後視窗中內容變多,在URL中貼上要測試介面對應的連結,SOAP Action中和開發人員溝通看是否有對應的Action,沒有就不用填寫,Response paramenter對應的內容隨便填寫,

是為了給服務請響應的內容定義一個儲存的變數。

6、通過以上操作點選ok後出現如下指令碼,執行後通過,我們可以繼續後續的效能測試工作。

我們仔細對比一下這兩種情況下指令碼的變化:

呼叫介面後直接貼上請求的指令碼:

Action()

{

web_service_call( "StepName=getTotalPassAndTotalAcPassAndTotalLuagg_102",

"SOAPMethod=FlightInfoAndVipPassInfoQueryWebService|FlightInfoAndVipPassInfoQueryWebServiceHttpPort|

getTotalPassAndTotalAcPassAndTotalLuagg",

"ResponseParam=response",

"Service=FlightInfoAndVipPassInfoQueryWebService",

"ExpectedResponse=SoapResult",

"Snapshot=t1405582936.inf",

BEGIN_ARGUMENTS,

"in0={

"sysId": "1",

"userName": "root",

"passWord": "root321",

"queryArray": [

            {

        "fltNum": "QW9977",

         "fltDate": "2014-04-12",

            "orig":"SZX"

            }

        ]

}",

END_ARGUMENTS,

BEGIN_RESULT,

END_RESULT,

LAST);

return 0;

}

匯入xml檔案後生成的指令碼:

Action()

{

soap_request("StepName=SOAP Request",

"URL=http://192.168.0.125:8090/qwsis/services/FlightInfoAndVipPassInfoQueryWebService?wsdl",

"SOAPEnvelope="

"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=

\"http://webservice.sasis.com\">"

"<soapenv:Header></soapenv:Header>"

"<soapenv:Body>"

"<web:getPassengerMobiles>"

"<web:in0>"

"         {"

"    \"sysId\": \"1\","

"    \"userName\": \"root\","

"    \"passWord\": \"root321\","

"    \"queryArray\": ["

"            {"

"            \"fltNum\": \"QW9977\","

"            \"fltDate\": \"2014-04-12\","

"            \"orig\":\"SZX\""

"            }"

"       ]"

"}"

"         </web:in0>"

"</web:getPassengerMobiles>"

"</soapenv:Body>"

"</soapenv:Envelope>",

"SOAPAction=",

"ResponseParam=response",

"Snapshot=t1405565685.inf",     

LAST);

return 0;

}

我們會發現第二種情況的指令碼使用“”把請求中的“{”、“[”進行了處理,而“””則用“\”來進行了轉義處理,處理後腳本中的內容都被識別,並變為了藍色字型顯示。

對於測試場景構建和結果分析沒有講解到,因為場景構建是根據需求而言的,而結果分析包含內容太多,且難度也是最大,以後大家再一起探索。