此處我們以qqCheckOnline的WebService接口為例進行講解,接口的具體信息如下:
l 接口描述:獲得騰訊QQ在線狀態(tài)
l 入?yún)ⅲ簈qCode髓考,String類型部念,默認QQ號碼:8698053
l 出參:qqCheckOnlineResult,String類型
返回數(shù)據(jù)代表的含義為:Y = 在線氨菇;N = 離線印机;E = QQ號碼錯誤;A = 商業(yè)用戶驗證失斆偶荨射赛;V = 免費用戶超過數(shù)量
l 返回格式:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length string
了解了接口信息之后我們來看看如何完成接口用例腳本的設(shè)計,大致步驟如圖5.1所示
圖5.1 接口用例腳本設(shè)計步驟
5.2.1 單接口的測試方法
按照圖5.1所示的步驟完成初步設(shè)置后奶是,腳本結(jié)構(gòu)如圖5.2所示楣责,這個是最簡單的腳本狀態(tài),還有很多地方需要我們優(yōu)化改進聂沙,下面我們就把常見的優(yōu)化方法分別講解下秆麸。注意:后續(xù)的操作都在TestSuite中完成。
圖5.2 腳本結(jié)構(gòu)
根據(jù)接口的信息我們在設(shè)計測試用例的時候及汉,可能需要考慮多種情況沮趣,包括但不限于正確的QQ號碼、錯誤的QQ號碼坷随、處于在線狀態(tài)的QQ號碼和處于離線狀態(tài)的QQ號碼等來驗證各種情況下的接口的正確性房铭,具體的用例需要根據(jù)具體的接口信息來設(shè)計。此處我們只以正確且處于在線狀態(tài)的QQ號碼為例進行講解温眉。
1. 參數(shù)化
打開我們TestSteps下的qqCheckOnline接口缸匪,如圖5.3所示,你會發(fā)現(xiàn)其中的qqCode是寫死的类溢,顯然這個不是我們希望的凌蔬,我們希望這里是“活”的。
圖5.3 qqCode
那如何能使該參數(shù)變“活”呢,這時候就要利用DataSource這個強大的功能了砂心。在DataSource中可以通過多種外部介質(zhì)來實現(xiàn)參數(shù)化懈词,比如:
l File:文本文件的形式。
l Excel:最好使用2003格式的Excel辩诞。
l Grid:表格形式坎弯。
l JDBC:JDBC數(shù)據(jù)源,就是從數(shù)據(jù)庫中獲取躁倒。
l XML:XML格式荞怒。
l Groovy:Groovy腳本形式。
這里我們使用File類型的文本文件形式進行參數(shù)化秧秉,大致實現(xiàn)步驟如下:
1) 在本地電腦上新建一個文本文件:qq.txt褐桌,并在文件中輸入如圖5.4所示的內(nèi)容。
圖5.4 qq.txt
2) 新建一個DataSource象迎,填入相關(guān)的數(shù)據(jù)信息荧嵌,注意它的順序要位于接口之前。如圖4.5所示砾淌。
圖5.5 DataSource
部分字段的解釋如下:
l DataSource:選擇外部的存儲介質(zhì)啦撮。
l File:選擇文件的路徑。
l Properties:把從外部存儲介質(zhì)中獲取的結(jié)果保存到這里汪厨。
l 其余的字段可以保持默認赃春。
3) 切換到qqCheckOnline接口乱顾,把之前寫死的qqCode變“活”咸灿。只需在qqCode參數(shù)處右鍵鼠標選擇“Get Data”下對應步驟中的Properties即可媳荒。如圖5.6所示剪返。
圖5.6 Get Data
4) 增加DataSource Loop,完成參數(shù)化的遍歷声诸,如果不添加這個則永遠取出來的是第一個QQ號碼殊橙,最終的腳本結(jié)構(gòu)如圖5.7所示衬衬。其中DataSource Step是選擇的源數(shù)據(jù)殖妇,Target Step是選擇目標步驟刁笙。這里需要特別注意DataSource、接口谦趣、DataSource Loop的順序疲吸。
圖5.7 DataSource Loop
2. 斷言(檢查點)
既然我們是做接口的功能自動化,那一定會對返回的響應數(shù)據(jù)(出參)進行檢查蔚润,只有符合我們預期結(jié)果才能認為該接口通過測試磅氨,要完成這件事情就需要用到斷言,也就是大家常說的檢查點嫡纠,大致實現(xiàn)步驟如下:
1) 雙擊TestSteps中的接口并運行,在響應區(qū)域?qū)δ阆霗z查的內(nèi)容添加斷言,右鍵選擇Add Assertion->for Cotent除盏,如圖5.8所示叉橱。
圖5.8 選擇斷言
2) 在彈出的“XPath Expression”對話框中我們可以看到已經(jīng)識別出來了要檢查的內(nèi)容就是qqCheckOnlineResult對應的值Y,直接點擊“save”按鈕即可者蠕,如圖5.9所示窃祝。
圖5.9 確認斷言
3) 最終完成后的效果如圖5.10所示,其中Assertions表示的就是斷言踱侣。
圖5.10 斷言效果圖
在SoapUI中有多種形式的斷言粪小,可謂功能十分強大,可以通過單擊“Add Assertion”來查看抡句,具體內(nèi)容見書籍中的第五章探膊。
3. 運行與報告
完成上述步驟之后,你就可以運行本用例腳本了待榔,雙擊本TestCase逞壁,在彈出的“qqCheckOnline TestCase”對話框中點擊“綠色小箭頭”即可,如圖5.13所示锐锣。如果想看SoapUI生成的測試報告腌闯,點擊“文檔”形狀的圖標即可,測試報告樣式如圖5.14所示雕憔。
所有類似這樣單接口的測試大概都是這個過程姿骏,大家需要根據(jù)具體的接口信息做一定的調(diào)整,但整體的思路和方法是大同小異的斤彼,也希望大家在不斷學習的過程中可以悟到“一通百通”的道理分瘦,這樣即使你只有2年的工作經(jīng)驗也可能會超過有5年工作經(jīng)驗的朋友。