“id”屬性不僅提供了測試用例的唯一名稱,還標識了測試用例的執行順序。其他的屬性都是很直觀易懂的(只要你細讀它的文檔)。賦給“postbody”屬性的值告訴WebInject取當前目錄名為“soapListTest.xml”的XML文件,并用它來組成SOAP請求的內容。
如果結果包含“My Antonia”字符串,則測試通過。WebInject提供了三個額外的“verifypositive”屬性,每個的值都被作為正則表達式處理。這意味著你可以創建很復雜的驗證說明 – 更確切地說,你可以構建一個測試步驟,只有通過4個正則表達式的過濾條件才算通過測試,每一個正則表達式對應一個“verifypositive”屬性”。一個測試用例元素還可以包括4個“verifynegative”屬性,功能與“verifypositive”屬性”相反,如果任何一個正則表達式不匹配,則測試用例失敗。
本質上,一個WebInject“項目”只是一連串的組成的XML文件。WebInject的簡單結構讓你可以非?焖俚貥嫿y試。但是你必須適當了解SOAP協議的機制,還需要一個工具幫助你捕獲和產生HTTP/SOAP請求和響應。你需要那些請求信息來構建POST的正文,需要那些響應信息來創建合適的“verifypositive”和“verifynegative”的正則表達式來檢查測試是否成功。我使用Eclipse的Web Service工具包來為WebInject獲取請求和響應信息,一旦我掌握其中的訣竅,我覺得創建測試用例是很簡單的事情。
對于每個測試用例的執行,WebInject的UI都會顯示狀態(通過或者失敗)。你可以配置WebInject以提供完整的HTTP請求和響應信息,這是一個非常有用的功能,如果你想在測試用例失敗時調試的話。
除此之外,UI還能產生實時的圖表,為每一對請求和響應產生往返時間的統計圖表,因此你可以使用WebInject構建和監視性能測試。而且WebInject還為MRTG(Multi Routing Triffic Grapher)提供插件,MRTG是一個網絡監視和數據收集工具,允許你執行和捕獲測試用例運行一段時間的結果,還能分析數據的模式和趨勢。
WebInject的最大特點是它的簡單性。一旦你掌握了WebInject的XML命令的訣竅,你可以快速地構建、修改和擴展測試用例。整個文檔包含一個Web頁面,這些信息可以在同一個地方讀取到。但是,這個頁面的文檔有時候也會讓你感覺不知道如何進一步測試。此外,你需要適當了解SOAP協議,還有額外的一個工具來提取Web Service響應信息的POST正文,以便創建測試用例。
為你效勞
這三款工具從快速和易用到復雜和強大的都有。如果你需要快速編碼來測試你的Web service的話,WebInject是個符合邏輯的選擇;你將在一個下午的時間里測試你的Web service。如果你需要高端的工具,讓你可以創建強大的測試,可能擴展到其他的系統資源 – 文件系統、數據庫、e-mail等的話,那么TestMaker是最佳選擇。但是首先要看看Jython,準備好艱難的學習過程。
我喜歡中間的soapUI。由soapUI的向導創建的基本測試結構比起TestMaker創建的要容易讓其豐滿起來。而且如果我需要更復雜的測試,我還可以使用soapUI的Groovy。
如果說把這些產品與商業的Web service測試工具比較的話,我會說它們是大雜燴。它們雖然是免費的,并且對于簡單到中等復雜程度的工作而言工作得不錯;但是另一方面,它們比商業工具在易用性方面要弱些,你需要做一些復雜的工作,必須自己構建。TestMaker看起來比較接近商業工具,但是需要學習Jython意味著需要更長的時間來構建測試。soapUI看起來沒有那么專業,但是可以讓你不需要編程就能創建可用的測試。WebInject則是徹頭徹尾的開發人員的工具。你需要懂得SOAP,才能很好地使用它,并且能力也不會有soapUI或TestMaker那么強大,因為它的測試用例依賴模板驅動。
文章來源于領測軟件測試網 http://www.kjueaiud.com/