天天看點

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

WebService是一種革命性的分布式計算技術,本質上就是網絡上可用的API,可以直接在網絡環境調用的方法。

WebService常用的架構有axis、xfire、cxf等。

WebService釋出後,其服務是封裝在一個wsdl(Web Services Description Language,Web服務描述語言)檔案中,用戶端發請求主要是向釋出好的wsdl位址以SOAP方式發請求,調用過程如下:

Ø  服務端:

n  生成服務描述檔案,以供用戶端擷取。

n  接收用戶端發來的SOAP請求消息,解析其中的方法調用和參數格式。

n  根據wsdl和wsml的描述,調用相應的COM對象來完成指定功能,并把傳回值放入SOAP回應消息傳回給使用者。

Ø  用戶端:

n  取得服務端的服務描述檔案,解析該檔案進而獲得服務端的服務資訊以及調用方式。

n  指定調用方法和參數,生成恰當的SOAP請求消息,發往服務端。

n  等待服務端傳回的SOAP回應消息,解析得到傳回值。

WebService的測試主要圍繞功能測試、性能測試和安全性測試展開,下面主要描述WebService三大測試的要點。

測試目的:測試系統所實作WebService接口的功能。

進入條件:開發人員提供已實作功能的程式包,和待測試webservice的方法名、參數以及實作的功能描述。

測試要點:不同的參數組合,應按設計要求傳回相應的資訊。

測試目的:測試系統所實作WebService接口的性能。進入條件:WebService接口的功能測試已完畢。

測試要點:測試并發調用WebService接口,觀察其性能表現,主要是在不同的并發量、持續運作時間和資料庫不同容量下,事務的響應時間、總事務數、事務的成功率、點選率等,同時監控硬體資源的消耗情況。

測試目的:測試系統所實作WebService接口的安全性。

進入條件:WebService接口的功能測試已完畢。

測試要點:測試WebService接口的調用是否有使用者名、密碼驗證,惡意調用是否會導緻系統崩潰等。

目前掌握的測試工具soapUI可以進行WebService的功能測試,下面以測試存儲服務的PIXManager接口詳細介紹使用soapUI進行WebService功能測試的操作步驟。

1、單擊‘File’->‘ New soapUI Project’,如下圖:

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2、在彈出的對話框中輸入待測試的ws資訊,然後點選 [OK] 到下一步

Project Name:PIXManager

Create Requests:選中

Create TestSuite:選中

Relative Paths:選中

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

3、儲存project

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

4、生成初始的測試用例

選擇One TestCase for each Operation:每個接口建立一個用例

選擇Create new empty requests:建立一個空的請求

Operations:選擇待測試的方法

選擇Generates a default LoadTest for each created TeseCase:每個用例生成一個負責測試(為後面性能測試做準備)

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

5、生成TestSuite

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

這裡可以根據習慣更改TestSuite的名稱,如TestSuite:PIXManager。

6、在soapUI的左側生成如下目錄

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

此時建立project已完成!

1、建立項目的時候我們選擇了Create sample requests for all operations,是以每個接口方法都會自動建立一個請求,如下圖:

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

3、在Form頁面輸入參數,單擊 按鈕執行,右側檢視結果。

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

根據回報的結果判斷請求是否發送成功。

輸入的xml内容如下:

