您好,登錄后才能下訂單哦!
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
SoapUI是當前比較簡單實用的開源Web Service測試工具,提供桌面應用程序和IDE插件程序兩種使用方式。能夠快速構建項目和組織測試用例是該工具的一大特性,下面將通過實例介紹如果使用SoapUI進行Web Service單元測試。
l 構建項目
SoapUI工具中的項目(Project)是由一個或多個Web Service組成的,這里我們以“中國電視節目預告 Web 服務:
http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl”為例,新建WSDL項目。點擊FileèNew WSDL Project,輸入項目名稱“ChinaTV”,初始WSDL“
http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl”,如圖1:
其中WSDL可以是URL也可以是wsdl的靜態文件。
l 單個服務請求的運行
SoapUI工具會解析WSDL文件獲取服務接口,創建請求。如圖2、3:該服務提供8個接口,并根據Soap的版本不同提供兩種。
展開接口“getTVstationDataSet”的Soap請求“Request 1”:
雙擊查看請求的SOAP消息:如圖4
我們看到的是服務請求Soap消息,其中的“?”問號代表的是入參,將其修改為請求入參值“-1”(本實例中,-1代表中央電視),然后點擊圖標按鈕運行,獲得請求結果:如圖5
我們看到返回的Soap消息及其中的數據。
l 構建測試用例
選擇項目“ChinaTV”并右鍵,選擇New TestSuite,構建一個測試套件如圖6
然后,在TestSuite中右鍵,選擇New TestCase,新建TestCase并將服務請求加入到TestCase中:如圖7
這樣,我們擁有了第一個測試用例:如圖8
因為上述過程中已經設置了服務請求入參,所以這里我們雙擊TestCase 1點擊可以直接運行:如圖9
我們看到了“綠條”,這表示運行通過。
l 增加檢查點
如圖,打開服務請求getTVstationDataSet – Request 1,點擊,添加檢查點:如圖10
檢查點有多種類型,這里我們選擇包含“Contains”并輸入檢查內容“中央電視臺”:如圖11
我們運行服務請求getTVstationDataSet – Request 1:如圖12
可以看到檢查點是有效的:Contains-VALID。
l 組織測試步驟
將getAreaDataSet(獲得支持的省市(地區)和分類電視列表)、getTVstationDataSet(通過省市ID或分類電視ID獲得電視臺列表)、getTVchannelDataSet(通過電視臺ID獲得該電視臺頻道列表)、getTVprogramDataSet(通過頻道ID獲得該頻道節目列表)依次加入到TestCase 1的測試步驟中去,然后組織測試步驟獲取“CCTV-1”的節目列表。
測試步驟:
1、獲得“中央電視”的分類ID“-1”
2、獲取“中央電視”類別中的“中央電視臺”ID:“39”
3、獲取“中央電視臺”的頻道“CCTV-1”ID:“606”
4、獲取“CCTV-1”頻道的節目列表 如圖13
我們需要將服務請求getAreaDataSet結果中的“中央電視”ID“-1”作為服務請求getTVstationDataSet入參,右鍵點擊getAreaDataSet-Request 1,選擇Insert StepèProperty Transfer,如圖14:
這個Property Transfer用于兩個服務請求間的交互,我們將其命名為:“AreaTransferStation”如圖15
Source中我們選擇getAreaDataSet-Request 1的Response,Target中我們選擇getTVstationDataSet-Request 1的Request,并通過腳本選擇服務請求getAreaDataSet返回結果Soap消息中節點(AreaList[4])中(areaID[1])的值傳遞給服務請求getTVstationDataSet作為入參(theAreaID[1])的值。
其中:declare namespace diffgr=
"urn:schemas-microsoft-com:xml-diffgram-v1";用于聲明命名空間,與SOAP消息中的命名空間對應。如圖16
同樣的操作步驟,我們組織好其他幾個服務請求間的交互,就組織完成了一個完整的測試步驟,最后我們運行TestCase,看到全部的運行結果:(綠色表示運行通過)如圖17
注:soapui官方網站http://www.soapui.org/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。