loadrunner 學習筆記–Web Services

來源:互聯網
上載者:User

使用loadrunner測試Web Services的程式大致可以使用兩種方法,分別為web_service_call()和soap_request()。兩者的使用很相識,我們錄製時都使用Web Services的協議。下面分別介紹一下使用方法:

一、web_service_call()使用步驟如下:

1、儲存WSDL檔案。在IE中開啟Web Services的地址,並加上“?wsdl”。比如:“http://192.168.4.112:8082/EDASer ... neService.asmx?wsdl”。然後將開啟的XML檔案另存新檔副檔名為".wsdl"的檔案。如

2、在loadrunner中匯入剛才儲存的WSDL檔案,

3、增加調用函數,

4、完成後將自動產生以下代碼。

        web_service_call( "StepName=RunService_101",
                "SOAPMethod=ServiceEngineService|ServiceEngineServiceSoap|RunService",
                "ResponseParam=response",
                "Service=ServiceEngineService",
                "ExpectedResponse=SoapResult",
                "Snapshot=t1273650512.inf",
                BEGIN_ARGUMENTS,
                "xml:inDataBuf="
                        "<inDataBuf>"
                                "<serviceName>2307</serviceName>"
                                "<serviceType>3</serviceType>"
                                "<pageNo></pageNo>"
                                "<sessionID></sessionID>"
                                "<xmlData><DataSet></xmlData>"
                        "</inDataBuf>",
                END_ARGUMENTS,
                BEGIN_RESULT,
                "RunServiceResult=Param_RunServiceResult",
                END_RESULT,
                LAST);

        lr_log_message("result = %s", lr_eval_string("{Param_RunServiceResult}")); --可以輸出傳回值

  

二、soap_request(),使用步驟如下:

1、定義SOAP REQUEST FILE。在IE中開啟Web Services的頁面,比如:http://192.168.4.112:8082/EDASer ... .asmx?op=RunService。IE中將顯示這個檔案的資訊,複製儲存為XML檔案。

2、匯入剛才定義的XML檔案。

3、匯入後自動以下代碼。

        soap_request("StepName=SOAP Request",                                                                               
                "URL=http://192.168.4.112:8082/EDAService/ServiceEngineService.asmx",                                                                               
                "SOAPEnvelope="
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                "<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>"
                                "<RunService xmlns=\"http://192.168.4.112/\">"
                                        "<inDataBuf>"
                                                "<serviceName>2307</serviceName>"  --入參需要改成自己需要的值
                                                "<serviceType>3</serviceType>"          --入參需要改成自己需要的值
                                                "<pageNo></pageNo>"                     
                                                "<sessionID></sessionID>"
                                                "<xmlData></xmlData>"
                                        "</inDataBuf>"
                                "</RunService>"
                        "</soap12:Body>"
                "</soap12:Envelope>",                                                                               
                "SOAPAction=RunService",                                                                               
                "ResponseParam=response",                                                                               
                "Snapshot=t1273722181.inf",                                                                           
                LAST);

4、在剛才自動產生的程式碼前,增加header資訊。需要增加的內容見步驟1裡的。“Content-Length”不需要加。本例中我們增加的代碼為:

        web_add_header("POST",
                "/EDAService/ServiceEngineService.asmx HTTP/1.1");
        web_add_header("Host",
                "192.168.4.112");
        web_add_header("Content-Type",
                "application/soap+xml; charset=utf-8");

這樣2種方式就介紹完了。

補充說明:

1、如果入參的字串需要使用“<”或“>”,則必須傳遞“& l t ;”或“& g t ;(這幾個字元需要去空格)

2、如果WEB SERVICES返回的是XML檔案,則可以使用lr_xml_get_values來擷取。比如:

    int  NumOfValues;
    NumOfValues= lr_xml_get_values("XML={response}",  --response為soap_request函數的傳回值
          "ValueParam=OutputParam",                              --定義lr_xml_get_values的傳回值                   
          "Query=/soap:Envelope/soap:Body/HelloWorldResponse/HelloWorldResult",    --XML的節點名稱,需要包含父節點的名稱,並用"/"隔開。
          "SelectAll=yes", LAST);

    for ( i = 0; i < NumOfValues; i++) { /* Print multiple values of OutputParam */          --輸出剛才擷取的XML的值 

          sprintf (buf, "{OutputParam_%d}",i+1);
          lr_output_message("result = %s",lr_eval_string(buf));

                  re = strncmp(lr_eval_string(buf),string1,85);
                  lr_output_message("return : %d",re);
    }

3、可以切換到TREE介面查看我們定義的函數的請求,以及伺服器的傳回值。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.