WebService性能測(cè)試
什么是WebService?
假如有兩個(gè)國(guó)家,java國(guó)和.net國(guó);兩國(guó)為了發(fā)展經(jīng)濟(jì),互通貿(mào)易,需要交流,但java國(guó)說(shuō)的是java語(yǔ)言,.net國(guó)說(shuō)的.net語(yǔ)言。為了方便交流,創(chuàng)造了第三方語(yǔ)言WebService。這樣說(shuō)不準(zhǔn)確,WebService不是一個(gè)語(yǔ)言;暫時(shí)先這樣理解。
讓這兩國(guó)人民全為了貿(mào)易,再全新的學(xué)習(xí)一門語(yǔ)言,他們不樂(lè)意了。自己國(guó)的語(yǔ)言說(shuō)的好好的,干嘛要費(fèi)那么大力氣再學(xué)一個(gè)語(yǔ)言。 那能不能造出個(gè)電子產(chǎn)品來(lái)完成這種功能?從表面上來(lái)理解:WebService 就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過(guò)Web進(jìn)行調(diào)用的API。你能夠用編程的方法通過(guò)Web來(lái)調(diào)用這個(gè)應(yīng)用程序。當(dāng)然,不能把把這個(gè)電子產(chǎn)品理解一為一個(gè)通用的東西,我們做手機(jī)外貿(mào)的,要做具有手機(jī)相關(guān)于功能的電子產(chǎn)品(應(yīng)用程序)。你做衣服外貿(mào)的,要做具有衣服相關(guān)功能的電子產(chǎn)品。也可以這樣理解:Web service平臺(tái)是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在Web上實(shí)現(xiàn)互操作性。你可以用任何你喜歡的語(yǔ)言,在任何你喜歡的平臺(tái)上寫Web service ,只要我們可以通過(guò)Web service標(biāo)準(zhǔn)對(duì)這些服務(wù)進(jìn)行查詢和訪問(wèn)。
兩國(guó)人民打算要做這么個(gè)東西,那就要來(lái)制定這個(gè)東西的規(guī)范,不是java國(guó)作出來(lái)的東西,.net國(guó)的人怎么知道它是什么玩意,有什么功能。對(duì)吧。Web service平臺(tái)必須提供一套標(biāo)準(zhǔn)的類型系統(tǒng),用于溝通不同平臺(tái)、編程語(yǔ)言和組件模型中的不同類型系統(tǒng)。Web service平臺(tái)也必須提供一種標(biāo)準(zhǔn)來(lái)描述Web service,讓客戶可以得到足夠的信息來(lái)調(diào)用這個(gè)Web service。最后,我們還必須有一種方法來(lái)對(duì)這個(gè)Web service進(jìn)行遠(yuǎn)程調(diào)用。這種方法實(shí)際是一種遠(yuǎn)程過(guò)程調(diào)用協(xié)議(RPC)。
好了,兩國(guó)人民既然要來(lái)制定這個(gè)規(guī)范,那就坐下來(lái)具體說(shuō)說(shuō),應(yīng)該怎么制定吧!
XML和XSD
可擴(kuò)展的標(biāo)記語(yǔ)言(XML)是Web service平臺(tái)中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML主要的優(yōu)點(diǎn)在于它既是平臺(tái)無(wú)關(guān)的,又是廠商無(wú)關(guān)的。無(wú)關(guān)性是比技術(shù)優(yōu)越性更重要的:軟件廠商是不會(huì)選擇一個(gè)由競(jìng)爭(zhēng)對(duì)手所發(fā)明的技術(shù)的。
XML解決了數(shù)據(jù)表示的問(wèn)題,但它沒(méi)有定義一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,更沒(méi)有說(shuō)怎么去擴(kuò)展這套數(shù)據(jù)類型。例如,整形數(shù)到底代表什么?16位,32位,還是64位?這些細(xì)節(jié)對(duì)實(shí)現(xiàn)互操作性都是很重要的。W3C制定的XML Schema(XSD)就是專門解決這個(gè)問(wèn)題的一套標(biāo)準(zhǔn)。它定義了一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,并給出了一種語(yǔ)言來(lái)擴(kuò)展這套數(shù)據(jù)類型。Web service平臺(tái)就是用XSD來(lái)作為其數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語(yǔ)言(如VB.NET或C#)來(lái)構(gòu)造一個(gè)Web service時(shí),為了符合Web service標(biāo)準(zhǔn),所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為XSD類型。你用的工具可能已經(jīng)自動(dòng)幫你完成了這個(gè)轉(zhuǎn)換,但你很可能會(huì)根據(jù)你的需要修改一下轉(zhuǎn)換過(guò)程。在第二章中,我們將深入XSD,學(xué)習(xí)怎樣轉(zhuǎn)換自定義的數(shù)據(jù)類型(例如類)到XSD的類型。
SOAP
Web service建好以后,你或者其他人就會(huì)去調(diào)用它。簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)提供了標(biāo)準(zhǔn)的RPC方法來(lái)調(diào)用Web service。實(shí)際上,SOAP在這里有點(diǎn)用詞不當(dāng):它意味著下面的Web service是以對(duì)象的方式表示的,但事實(shí)并不一定如此:你完全可以把你的Web service寫成一系列的C函數(shù),并仍然使用SOAP進(jìn)行調(diào)用。SOAP規(guī)范定義了SOAP消息的格式,以及怎樣通過(guò)HTTP協(xié)議來(lái)使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的數(shù)據(jù)編碼方式。
WSDL
你會(huì)怎樣向別人介紹你的Web service有什么功能,以及每個(gè)函數(shù)調(diào)用時(shí)的參數(shù)呢?你可能會(huì)自己寫一套文檔,你甚至可能會(huì)口頭上告訴需要使用你的Web service的人。這些非正式的方法至少都有一個(gè)嚴(yán)重的問(wèn)題:當(dāng)程序員坐到電腦前,想要使用你的Web service的時(shí)候,他們的工具(如Visual Studio)無(wú)法給他們提供任何幫助,因?yàn)檫@些工具根本就不了解你的Web service。解決方法是:用機(jī)器能閱讀的方式提供一個(gè)正式的描述文檔。Web service描述語(yǔ)言(WSDL)就是這樣一個(gè)基于XML的語(yǔ)言,用于描述Web service及其函數(shù)、參數(shù)和返回值。因?yàn)槭腔赬ML的,所以WSDL既是機(jī)器可閱讀的,又是人可閱讀的,這將是一個(gè)很大的好處。一些最新的開發(fā)工具既能根據(jù)你的Web service生成WSDL文檔,又能導(dǎo)入WSDL文檔,生成調(diào)用相應(yīng)Web service的代碼。
好吧!我想我們大體的了解了WebService是什么東西,再來(lái)理解WebService性能,你寫好的一個(gè)WebService的應(yīng)用程序的接口放那里,會(huì)有好多人來(lái)調(diào)用,當(dāng)然會(huì)有質(zhì)量問(wèn)題了。人多的時(shí)候,會(huì)不會(huì)有不成功啊?會(huì)不會(huì)慢啊?所以要 對(duì)這個(gè)“接口”做性能測(cè)試。
其實(shí)有不懂的地方,我發(fā)送什么樣的請(qǐng)求來(lái)調(diào)用那個(gè)“接口”做測(cè)試,soapUI是自動(dòng)幫我們完成SOAP協(xié)議請(qǐng)求的!由于剛接觸這個(gè)工具,希望一高手指點(diǎn)學(xué)習(xí)。
posted on 2014-03-12 10:40 順其自然EVO 閱讀(496) 評(píng)論(0) 編輯 收藏 所屬分類: web 前端性能測(cè)試