SouapUI介面測試之入門示例

  • 2019 年 10 月 10 日
  • 筆記

SouapUI

一、SouapUI簡介

SoapUI是一個開源測試工具,通過soap/http來檢查、調用、實現Web Service的功能/負載/符合性測試。該工具既可作為一個單獨的測試軟體使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。

SoapUI是一個自由和開放源碼的跨平台功能測試解決方案。通過一個易於使用的圖形介面和企業級功能,SoapUI讓您輕鬆, 快速創建和執行自動化功能、回歸、合規和負載測試。在一個測試環境,SoapUI提供完整的測試覆蓋,並支援所有的標準協議和技術。

SoapUI 基於Java 開發,支援多個平台,安裝非常簡單。

SoapUI下載地址:https://www.soapui.org/,下載開源版SoapUI,SoapUI Pro是SoapUI的商業非開源版本,下載後next安裝即可使用,這裡不會安裝的小夥伴請自行百度。

二、SouapUI入門示例

使用的介面實例是中國電視節目表WEB服務

WSDL地址:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

Endpoint地址:http://ws.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx

通過案例講解,能夠掌握以下幾個方面的操作:

.構建項目

.運行單個請求

.構建測試用例

.介面之間傳遞參數

.運行整個測試用例

1.創建項目,打開SoapUI軟體>File>New SOAP Project,新建工程

創建項目

2.填入工程名和WSDL地址,WSDL地址為:http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl,構選上「Create Requests」項目會根據WSDL文件創建介面請求文件;構選上「Create TestSuite」就會給WSDL創建一個測試套件

填入工程名和WSDL地址

3.點擊OK後就已經創建好一個工程了,自動添加WSDL裡面有的介面,根據Soap 的版本不同提供了兩種介面,如下圖所示:

已創建好的工程

介面業務解析:

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

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

getTVchannelDataSet :通過電視台ID 獲得該電視台頻道列表

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

在此處需要注意的是:除getAreaDataSet介面不需要入參,最後三個介面是需要輸入參數的,介面getTVstationDataSet的請求中「?」表示要入參,如下圖所示:

參數說明1

若不輸入參數,運行會出錯,會出現如下所示錯誤資訊:

參數說明2

三、運行單個請求

1.選擇getAreaDataSet下的Request1,雙擊,點擊運行按鈕,就會出現右側面板中的結果,獲得到支援的省市(地區) 和分類電視列表,如下圖所示:

參數說明3

2.選擇getTVstationDataSet下的Request1,雙擊,把中間面板中的?替換成省市ID或分類電視ID10,點擊運行按鈕,就會出現右側面板中的結果,獲得電視台列表,如下圖所示:

輸入參數

3.選擇getTVchannelDataSet 下的Request1,雙擊,把中間面板中的?替換成電視台ID66,點擊運行按鈕,就會出現右側面板中的結果,獲得頻道列表,如下圖所示:

參數查詢

四、構建測試用例

1.創建測試套件:選擇項目「ChinaCTV」右鍵點擊「New TestSuite」,可輸入測試名,如下圖所示

構建測試套件

2.創建測試用例Test case,選擇測試套件「TestSuite 1」右鍵點擊「New TestCase」,如下圖所示:

創建測試用例

可以看到測試用例創建好之後,新建的TestCase1中包含三個部分:

測試步驟:Test Steos

負載測試:Load Tests

安全測試:Security Tests

測試用例目錄

3.把請求添加到測試用例中:選擇一個請求,然後右鍵點擊「Add to TestCase」,然後在彈出窗口中選擇我們剛才新建的"TestSuite 1"即可,如下圖所示:

請求寫入測試用例

執行操作後,就已經創建好了一條測試用例,如下圖所示:

添加成功後的請求

4.運行測試:打開TestCase窗口,點擊綠色運行按鈕即可,綠色表示運行成功,運行結果在右面板下方,如下圖所示:

運行測試用例

5.增加檢查點

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

打開服務請求

②點擊+號,添加檢查點,選擇Propert Content Recently used>Contains>Add,如下圖所示:

添加檢查點

③輸入檢查的內容,如下圖所示:

輸入檢查內容

④然後運行服務請求,在「Assertions」窗口中可以看到「Contains - VALID」說明檢查點是有效的,如下圖所示:

查看檢查點是否有效

五、介面之間傳遞參數,組織測試步驟

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

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

getTVchannelDataSet :通過電視台ID獲得該電視台頻道列表

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

依次加入到TestCase 1 的測試步驟中去,然後組織測試步驟獲取「湖南金鷹卡通」的節目列表,具體的測試步驟為:

①獲得「廣東省」的分類ID 「19 」

②獲取「廣東省」類別中的「廣東電視台」ID :「55 」

③獲取「廣東電視台」的頻道「廣東新聞頻道 」ID :「337 」

④獲取「廣東新聞頻道」頻道的節目列表

1.獲得「廣東省」的分類ID 「19 」

.先將請求依次添加到用例中,如下圖所示:

批量加入測試用例

.添加入參操作,用於兩個服務請求間的交互,如下圖所示:將服務請求getAreaDataSet 結果中的「廣東省」ID「19 」作為服務請求getTVstationDataSet 入參

入參

.創建好之後,雙擊,彈出如下圖所示介面,輸入參數值:

輸入參數值

.右側面板上部分中輸入如下程式碼,//並不是注釋,只是表相對路徑,(getAreaDataSet 結果)

declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"; //diffgr:diffgram/Area/AreaList[23]/areaID[1]

.右側面板下部分中輸入如下程式碼(getTVstationDataSet 入參)

declare namespace web="http://WebXml.com.cn/"; //web:getTVstationDataSet/web:theAreaID[1]

.點擊運行,即可看到是否成功,成功如下圖所示:

運行結果

.獲取上述程式碼的方法:

上半部分getAreaDataSet 結果獲取:

getAreaDataSet 結果獲取

下半部分getTVstationDataSet 入參獲取:

getTVstationDataSet 入參獲取

2.獲取「廣東省」類別中的「廣東電視台」ID :「55 」

.將服務請求getTVstationDataSet結果中的「廣東電視台」ID「55 」作為服務請求getTVchannelDataSet入參

獲取廣東電視台ID

.右側面板上部分中輸入如下程式碼(getTVstationDataSet 結果)

declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"; //diffgr:diffgram/Station/TvStation[4]/tvStationID[1]

.右側面板下部分中輸入如下程式碼(getTVchannelDataSet 入參)

declare namespace web="http://WebXml.com.cn/"; //web:getTVchannelDataSet/web:theTVstationID[1]

.獲取上述程式碼的方法:

上半部分getTVstationDataSet結果獲取:

getTVstationDataSet結果獲取

下半部分getTVchannelDataSet入參獲取:

getTVchannelDataSet入參獲取

3.獲取「廣東電視台」的頻道「廣東新聞頻道 」ID :「337 」

.將服務請求getTVchannelDataSet 結果中的「廣東新聞頻道 」ID :「337 」作為服務請求getTVprogramDataSet 入參

獲取廣東新聞頻道ID

.右側面板上部分中輸入如下程式碼(getTVchannelDataSet結果)

declare namespace diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"; //diffgr:diffgram/Channe/TvChanne[6]/tvChannelID[1]

.右側面板下部分中輸入如下程式碼(getTVprogramDataSet入參)

declare namespace web="http://WebXml.com.cn/"; //web:getTVprogramDateSet/web:theTVchannelID[1]

.獲取上述程式碼的方法:

上半部分getTVchannelDataSet結果獲取:

getTVchannelDataSet結果獲取

下半部分getTVprogramDataSet入參獲取:

getTVprogramDataSet入參獲取

六、運行測試用例TestCase 1

1.整個測試步驟設置好之後,打開「TestCase 1」運行測試,全部綠色表示測試通過,如下圖所示:

運行測試用例

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

在介面中查看參數值

3.運行結束後,再打開介面請求,可以看到請求顯示的就是所傳遞的值,如下圖所示:

Tags: