開(kāi)源的Web Service測(cè)試工具 軟件測(cè)試
原文:
Three open source Web service testing tools get high marks - Capable soapUI, TestMaker, and WebInject toolsets shine once you conquer their learning curves
- Rick Grehan
由于IT界對(duì)Web services的持續(xù)關(guān)注和偏愛(ài),以及越來(lái)越多的Web-service構(gòu)建工具的出現(xiàn),Web service變得更加容易創(chuàng)建 – 并且,很容易一團(tuán)糟。
Web service其實(shí)是一些暴露給網(wǎng)絡(luò)(不管是內(nèi)網(wǎng)還是外網(wǎng))的程序的集合。而一個(gè)Web service的錯(cuò)誤可能激怒的不僅僅是監(jiān)視和維護(hù)著服務(wù)器的經(jīng)理和管理員,還有調(diào)用了你的Web service的客戶。要么把你的Web service做好,要么等著兩邊的指責(zé)。
在本文中,我會(huì)分析3款聲稱能驗(yàn)證你的Web services的正確性的工具:soapUI、TestMaker和WebInject。三款都是開(kāi)源的,能免費(fèi)下載并整合到你的下一個(gè)Web services項(xiàng)目中去。
需要注意的是:在使用這些工具之前你應(yīng)該理解SOAP和HTTP協(xié)議。有些商業(yè)產(chǎn)品提供的是SOAP的“偽代碼”。把那些難于閱讀的XML翻譯成易讀的偽代碼,能幫助新手和有經(jīng)驗(yàn)的SOAP用戶明白某個(gè)SOAP請(qǐng)求和響應(yīng)之間發(fā)生的事情。這三款開(kāi)源的Web service測(cè)試工具需要額外的工作,我推薦中等級(jí)別的開(kāi)發(fā)人員使用,學(xué)習(xí)曲線會(huì)適當(dāng)?shù)乇壬虡I(yè)產(chǎn)品的長(zhǎng)。
SoapUI1.6
我用的是1.6版本的soapUI,一款從Eviware而來(lái)的基于Java的工具。這個(gè)版本的soapUI在自己獨(dú)立的UI里執(zhí)行;新的1.7版本包括NetBeans、InterlliJ和Eclipse的插件。
用戶界面遵循普遍的IDE架構(gòu)設(shè)計(jì):左邊是導(dǎo)航面板,右邊是內(nèi)容面板,額外的屬性面板放在底部。如果你用過(guò)類似Visual Studio的IDE的話,你會(huì)發(fā)現(xiàn)使用soapUI很順手。
soapUI把工作組織成項(xiàng)目。每個(gè)項(xiàng)目主要由需要測(cè)試的接口來(lái)識(shí)別。在這里,接口是指另外一端的指向一個(gè)暴露了Web service方法的站點(diǎn)的URI(統(tǒng)一資源標(biāo)識(shí))。你可以很快地創(chuàng)建一個(gè)基本的項(xiàng)目結(jié)構(gòu);soapUI能接受一個(gè)文件的WSDL或者一個(gè)Web service終點(diǎn)傳輸?shù)腤SDL。
項(xiàng)目被有層次結(jié)構(gòu)地組織,并且包含一個(gè)或多個(gè)TestSuite,TestSuite包含一個(gè)或多個(gè)TestCase,TestCase包含一個(gè)或多個(gè)測(cè)試步驟。真正的工作 – 發(fā)送請(qǐng)求、接受響應(yīng)、分析結(jié)果、改變測(cè)試執(zhí)行流程 – 發(fā)生在測(cè)試步驟這個(gè)層面。TestCase收集和組織需要執(zhí)行某個(gè)對(duì)目標(biāo)的特定操作的步驟。TestSuite匯總那些發(fā)生在某個(gè)特定區(qū)域的Web service的TestCase(例如訂購(gòu)一本書所需要的操作)。你可以通過(guò)右鍵點(diǎn)擊項(xiàng)目樹(shù)中的父節(jié)點(diǎn)并選擇上下文菜菜單中的“New”菜單,來(lái)創(chuàng)建新的TestSuite、TestCase和測(cè)試步驟。
soapUI通過(guò)檢查附加給測(cè)試響應(yīng)的斷言來(lái)判斷測(cè)試是通過(guò)還是失敗。有大量的斷言可供選擇,從“simple contains”測(cè)試 – 如果某個(gè)提供的字符串匹配則表示成功 – 到“XPath matching”,對(duì)響應(yīng)信息執(zhí)行復(fù)雜的XPath表達(dá)式匹配成功則表示測(cè)試通過(guò)。
測(cè)試步驟與程序代碼很類似。目前,soapUI定義了6個(gè)測(cè)試步驟類型,普遍的是請(qǐng)求(Request),發(fā)送一個(gè)HTTP請(qǐng)求給目標(biāo)地址,并接收一個(gè)響應(yīng)?刹迦霔l件跳轉(zhuǎn)測(cè)試步驟(Conditonal GoTo)來(lái)控制流程。一個(gè)或多個(gè)檢查近的響應(yīng)的Xpath表達(dá)式是必不可少的。第一個(gè)表達(dá)式的成功會(huì)導(dǎo)致相關(guān)測(cè)試步驟分支的執(zhí)行。