<?xml version="1.0" encoding="GB2312"?>          <V_PATIENTREGC99999999 xsi:noNamespaceSchemaLocation="PATIENTREGC99999999.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">            <MEDICALSERVICE_NO>01</MEDICALSERVICE_NO>                    <NAME>小花</NAME>                    <BIRTH_DATE>1988-02-01T00:00:00</BIRTH_DATE>                   <GENDER_CD>1</GENDER_CD>           <GENDER_VALUE>男性</GENDER_VALUE>                   <MARITAL_ST_CD>10</MARITAL_ST_CD>            <MARITAL_ST_VALUE>未婚</MARITAL_ST_VALUE>                   <ID_NO_CD>01</ID_NO_CD>               <ID_NO_VALUE>居民身份證</ID_NO_VALUE>                <ID_NO>12586</ID_NO>               <MEDICARE_CD>01</MEDICARE_CD>                  <MEDICARE_VALUE>社會基本醫療保險</MEDICARE_VALUE>            <MEDICAL_INSURANCE_NO>Y001</MEDICAL_INSURANCE_NO>                   <AR_CD>111</AR_CD>                   <AD_CD>01</AD_CD>            <AD_VALUE>戶籍住址</AD_VALUE>                   <PROVINCE_NAME>上海</PROVINCE_NAME>           <CITY_NAME>上海</CITY_NAME>           <AREA_NAME>浦東區</AREA_NAME>                 <STREET_ID>霞飛路</STREET_ID>                  <VILLAGE_NAME>街</VILLAGE_NAME>                <HOUSE_NO>門牌号</HOUSE_NO>                 <TEL_TYPE_CD>01</TEL_TYPE_CD>              <TEL_TYPE_VALUE>本人電話</TEL_TYPE_VALUE>                   <TEL_NO>1232312</TEL_NO>                <REGISTER_DATE>2010-09-27T14:31:00</REGISTER_DATE>                <RECORDER_NAME>小芳</RECORDER_NAME>             <REGISTER_PERSON_CODE>01</REGISTER_PERSON_CODE>                   <REGISTER_ORG_CODE>01</REGISTER_ORG_CODE>                  <REGISTER_ORG_NAME>中科</REGISTER_ORG_NAME>          <SEND_TIME>2010-09-27T14:32:00</SEND_TIME>             <SEND_ORG_CODE>798921772</SEND_ORG_CODE>                 <SEND_SYSTEM>222222222222</SEND_SYSTEM>       </V_PATIENTREGC99999999>

目前掌握的是兩個測試工具soapUI和LoadRunner,其中soapUI可以進行WebService的功能和性能測試,而LoadRunner主要是性能測試。

下面分别介紹兩個工具進行WebService性能測試的步驟。

基于前面soapUI功能測試的步驟,若已成功,可将腳本參數化後用于性能測試,具體步驟如下:

1、右鍵單擊Test Steps,‘Add Step’->‘DataGen’,如下圖:

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2、輸入步驟名稱

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

3、設定生成方法

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2) 定義名稱和類型

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

Name:自定義,如MEDICALSERVICE_NO

Type:選擇‘Number’型,

3) 設定為‘Randomize instead of step’

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

打開待參數化的請求,找到需參數化的内容,選中并右鍵單擊,如下圖:。

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

選擇‘Get Data’->‘Step 1:[DataGen]’->‘property [MEDICALSERVICE_NO]’

原來的資料被替換為:${DataGen#MEDICALSERVICE_NO}

1、打開‘TestSuite:PIXManager’->‘registerPatientInterface’->‘Load Tests’->‘registerPatientInterface’

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2、設定并發線程,單擊 執行測試

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

1.選擇協定

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2、導入wsdl

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

3、Add Service Call

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

設定好後生成如下腳本:

         web_service_call( "StepName=registerPatientInterface_101",

                 "SOAPMethod=PIXManager_Service|PIXManager_ServicePort|registerPatientInterface",

                   "ResponseParam=response",

                   "Service=PIXManager_Service",

                   "ExpectedResponse=SoapResult",

                   "Snapshot=t1294907356.inf",

                   BEGIN_ARGUMENTS,

                   "msgID=",

                   "sendMsgOrgID=",

                   "sendMsgPosID=",

                   "eventDateTime=",

                   "eventDateTimeSpecified=",

                   "xml=",

                   END_ARGUMENTS,

                   BEGIN_RESULT,

                   "return=Param_return",

                   END_RESULT,

                   LAST);

4、輸入參數

1)輸入msgID、sendMsgOrgID、sendMsgPosID、eventDateTime、eventDateTimeSpecified;

                   "msgID=11111",

                   "sendMsgOrgID=111111",

                   "sendMsgPosID=111111",

                   "eventDateTime=2011-01-12 10:10:10",

                   "eventDateTimeSpecified=true",

2)輸入Xml;

                   "xml=<?xml version="1.0" encoding="GB2312"?>           "

                   "<V_PATIENTREGC99999999 xsi:noNamespaceSchemaLocation="PATIENTREGC99999999.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">"

                   "               <MEDICALSERVICE_NO>01</MEDICALSERVICE_NO>"

                   "               <NAME>小花</NAME>"

                   "               <BIRTH_DATE>1988-02-01T00:00:00</BIRTH_DATE>"

                   "               <GENDER_CD>1</GENDER_CD>"

                   "               <GENDER_VALUE>男性</GENDER_VALUE>"

                   "               <MARITAL_ST_CD>10</MARITAL_ST_CD>"

                   "               <MARITAL_ST_VALUE>未婚</MARITAL_ST_VALUE>"

                   "               <ID_NO_CD>01</ID_NO_CD>"

                   "               <ID_NO_VALUE>居民身份證</ID_NO_VALUE>"

                   "               <ID_NO>13504568756</ID_NO>"

                   "               <MEDICARE_CD>01</MEDICARE_CD>"

                   "               <MEDICARE_VALUE>社會基本醫療保險</MEDICARE_VALUE>"

                   "               <MEDICAL_INSURANCE_NO>Y001</MEDICAL_INSURANCE_NO>"

                   "               <AR_CD>111</AR_CD>"

                   "               <AD_CD>01</AD_CD>"

                   "               <AD_VALUE>戶籍住址</AD_VALUE>"

                   "               <PROVINCE_NAME>上海</PROVINCE_NAME>"

                   "               <CITY_NAME>上海</CITY_NAME>"

                   "               <AREA_NAME>浦東區</AREA_NAME>"

                   "               <STREET_ID>霞飛路</STREET_ID>"

                   "               <VILLAGE_NAME>街</VILLAGE_NAME>"

                   "               <HOUSE_NO>門牌号</HOUSE_NO>"

                   "               <TEL_TYPE_CD>01</TEL_TYPE_CD>"

                   "               <TEL_TYPE_VALUE>本人電話</TEL_TYPE_VALUE>"

                   "               <TEL_NO>1232312</TEL_NO>"

                   "               <REGISTER_DATE>2010-09-27T14:31:00</REGISTER_DATE>"

                   "               <RECORDER_NAME>小芳</RECORDER_NAME>"

                   "               <REGISTER_PERSON_CODE>01</REGISTER_PERSON_CODE>"

                   "               <REGISTER_ORG_CODE>01</REGISTER_ORG_CODE>"

                   "               <REGISTER_ORG_NAME>中科</REGISTER_ORG_NAME>"

                   "               <SEND_TIME>2010-09-27T14:32:00</SEND_TIME>"

                   "               <SEND_ORG_CODE>798921772</SEND_ORG_CODE>"

                   "               <SEND_SYSTEM>222222222222</SEND_SYSTEM>"

                   "      </V_PATIENTREGC99999999>",

5、腳本增強

1)參數化;

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試
WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2)增加事務并列印傳回結果;

         lr_start_transaction("registerPatientInterface");

                  if (strstr(lr_eval_string("{Param_return}"),"C99999999$")==NULL)    {

                   if (strstr(lr_eval_string("{Param_return}"),"empty!")==NULL) {

                            lr_end_transaction("registerPatientInterface", LR_STOP);

                            lr_output_message(lr_eval_string("出錯了!傳回的資訊如下:{Param_return}"));

                   }

                   else{

                            lr_end_transaction("registerPatientInterface", LR_FAIL);

                            lr_output_message(lr_eval_string("請求成功,儲存失敗!傳回的資訊如下:{Param_return}"));

         }

         else{

                   lr_end_transaction("registerPatientInterface", LR_PASS);

                   lr_output_message(lr_eval_string("請求成功,儲存成功!傳回的資訊如下:{Param_return}"));

3)調試;

在run-time settings中設定增強日志類型,以便看到更詳細的資訊。

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

調試完成後調整為:Send messages only when an error occurs

4)去掉預設的事務劃分;

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

1、腳本調試成功後,點選‘Tools’->‘Create Controller Scenario’,如下圖:

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

2、設定虛拟使用者數,如下圖:

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

3、調整虛拟使用者的增長、下降方式

WebService測試方案1.WebService簡介2.WebService測試說明3.WebService功能測試4.WebService性能測試4.WebService安全性測試

暫無

技術改變世界!

--狂詩絕劍