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