LoadRunner WebService

LoadRunner WebService

上一篇 / 下一篇  2011-05-05 12:30:43 / 個人分類:轉帖

 Loadrunner 9.5_webservice(SOAP)性能測試收藏
300) { text = text + "\r\n\n本文來自CSDN博客,轉載請標明出處:" + location.href; clipboardData.setData("text", text); } }, 100); } }學習一天時間,把過程記錄下來,有些是前輩的資料,有些是自己的總結,如果有什麼不對的地方,希望大家指正,QQ:408442756

 

 

WebService定義:

Webservice是一種新的使用基於XML標準和協議來交換信息的WEB應用程序。是基於SOAP(簡單對象訪問協議)消息的應該協議,只是爲WEB頁面或可執行程序提供編程接口。

個人理解:就是webservice服務與客戶端的數據交流是通過XML來實現,XML文件就是接口,客戶端發送XML文件的請求,XML文件中有要調要後臺的方法和傳送的數據等信息。服務器返回結果到客戶端也是XML文件,

 

注:基於Webservice構建的應該系統稱之爲SOA(面向服務架構),系統性能取絕於服務組件的單獨性能以及接口性能。

 

名司解釋

在構建和使用Web Service,主要用到以下幾個關鍵的技術和規則:

  1.XML:描述數據的標準方法.

  2.SOAP:表示信息交換的協議.

  3.WSDL:Web服務描述語言.

4.UDDI(Universal Description, Discovery and Integration):通用描述、發現與集成,它是一種獨立於平臺的,基於XML語言的用於在互聯網上描述商務的協議。

 

Loadrunner測試webservice測試一般步聚是:

 

(1)    選擇Loadrunnerwebservice協議

(2)    導入WSDL個人認爲是讓LRWebservice建立連接,如果導入成功後,在Operations欄中可以看到webservice接口提供的方法

特別注意:如果webservierasp.net開發以“*.asmx”結尾的路徑。要加上“?wsdl”才能成功。如:http://192.168.0.30/securityws/SecurityWebService/SecurityWS.asmx?wsdl

總之,應該是以wsdl結尾才正常吧

(3)    Webservice導入LR成功後,我們可以創建兩種請求中的任意一個,

第一種是:“add service call,

第二種是.Import SOAP”,

 

(4)    創建相關請求,生成代碼,並參數化。

(5)    打印響應信息功能,調試代碼,直到成功。

如:lr_message(lr_eval_string("Response XML is\n{response}"));

如上參見:http://blog.testsautomation.com/2009/07/web-services-testing-in-loadrunner/

 

LR WEBSERVICE性能測試

 

LRWebService虛擬用戶協議中支持兩種方式測試WebService,一種是通過“Add Service Call”的方式,一種是Import SOAP的方式。

Import SOAP的方式需要導入定義好的XML請求文件。

取到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 strin

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

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

參見:http://blog.testsautomation.com/2009/05/validating-web-service-response-with-xpath/

 

實際上,使用LR還有一種測試WebService的方式,就是採用HTTP協議,因爲WebService是構建在HTTP協議之上的,因此可以WEB虛擬用戶協議中的web_custom_request來構造WebService的請求。

 

Action()

{

   web_reg_save_param("Response","LB=", "RB=", LAST);

   web_add_header("SOAPAction", "SampleMethod");

   lr_start_transaction("REQ");

   web_custom_request("Sample_Request","Method=POST",

         "Mode=HTML",

         "RecContentType=text/xml",

         "EncType=text/xml; charset=utf-8",

         "URL=http://example.com:1234/sample/",

         "Body=<Envelope xmlns=\"http://example.com/sample\">\n"

               "   <Header/>\n"

               "   <Body>\n"

               "      <price><id>001</id></price>\n"

               "   </Body>\n"

               "</Envelope>",

   "LAST");

   lr_end_transaction("REQ", LR_AUTO);

   lr_output_message("Response is : %s\n", lr_eval_string("{Response}"));

   return 0;

}

 

參見:http://blog.testsautomation.com/2009/01/web-services-performance-using-loadrunner/

 

學習LR測試WebService時,如果沒有現成的WebService,又懶得寫或不會寫,可以用Parasoft網站的WSDL來試驗:

http://soatest.parasoft.com/store-01.wsdl

 

示例代碼                    

1. <books>

2.   <book>

3.       <id>123</id>

4.       <author>John Smith</author>

5.       <title>Working with Legacy code</title>

6.       <publisher>Microsoft</publisher>

7.   </book>

8. </books>

  1. Action()
  2. {
  3.      web_add_header("SOAPAction","\"CallMe\"");
  4.      lr_start_transaction("AUTHOR");
  5.      soap_request("StepName=Sample Soap Request",
  6.        "ExpectedResponse=ANY",
  7.        "URL=http://foo.com/api",
  8.        "SOAPEnvelope= "
  9.        "<?xml version=\"1.0\"encoding=\"utf-8\"?>"
  10.        "<soap:Envelope "
  11.        "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
  12.        "<soap:Body soap:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">"
  13.        "<GetBookDetails>"
  14.        "<idValue>123</idValue>"
  15.        "</GetBookDetails>"
  16.        "</soap:Body>"
  17.        "</soap:Envelope>",
  18.        "Snapshot=t765765765.inf",
  19.        "ResponseParam=Response_Xml",LAST);
  20.      lr_xml_get_values("XML={Response_Xml}",
  21.          "ValueParam=Author_Name",
  22.          "Query=/books/book/author",
  23.           LAST);
  24.      lr_output_message(lr_eval_string("Author is = {Author_Name}"));
  25.      if(strcmp(lr_eval_string("{Author_Name}"),"John Smith"<SPAN style="FONT

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