LoadRunner測試介面效能
用LoadRunner測試介面效能
方法一:通過wsdl地址呼叫介面
1、開啟LoadRunner點選左上角選擇新建指令碼,在彈出視窗中選擇web service協議,然後點選create按鈕
2、點選 Manager services(注意:點選前右側視窗指令碼的游標必須在“return();”之前),在彈出視窗中點選Import,在彈出視窗內選擇“url”並填入要測試介面對應的地址,在地址的後面加上“?wsdl”,然後點選Import
3、匯入url成功後會有相應的資訊出現,然後點選“ok”
4、點選“Add service call”,然後在彈出的視窗中Opertion
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、匯入在指令碼中貼上上我們的請求發現有“:”、“}
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;
}
我們會發現第二種情況的指令碼使用“”把請求中的“{”、“[”進行了處理,而“””則用“\”來進行了轉義處理,處理後腳本中的內容都被識別,並變為了藍色字型顯示。
對於測試場景構建和結果分析沒有講解到,因為場景構建是根據需求而言的,而結果分析包含內容太多,且難度也是最大,以後大家再一起探索。