CSS

[soapUI]如何測試你的WebService

當我們開發WebService時,有一個問題就是我們要如何去測試WebService是否能成功的被呼叫,並且如何去建立測試案例來確認讓服務可以工作。

soapUI提供了完整的WebService相關測試功能以及介面,讓開發與測試WebService變得更容易
包括了呼叫WebService,建立測試案例, LoadTest ,建立Mock Service讓程式呼叫等等

在使用SOAPUI之前,須先對WebService的一些基本架構有些了解 :

WebService透過了WSDL (Web Service Definition Language)定義服務提供的介面,並經由架構在Http上的SOAP(Simple Object Access Protocal),來傳輸資料,所以在使用WebService之前,須先從url獲得服務定義的wsdl檔,再以SOAP呼叫服務,獲得回傳結果。

0.安裝soapUI

http://www.soapui.org/
下載安裝檔(這裡是使用 soapui-x32-3_5_1.exe , win32 installer)

1.建立Web Service Project

File => New soapUI Project
soapui-pic

選擇專案名稱以及WebService之wsdl定義檔,建立project。

2.呼叫WebService

匯入wsdl後,專案底下會顯示所有可以呼叫的operation

soapui-pic2

開啟sample request或按右鍵新增Request,進入Request editor

soapui-pic3

於問號處填入要傳入WebService的參數,並按左上角的箭頭執行呼叫,並取得回傳訊息,這樣就完成WebService的呼叫了。
soapui-pic4

3.建立測試


建立TestCase:
於Request處按右鍵,選擇Add to Testcase或於專案建立新的TestSuite
soapui-pic5
設定用來測試的參數
soapui-pic6

設定Assertion:
定義在什麼樣的情況下測試算是成功:
點選Request Editor的Assertion
soapui-pic7

選擇加入Assertion,設定Assertion的種類,這裡選擇Contains,會偵測回傳結果中是否包含指定的字串
soapui-pic8

測試:
按左上角執行測試,可以點選整個TestSuite,執行所有的TestCase並取得結果
soapui-pic9

建立連續的測試案例


在有些情況下,會需要測試一連串的WebService步驟,並利用之前取得的結果作為下一個參數,在這裏我們可以利用TestCase的Property Transfer來移轉結果作為下一個Request的參數。

1.於TestCase Options勾選Maintain HTTP session

soapui-pic10

2.於TestCase加入Property Transfer步驟

soapui-pic11

3.可以用Xpath的方式取得結果內的參數,將其移轉到下一個Request

(如果回傳值為xml字串的話,可以先將結果設為property,再用Xpath把需要的參數轉移到其他Request)
soapui-pic12

4.Run Testcase

soapui-pic13

參考資料:

如何建立一個Test Project以及測試

SOAPUI入門

No comments:

Post a Comment