一、webservice接口實例說明
學習的話,大家可以自行到網上找 一些免費的webservice接口來練手。本文中選擇實例為:中國電視節目預告(電視節目表) WEB 服務。
Endpoint : http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx
Disco : http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?disco
WSDL : http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl
瀏覽器輸入:http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx 即可獲取到這個接口的相關說明,以下簡單羅列下這個接口的相關業務。
[第一步] getAreaDataSet: 獲得支持的省市(地區)和分類電視列表 DataSet。
輸入參數:無;返回數據:DataSet,結構為:Item(areaID)=省市和分類電視ID,Ietm(Area)=省市和分類電視名稱,Item(Zone)=所屬地區。
[第二步] getTVstationDataSet: 通過省市ID或分類電視ID獲得電視台列表 DataSet
輸入參數:theAreaID = 省市ID或分類電視ID(Integer);返回數據:DataSet,結構為:Item(tvStationID)=電視台ID,Ietm(tvStationName)=電視台名稱。
[第三步] getTVchannelDataSet : 通過電視台ID獲得該電視台頻道列表 DataSet
輸入參數:theTVstationID = 電視台ID(Integer);返回數據:DataSet,結構為:Item(tvChannelID)=頻道ID,Ietm(tvChannel)=頻道名稱。
[第四步] getTVprogramDateSet : 通過頻道ID獲得該頻道節目列表 DataSet
輸入參數:theTVchannelID = 頻道ID(Integer),theDate=日期(String 格式:yyyy-MM-dd,如:2007-07-02,空則默認當天),userID=商業用戶ID(String 免費用戶不需要);返回數據:DataSet,結構為:Item(playTime)=播出時間,Ietm(meridiem)=PM或AM,Ietm(tvProgram)=節目信息,Item(tvStationInfo)=電視台信息。
二、創建soap項目,運行單個接口,能否跑通
1、右鍵Projects -->New SOAP Project ,在彈框界面的“initial WSDL” 輸入實例的WSDL地址,點擊ok。
2、[第一步]getAreaDataSet請求。參數無,點擊運行,獲得支持的省市(地區)和分類電視列表。
3、[第二步] getTVstationDataSet請求。參數輸入[第一步]獲取到的areaID:18(想查看湖南地區的,所以輸入18),點擊運行,獲得電視台列表。
4、[第三步] getTVchannelDataSet請求。參數輸入[第二步]獲取到的tvStationID:98,點擊運行,獲得該電視台頻道列表。
5、[第四步] getTVprogramDateSet請求。theTVchannelID輸入[第三步]獲取到的tvChannelID:290、theDate輸入2019-11-11、userID沒有商業用戶選擇不輸入。點擊運行,獲得該頻道節目列表。
三、構建測試用例,進行腳本優化,執行測試用例
1、右鍵 ChinaTVprogramWebService 工程-->New TestSuite,右鍵TestSuite-->New TestCase。
將上面第一步到第四步的request請求,拖動添加到Test Steps中,按第一步~第四步調整request請求的順序如下。
2、第二、三、四步參數輸入都依賴到了上一步的返回結果,這里進行下Property Transfer設置。
1) [第二步]getTVchannelDataSet請求。需要傳入上一個請求獲取到的areaID,這里插入Property Transfer進行如下設置:
這里說明下Source跟Target的XPath表達式是怎么來的:
a、獲取到getAreaDataSet的response進行分析如下:
b、獲取到getTVstationDataSet的request進行分析如下:
2) [第三步]getTVstationDataSet請求。需要傳入需要傳入上一個請求獲取到的tvStationID,這里Property Transfer進行如下設置:
3) [第四步]getTVstationDataSet請求。需要傳入上一個請求獲取到的tvChannelID,這里Property Transfer進行如下設置:
3、繼續優化腳本,將最后一個getTVstationDataSet請求中傳入的theDate參數進行變量設置,並且進行變量引用
a、右鍵Test Steps-->Add Step-->Properties,然后設置變量date及賦值
b、雙擊getTVstationDataSet請求,將theDate傳值為${Properites#date}
4、雙擊執行TestCase,測試完成。可自行查看測試結果。