1. 程式人生 > >SOAP WebService接口功能自動化測試

SOAP WebService接口功能自動化測試

pat cfb 彈出 steps 優化 參數化 解釋 初步 使用

百度搜索:小強測試品牌

QQ群:522720170

本節內容節選自《小強軟件測試瘋狂講義》一書

此處我們以qqCheckOnline的WebService接口為例進行講解,接口的具體信息如下:

l 接口描述:獲得騰訊QQ在線狀態

l 入參:qqCode,String類型,默認QQ號碼:8698053

l 出參:qqCheckOnlineResult,String類型

返回數據代表的含義為:Y = 在線;N = 離線;E = QQ號碼錯誤;A = 商業用戶驗證失敗;V = 免費用戶超過數量

l 返回格式:

HTTP/1.1 200 OK

Content-Type: text/xml; charset=utf-8

Content-Length: length

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<qqCheckOnlineResponse xmlns="http://WebXml.com.cn/">

<qqCheckOnlineResult>string</qqCheckOnlineResult>

</qqCheckOnlineResponse>

</soap:Body>

</soap:Envelope>

了解了接口信息之後我們來看看如何完成接口用例腳本的設計,大致步驟如圖5.1所示

技術分享

圖5.1 接口用例腳本設計步驟

5.2.1 單接口的測試方法

按照圖5.1所示的步驟完成初步設置後,腳本結構如圖5.2所示,這個是最簡單的腳本狀態,還有很多地方需要我們優化改進,下面我們就把常見的優化方法分別講解下。註意:後續的操作都在TestSuite中完成。

技術分享

圖5.2 腳本結構

根據接口的信息我們在設計測試用例的時候,可能需要考慮多種情況,包括但不限於正確的QQ號碼、錯誤的QQ號碼、處於在線狀態的QQ號碼和處於離線狀態的QQ號碼等來驗證各種情況下的接口的正確性,具體的用例需要根據具體的接口信息來設計。此處我們只以正確且處於在線狀態的QQ號碼為例進行講解。

1. 參數化

打開我們TestSteps下的qqCheckOnline接口,如圖5.3所示,你會發現其中的qqCode是寫死的,顯然這個不是我們希望的,我們希望這裏是“活”的。

技術分享

圖5.3 qqCode

那如何能使該參數變“活”呢,這時候就要利用DataSource這個強大的功能了。在DataSource中可以通過多種外部介質來實現參數化,比如:

l File:文本文件的形式。

l Excel:最好使用2003格式的Excel。

l Grid:表格形式。

l JDBC:JDBC數據源,就是從數據庫中獲取。

l XML:XML格式。

l Groovy:Groovy腳本形式。

這裏我們使用File類型的文本文件形式進行參數化,大致實現步驟如下:

1) 在本地電腦上新建一個文本文件:qq.txt,並在文件中輸入如圖5.4所示的內容。

技術分享

圖5.4 qq.txt

2) 新建一個DataSource,填入相關的數據信息,註意它的順序要位於接口之前。如圖4.5所示。

技術分享

圖5.5 DataSource

部分字段的解釋如下:

l DataSource:選擇外部的存儲介質。

l File:選擇文件的路徑。

l Properties:把從外部存儲介質中獲取的結果保存到這裏。

l 其余的字段可以保持默認。

3) 切換到qqCheckOnline接口,把之前寫死的qqCode變“活”。只需在qqCode參數處右鍵鼠標選擇“Get Data”下對應步驟中的Properties即可。如圖5.6所示。

技術分享

圖5.6 Get Data

4) 增加DataSource Loop,完成參數化的遍歷,如果不添加這個則永遠取出來的是第一個QQ號碼,最終的腳本結構如圖5.7所示。其中DataSource Step是選擇的源數據,Target Step是選擇目標步驟。這裏需要特別註意DataSource、接口、DataSource Loop的順序。

技術分享

圖5.7 DataSource Loop

2. 斷言(檢查點)

既然我們是做接口的功能自動化,那一定會對返回的響應數據(出參)進行檢查,只有符合我們預期結果才能認為該接口通過測試,要完成這件事情就需要用到斷言,也就是大家常說的檢查點,大致實現步驟如下:

1) 雙擊TestSteps中的接口並運行,在響應區域對你想檢查的內容添加斷言,右鍵選擇Add Assertion->for Cotent,如圖5.8所示。

技術分享

圖5.8 選擇斷言

2) 在彈出的“XPath Expression”對話框中我們可以看到已經識別出來了要檢查的內容就是qqCheckOnlineResult對應的值Y,直接點擊“save”按鈕即可,如圖5.9所示。

技術分享

圖5.9 確認斷言

3) 最終完成後的效果如圖5.10所示,其中Assertions表示的就是斷言。

技術分享

圖5.10 斷言效果圖

在SoapUI中有多種形式的斷言,可謂功能十分強大,可以通過單擊“Add Assertion”來查看,具體內容見書籍中的第五章。

3. 運行與報告

完成上述步驟之後,你就可以運行本用例腳本了,雙擊本TestCase,在彈出的“qqCheckOnline TestCase”對話框中點擊“綠色小箭頭”即可,如圖5.13所示。如果想看SoapUI生成的測試報告,點擊“文檔”形狀的圖標即可,測試報告樣式如圖5.14所示。

技術分享

所有類似這樣單接口的測試大概都是這個過程,大家需要根據具體的接口信息做一定的調整,但整體的思路和方法是大同小異的,也希望大家在不斷學習的過程中可以悟到“一通百通”的道理,這樣即使你只有2年的工作經驗也可能會超過有5年工作經驗的朋友。

SOAP WebService接口功能自動化測試