SoapUI是一個開源測試工具,經過soap/http來檢查、調用、實現Web Service的功能/負載/符合性測試。該工具既可做爲一個單獨的測試軟件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。html
SoapUI是一個自由和開放源碼的跨平臺功能測試解決方案。經過一個易於使用的圖形界面和企業級功能,SoapUI讓您輕鬆, 快速建立和執行自動化功能、迴歸、合規和負載測試。在一個測試環境,SoapUI提供完整的測試覆蓋,並支持全部的標準協議和技術。web
SoapUI 基於Java 開發,支持多個平臺,安裝很是簡單。安全
SoapUI下載地址:https://www.soapui.org/,下載開源版SoapUI,SoapUI Pro是SoapUI的商業非開源版本maven
使用的接口實例是中國電視節目表WEB服務工具
WSDL地址:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl 測試
Endpoint地址:http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmxui
經過案例講解,可以掌握如下幾個方面的操做:spa
1.構建項目插件
2.運行單個請求3d
1.打開SoapUI軟件>File>New SOAP Project,新建工程
2.填入工程名和WSDL地址,WSDL地址爲:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl
構選上「Create Requests」項目會根據WSDL文件建立接口請求文件;構選上「Create TestSuite」就會給WSDL建立一個測試套件
3.點擊OK後就已經建立好一個工程了,自動添加WSDL裏面有的接口,根據Soap 的版本不一樣提供了兩種接口,以下圖所示:
接口業務:
getAreaDataSet:得到支持的省市(地區) 和分類電視列表
getTVstationDataSet:經過省市ID 或分類電視ID 得到電視臺列表
getTVchannelDataSet :經過電視臺ID 得到該電視臺頻道列表
getTVprogramDataSet : 經過頻道ID 得到該頻道節目列表
在此處須要注意的是:除getAreaDataSet接口不須要入參,最後三個接口是須要輸入參數的,接口getTVstationDataSet的請求中「?」表示要入參,以下圖所示:
若不入參,運行會出錯,會出現以下所示錯誤信息:
1.選擇getAreaDataSet下的Request1,雙擊,點擊運行按鈕,就會出現右側面板中的結果,得到到支持的省市(地區) 和分類電視列表,以下圖所示:
2.選擇getTVstationDataSet下的Request1,雙擊,把中間面板中的?替換成省市ID或分類電視ID18,點擊運行按鈕,就會出現右側面板中的結果,得到電視臺列表,以下圖所示:
3.選擇getTVchannelDataSet 下的Request1,雙擊,把中間面板中的?替換成電視臺ID98,點擊運行按鈕,就會出現右側面板中的結果,得到頻道列表,以下圖所示:
4.選擇getTVprogramDataSet 下的Request1,雙擊,把中間面板中的?替換成頻道ID292,點擊運行按鈕,就會出現右側面板中的結果,得到該頻道節目列表
1.建立測試套件:選擇項目「CTV」右鍵點擊「New TestSuite」,可輸入測試名,以下圖所示
2.建立測試用例Test case,選擇測試套件「TestSuite 1」右鍵點擊「New TestCase」,以下圖所示:
建立好以後,新建的TestCase中包含三個部分:
3.把請求添加到測試用例中:選擇一個請求,而後右鍵點擊「Add to TestCase」,而後在彈出窗口中選擇咱們剛纔新建的"TestSuite 1"便可,以下圖所示:
執行操做後,就已經建立好了一條測試用例,以下圖所示:
4.運行測試:打開TestCase窗口,點擊綠色運行按鈕便可,綠色表示運行成功,運行結果在右面板下方,以下圖所示:
5.增長檢查點
①在測試步驟中打開服務求請求,以下圖所示:
②點擊+號,添加檢查點,選擇Recently used>Contains>Add,以下圖所示:
③輸入檢查的內容,以下圖所示:
④而後運行服務請求,在「Assertions」窗口中能夠看到「Contains - VALID」說明檢查點是有效的,以下圖所示:
getAreaDataSet:得到支持的省市(地區) 和分類電視列表
getTVstationDataSet:經過省市ID 或分類電視ID 得到電視臺列表
getTVchannelDataSet :經過電視臺ID 得到該電視臺頻道列表
getTVprogramDataSet : 經過頻道ID 得到該頻道節目列表
依次加入到TestCase 1 的測試步驟中去,而後組織測試步驟獲取「湖南金鷹卡通」的節目列表
具體的測試步驟爲:
①得到「湖南省」的分類ID 「18 」
②獲取「湖南省」類別中的「湖南電視臺」ID :「98 」
③獲取「湖南電視臺」的頻道「湖南金鷹卡通 」ID :「292 」
④獲取「湖南金鷹卡通」頻道的節目列表
1.先將請求依次添加到用例中,以下圖所示:
2.添加入參操做,用於兩個服務請求間的交互,以下圖所示:
將服務請求getAreaDataSet 結果中的「湖南省」ID「18 」做爲服務請求getTVstationDataSet 入參
建立好以後,雙擊,彈出以下圖所示界面,輸入參數值:
右側面板上部分中輸入以下代碼,//並非註釋,只是表相對路徑,(getAreaDataSet 結果)
declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"; //diffgr:diffgram/Area/AreaList[22]/areaID[1]
右側面板下部分中輸入以下代碼(getTVstationDataSet 入參)
declare namespace web="http://WebXml.com.cn/"; //web:getTVstationDataSet/web:theAreaID[1]
點擊運行,便可看到是否成功,成功以下圖所示:
獲取上述代碼的方法:
上半部分getAreaDataSet 結果獲取:
下半部分getTVstationDataSet 入參獲取:
其它兩個交互方法同樣,稍微更改便可
將服務請求getTVstationDataSet結果中的「湖南電視臺」ID「98 」做爲服務請求getTVchannelDataSet入參
右側面板上部分中輸入以下代碼(getTVstationDataSet 結果)
declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"; //diffgr:diffgram/Station/TvStation[5]/tvStationID[1]
右側面板下部分中輸入以下代碼(getTVchannelDataSet 入參)
declare namespace web="http://WebXml.com.cn/"; //web:getTVchannelDataSet/web:theTVstationID[1]
獲取上述代碼的方法:
上半部分getTVstationDataSet結果獲取:
下半部分getTVchannelDataSet入參獲取:
將服務請求getTVchannelDataSet 結果中的「湖南金鷹卡通」ID「292 」做爲服務請求getTVprogramDataSet 入參
右側面板上部分中輸入以下代碼(getTVchannelDataSet結果)
declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"; //diffgr:diffgram/Channe/TvChanne[4]/tvChannelID[1]
右側面板下部分中輸入以下代碼(getTVprogramDataSet入參)
declare namespace web="http://WebXml.com.cn/"; //web:getTVprogramDateSet/web:theTVchannelID[1]
獲取上述代碼的方法:
上半部分getTVchannelDataSet結果獲取:
下半部分getTVprogramDataSet入參獲取:
1.整個測試步驟設置好以後,打開「TestCase 1」運行測試,所有綠色表示測試經過,以下圖所示:
2.在TestCase Log中還能夠看到接口之間傳遞的參數值,以下圖所示:
3.運行結束後,再打開接口請求,能夠看到請求顯示的就是所傳遞的值,以下圖所示:
4.還能夠在請求中設置檢查點,來檢查是否經過,檢查點的設置方法已在構建測試用例中介紹
本文僅表明做者觀點,系做者@溫一壺清酒發表。
歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。
文章出處:http://www.cnblogs.com/hong-fithing/