複製鏈接
請複製以下鏈接發送給好友

soapUI

鎖定
soapUI是一個開源測試工具,通過soap/http來檢查、調用、實現Web Service的功能/負載/符合性測試。該工具既可作為一個單獨的測試軟件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。把一個或多個測試套件(TestSuite)組織成項目,每個測試套件包含一個或多個測試用例(TestCase),每個測試用例包含一個或多個測試步驟,包括髮送請求、接受響應、分析結果、改變測試執行流程等。 [1] 
中文名
SoapUI
外文名
SoapUI
實    質
一個開源測試工具
優    點
容易管理服務端點等
缺    點
不支持JMS協議等
學    科
計算機科學

soapUI簡介

SOAPUl是由標準的Java Swing開發的一個GUl自動化測試工具,從某種程度上説,它是JUnit測試框架的擴展和衍生。SOAPUI工具提供了包含操作層面和模式層面的完整的WSDL覆蓋程度分析,使到達每個元素的所有路徑都被測試過了。它提供了測試重構能力,使用户可以隨着WSDL的更新重構他們所有的測試。測試重構甚至還考慮到了更新過的WSDL會如何影響到XPath表達式。SOAPUl的需求管理功能可以將測試用例和需求有機地結合起來,其中需求可以被直接鍵入或者導入。SOAPUl可以直接從一個數據源得到測試數據。
SOAPUI根據WSDL生成SOAP數據包,手工填入參數後可以直接進行性能測試。SOAPUI能夠捕捉SOAP請求和響應、創建測試請求、測試用例並且提供仿真的服務。
SOAPUI提供一個工具通過SOAP/HTTP來檢查、調用、實現Web服務間的功能、負載、符合性測試,該工具既可作為一個桌面應用軟件使用,也可利用插件集成到Eclipse、maven2.X、netbeans和intellij中使用。 [2] 

soapUI特點

1.Groovy Script 支持SOAPUI
SOAPUI最強大的是Groovy腳本測試步驟。Groovy充分利用了工業標準JUnit框架,來簡化單元測試的創建和使用過程。單元測試在Groovy中的應用集成了動態類型語言和靜態類型語言的安全性。
一個Groovy測試步驟可以是任何Groovy代碼,也就是説基本上Groovy能做的事情,在SOAPUI測試步驟中也能做。測試步驟中的Groovy 代碼可以訪問SOAPUI框架。一個Groovy 測試步驟可以通過JDBC讀取數據庫的信息,與前一個測試步驟的響應信息進行比較,並相應地修改執行流程,也可以執行另外一個TestCase。SOAPUI中使用Groovy腳本來編寫斷言,可以重用測試腳本,編寫同一Groovy腳本代碼可以重用到其它所有的測試用例裏面。
2.靈活的屬性傳值模式
屬性傳遞在SOAPUI中是一種TestSteps在屬性容器之間傳遞屬性,可以使用XpathXQuery表達式來指明屬性傳遞源端和目的端,可以包含任意數目的屬性傳遞。XPath/Xquery斷言描述和屬性傳遞使用同樣的Saxon XPath/XQuery引擎。
SOAPUI可以採用多種方式來傳遞屬性,這樣可以在TestStep之間更加靈活地傳遞屬性值。
3.SOAPUI中的Mock 服務
Mock是一個映射對象,它可以避免編寫複雜的、不完整的、難以保持和難於理解的測試代碼[]。使用Mock可以使許多有價值的代碼單獨測試,Mock可以隔離被測代碼間的關聯程度,Mock對象的出現可以簡化測試結構,避免被測代碼因環境問題而出現的意外污染,可以保證一個時間段測試代碼的特性,並在被測代碼出現問題時,及時通知測試人員。
SOAPUI實現了Mock服務,Mock服務可以從不同的WSDL文件中展現任意的虛擬操作MockOperations,同時也可分派其虛擬響應Mock Response,Mock 服務可以直接在SOAPUI中運行或者通過命令行模式的MockServiceRunner來運行,它也可以調用包括SOAPUI本身在內的任意客户端。SOAPUI可以在TestStep模擬soap請求,來實現異步Web服務的測試。 [2] 

soapUI基本測試框架

SOAPUI的核心對象模型定義了SOAPUl中所有的模型對象(工程、接口、操作等),是一個抽象接口並且是隻讀的。
SOAPUI集成了許多API函數和擴展的API,可以直接用在其它程序中。主要的類庫工具包及其功能介紹如下:
1)com.eviware.SOAPUI.model.tree定義了樹型模型TreeModel用於SOAPUI的navigator,它包含了SOAPUITreeNode,當前,針對增加新的核心模型的實現,SOAPUI並沒有提供一個builder/factory 機制。WSDL1.1的核心對象的實現core-implementation是硬編碼到當前工作台的實現類。
2)com.eviware.SOAPUI.impl.WSDL.*
實現了核心對象模型WSDL/SOAP/HTTP-Binding包含核心對象模型的實現,每個實現類都在相應的配置文件的元素使用相應的XMLBeans來描述;此工具包還包括了所有模型對象元素實現行為和所有WSDL/SOAP相關支持類(如效驗,導入等)。
3)com.eviware.S0APUI.impl.WSDL.teststeps.*
包含斷言相關類TestStep的衍生類。 [2] 

soapUI優缺點

soapUI優點

(1)SOAPUI工具適合QA和測試人員,而不需要開發人員使用編程來實現測試用例。它能夠基於WSDL自動產生測試消息。
(2)SOAPUI能夠直接引用外部的屬性文件來簡化測試步驟,通過建立斷言SOAPUI可以進行XML模式效驗和錯誤效驗。
(3)SOAPUI可以用於壓力測試,容易管理服務端點。
(4)SOAPUI提供方便的接口能夠集成JBoss、Ant、XMLBean、ApacheTCPMon等多種工具。
(5)SOAPUI可以完成多種WebService的測試場景。 [2] 

soapUI缺點

(1)S0APUI使用的是自己的Web服務客户端,它創建的測試消息不同於通常意義上的基於JAX或者其它的Web服務客户端的工作過程,S0APUI並不從WSDL中產生Java類,它也不處理Java對象的序列化和反序列化,這樣的結果是客户端並不是像真正的Web服務消費者那樣去調用Web服務。
(2)SOAPUI的RequestTransportRegistry類並不提供從外部增加新的協議的機制,它不支持JMS協議。
(3)SOAPUI中不能控制Mock服務的WSDL文件服務端點的URL,也就是説,如果需要WSDL請求在到達實際的Mock對象之前被其它對象處理,是無法控制的,此問題還有待於進一步的研究和分析。 [2] 
參考資料