loadrunner 測試webservice之二:通過soap_reuest

    之前文章寫了一半,保存草稿後,最後發現全沒有了,只好重新來寫,這次也就不那麼囉嗦了,主要把測試的步驟分享下。

    LoadRunner測試webservice共有3種方式:1、通過web_service_call函數,也就是導入wsdl文件或者URL的方式;2、通過soap_request函數,通過導入xml文件來實現;3、通過http協議來手寫腳本來實現。

    第一種可以訪問:http://gungun.blog.51cto.com/9585287/1591100

    今天的重點是第二種,通過Import SOAP來導入xml文件,從而實現對webservice接口的調用。

下面以大家都熟知的天氣預報爲例:

    天氣預報的接口URL:http://webservice.webxml.com.cn/webservices/weatherwebservice.asmx

調用getWeatherbyCityName方法。

打開http://webservice.webxml.com.cn/webservices/weatherwebservice.asmx?op=getWeatherbyCityName 頁面,如下圖所示:

 

wKioL1SRl1bB8qmHAAMaljCd68Q872.jpg 

 

將下面紅框的部分保存到xml文件中,導入剛纔的XML文件,如下圖所示:

wKiom1SRmNWjWRGaAAKdAQc6_YY637.jpg

 

導入後自動生成以下代碼:

soap_request("StepName=SOAP Request",          
  "URL=http://webservice.webxml.com.cn/webservices/weatherwebservice.asmx",          
  "SOAPEnvelope="
  "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"
   "<soap12:Body>"
    "<getWeatherbyCityName xmlns=\"http://WebXml.com.cn/\">"
     "<theCityName>string</theCityName>"                         //這裏填寫城市的名字
    "</getWeatherbyCityName>"
   "</soap12:Body>"
  "</soap12:Envelope>",          
  "SOAPAction=getWeatherbyCityName",          
  "ResponseParam=response",          
  "Snapshot=t1418827945.inf",            
  LAST);

 

然後在剛纔生成的代碼前,增加header信息。需要增加的內容見第一個圖中,其中,“Content-Length”不需要加。

在該例子中需要增加的代碼如下:

web_add_header("POST",
       "/WebServices/WeatherWebService.asmx HTTP/1.1");
 web_add_header("Host",
       "webservice.webxml.com.cn");
 web_add_header("Content-Type",
       "application/soap+xml; charset=utf-8");                               //這裏注意和截圖裏有些不同
 web_add_header("SOAPAction",
       "\"http://WebXml.com.cn/getWeatherbyCityName\"");

 

這樣簡單的通過soap_request函數測試Webservice的方式就完成了。

 

取到WebService返回的XML數據後,可以使用XPath的方式驗證數據,LR提供了幾個處理XML的函數:

lr_xml_get_values()  //Retrieves values of XML elements found by a query

lr_xml_set_values()  //Sets the values of XML elements found by a query

lr_xml_extract()  //Extracts XML string fragments from an XML string

lr_xml_delete()  //Deletes fragments from an XML string

lr_xml_replace()  //Replaces fragments of an XML string

lr_xml_insert()  //Inserts a new XML fragment into an XML string

lr_xml_find()  //Verifies that XML values are returned by a query

lr_xml_transform()  //Applies Extensible Stylesheet Language (XSL) Transformation to XML data

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章