您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源性能測(cè)試工具 >
開(kāi)源的Web Service測(cè)試工具介紹
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/25 15:45:00 ] 推薦標(biāo)簽:

開(kāi)源的Web Service測(cè)試工具介紹

來(lái)源: javafan


在本文中,我會(huì)分析3款聲稱能驗(yàn)證你的Web services的正確性的工具:soapUI、TestMaker和WebInject。三款都是開(kāi)源的,能免費(fèi)下載并整合到你的下一個(gè)Web services項(xiàng)目中去。

由于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)一本書(shū)所需要的操作)。你可以通過(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ò)! y(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í)行! 

soapUI強(qiáng)大的是Groovy測(cè)試步驟。Groovy是類Java的輕量級(jí)腳本語(yǔ)言。一個(gè)Groovy測(cè)試步驟可以是任何Groovy代碼,也是說(shuō)基本上Groovy能做的事情,在測(cè)試步驟中也能做。測(cè)試步驟中的Groovy代碼可以訪問(wèn)soapUI框架。例如,一個(gè)Groovy測(cè)試步驟可以通過(guò)JDBC讀取數(shù)據(jù)庫(kù)的信息,與前一個(gè)測(cè)試步驟的響應(yīng)信息進(jìn)行比較,并響應(yīng)地修改執(zhí)行的流程 – 甚至執(zhí)行另外一個(gè)TestCase! 

除了功能測(cè)試外,soapUI還能對(duì)Web service進(jìn)行壓力測(cè)試。每個(gè)壓力測(cè)試包含一個(gè)或多個(gè)TestCase的執(zhí)行,并且可以調(diào)整用于模擬各種各樣的場(chǎng)景。你可以指定測(cè)試執(zhí)行一定量的時(shí)間長(zhǎng)度,或者一定量的迭代周期,指定以并發(fā)的方式執(zhí)行還是隨時(shí)間線性變化的方式! ‘(dāng)壓力測(cè)試完成后,一個(gè)壓力測(cè)試編輯器會(huì)為每個(gè)TestCase提供大量的統(tǒng)計(jì)數(shù)據(jù):執(zhí)行的次數(shù),大、小、平均執(zhí)行時(shí)間等。還可以在統(tǒng)計(jì)圖表頁(yè)以圖表的形式查看這些數(shù)據(jù)! 

讓soapUI運(yùn)行起來(lái)很容易;能很快地構(gòu)建一個(gè)基本的項(xiàng)目和基本的測(cè)試。我對(duì)這個(gè)工具不滿的地方是:在系統(tǒng)中沒(méi)有上下文幫助,這讓你在某些區(qū)域想知道可供選擇的是什么變得困難。不管怎樣,文檔提供的還是挺不錯(cuò)的,只要持續(xù)使用,一些初的理解上的混淆都會(huì)慢慢消失。TestMaker  TestMaker是PushToTest的一個(gè)Web service測(cè)試工具。它需要Java1.4或以上。我把TestMaker4.4安裝在Ubuntu Linux6.10,看Web service測(cè)試在Linux會(huì)是怎樣的。安裝很簡(jiǎn)單,一旦設(shè)置好JAVA_HOME環(huán)境變量后,TestMaker啟動(dòng)和運(yùn)行都沒(méi)有問(wèn)題。  

TestMaker的測(cè)試是用稱為“測(cè)試代理”(test agents)的腳本來(lái)完成的。TestMaker提供一個(gè)“代理向?qū)?rdquo;(Agent Wizard)來(lái)讀入WSDL定義并自動(dòng)創(chuàng)建一個(gè)測(cè)試代理的基本結(jié)構(gòu)! 

需要指出的是:TestMaker不僅僅能測(cè)試Web services;它還能被用于測(cè)試Web應(yīng)用程序。與TestMaker綁定在一起的還有一個(gè)網(wǎng)絡(luò)監(jiān)視工具,能監(jiān)視瀏覽器和目標(biāo)Web應(yīng)用之間的HTTP通信,并且從交互過(guò)程中產(chǎn)生測(cè)試用例。然而,我沒(méi)有體驗(yàn)?zāi)切┕δ,因(yàn)槟桥cWeb services的關(guān)系不大! 

TestMaker的測(cè)試代理是用Jython(用Java寫(xiě)的Python)寫(xiě)的。這是把雙刃劍。一方面,TestMaker的腳本可以變得很強(qiáng)大,擁有編程能力。Jython可以訪問(wèn)所有Java庫(kù),還有TestMaker提供的類和方法。TestMaker大的庫(kù)是TOOL(Test Object Oriented Library),它包括所有處理各種通訊協(xié)議的類:HTTP,HTTPS、SOAP、JDBC等。因此,你可以創(chuàng)建很精細(xì)的測(cè)試用例來(lái)處理任何Web service可能被調(diào)用的客戶端應(yīng)用! ×硪环矫,你需要掌握J(rèn)ython來(lái)充分利用TestMaker,或者換句話說(shuō),你需要知道Python和Java。這未必是件壞事,但是它意味著TestMaker的學(xué)習(xí)曲線要比其他工具陡峭! 

由代理向?qū)?Agent Wizard)創(chuàng)建的基本的測(cè)試代理(test agent)是很簡(jiǎn)單的:它知道目標(biāo)服務(wù)的Web方法,并且執(zhí)行不會(huì)出現(xiàn)錯(cuò)誤,但是它沒(méi)有真正執(zhí)行任何請(qǐng)求、響應(yīng)或者測(cè)試結(jié)果。我發(fā)現(xiàn)我需要檢查一個(gè)測(cè)試代理例子的源代碼來(lái)填寫(xiě)缺少的內(nèi)容。  

一旦你跨越了陡峭的學(xué)習(xí)曲線,可以很容易地通過(guò)拷貝、粘貼和調(diào)整已有的代碼來(lái)創(chuàng)建新的測(cè)試。另外,用戶界面的用戶體驗(yàn)很好。開(kāi)始啟動(dòng)TestMaker的時(shí)候,它會(huì)打開(kāi)一個(gè)“QuickStart”窗口,在這里,你可以運(yùn)行代理向?qū)?Agent Wizard),直接跳到測(cè)試代理提供的例子,或者深入閱讀它的文檔。TestMaker的用戶界面也是標(biāo)準(zhǔn)的多窗口IDE,左邊是導(dǎo)航面板,右邊是編輯區(qū)域,結(jié)果顯示區(qū)域在右下端,類導(dǎo)航視圖界面在左下端。

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd