SoapUI:入門實例


這一章中我們要掌握如下內容:

1)         構建項目;

2)         運行單個請求;

3)         構建測試用例;

4)         接口之間傳遞參數,組織測試步驟;

5)         運行整個測試用例。

接口實例:

1.1       構建項目

 

File > New SOAP Project,輸入WSDL( 可以是URL 也可以是wsdl 的靜態文件):http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

如下圖輸入WSDL后,構選上“Create Requests”項目會根據WSDL文件創建接口請求文件;構選上“Create TestSuite”就會給WSDL創建一個測試套件(這里我們不構選,稍后再另外新建測試套件)。

 

 

如下圖所示,根據Soap 的版本不同提供了兩種接口。

 

 

getAreaDataSet (獲 得支持的省市(地區)和分類電視列表)、

getTVstationDataSet (通 過省市ID 或分類電視ID 獲得電視台列表)、 

getTVchannelDataSet (通過電視台ID 獲得該電視台頻道列表)、

getTVprogramDataSet (通 過頻道ID 獲得該頻道節目列表)

注意:最后三個接口是需要輸入參數的,如下圖所示,接口getTVchannelDataSet  的請求中“?”表示要入參

 

 

1.2       運行單個請求

如下圖所示,打開request 點擊綠色運行按鈕運行即可。

 

 

要入參的請求,直接把值寫在請求中即可,如下圖所示輸入“-1”(本實例中-1代表中央電視台)。

 

 

1.3       構建測試用例

1)         創建測試套件:選擇項目“ChinaTV”右鍵點擊“New TestSuite”,如下圖所示

 

 

2)         創建測試用例Test case:如下圖,選擇測試套件“myTestSuite”右鍵點擊“New TestCase”

 

 

如下圖所示,新建的TestCase中包含三個部分,我們的功能測試只需要關注Test Steps即可。

 

 

3)         把請求添加到測試用例中:如下圖所示,選擇一個請求,然后右鍵點擊“Add to TestCase”,然后在彈出窗口中選擇我們剛才新建的"myTestCase"即可。

 

 

添加完成如下圖所示,這樣我們擁有了第一個測試用例

 

 

4)         運行測試:如下圖所示,打開TestCase窗口,點擊綠色運行按鈕即可。

 

右下方為運行結果。

1.4       增加檢查點

在測試步驟中打開服務求請求,如下圖所示

 

 

如下圖所示,有7種斷言類型可以選擇(Recently used為你最近使用過的斷言)。這里我們選擇“Property Content”下的Contains,這是根據返回的屬性內容設置檢查點。

 

 

設置檢查內容,如下圖所示“中央電視台”

 

 

然后運行服務請求,如下圖所示,在“Assertions”窗口中可以看到“myAssertion - VALID”說明檢查點是有效的。

 

 

1.5       傳遞參數,組織測試步驟

將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 ”頻道的節目列表 如下圖所示:

 

 

下面我們需要將服務請求getAreaDataSet 結果中的“中央電視”ID “-1 ”作為服務請求getTVstationDataSet 入 參。

右鍵“getAreaDataSet ”> Insert Step > Property Transfer

 

 

這個Property Transfer 用於兩個服務請求間的交互,我們將其命名為:“AreaTransfer ” ,如下圖所示,點擊新建一個傳參叫“areaID”

 

 

生成“areaID”中的Source和Target都是空的,需要我們自己寫。如下圖,sourcet和Target中的“path language”我都選擇了“XPath”(因為我只會XPath)。

 

 

注意:XPath的前面需要先聲明命名空間(declare namespace),這個要與SOAP 消息中的命名空間對應。如我命名的diffgr與request中的一樣

 

 

找XPath的時候有個小技巧,我們可以把請求信息或響應信息存為“.xml”文件,然后在Firefox中打開,通過firebug獲取。其實soapUI是可以通過查找目錄參數,然后自動生成xpath的,不過我裝的soapUI不知道為什么沒有顯示出xpath圖標。別人的property transfer長相如下:

 

 

同樣的操作步驟,我們組織好其他幾個服務請求間的交互,就組織 完成了一個完整的測試步驟,如下圖所示:

 

 

1.6       運行測試

整個測試步驟設置好之后,打開“myTestCase”運行測試,如下圖所示,全部綠色表示測試通過:

 

 

在TestCase Log中還可以看到接口之間傳遞的參數值,如下圖所示:

 

 

運行結束后,再打開接口請求,可以看到請求顯示的就是所傳遞的值,如下圖所示:

 

 

當接口測試不通過時,在測試步驟和日志中會顯示紅色,如下圖所示,在最后的結果中我設置了一個文本檢查點“朝聞天下”沒有找到,測試不通過:

 

 

單獨打開“getTVprogramDateSet”看了一下,原來是免費次數用完了!哈哈……。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM