工作中會(huì)接觸到很多接口,系統(tǒng)之間涉及的接口類型也多,這里列舉的可能不夠完全,大家可以參考和了解一下自己工作中是否有遇到下面說的這些接口
文中所列舉的測(cè)試工具,對(duì)開發(fā)測(cè)試都有極大的幫助,可以提升工作效率,不信的話可以嘗試一下
1接口類型:
1.1 Java web的接口包含webservice接口、HTTP接口、JavaScript接口、服務(wù)端jar包接口、hessian,jms接口等
1.2webservice接口
1.2.1 何為Web Service?
Web Service是構(gòu)建互聯(lián)網(wǎng)分布式系統(tǒng)的基本部件,它是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過Web進(jìn)行調(diào)用的API。這就是說,別人能夠用編程的方法通過Web來調(diào)用這個(gè)應(yīng)用程序。
它通過標(biāo)準(zhǔn)通信協(xié)議,在互聯(lián)網(wǎng)上以服務(wù)的方式發(fā)布有用的程序模塊,目前大部分是用SOAP作為通信協(xié)議。
它提供一份詳細(xì)的接口說明書,來幫助用戶構(gòu)建應(yīng)用程序,這個(gè)接口說明書叫WSDL(Web服務(wù)描述語(yǔ)言,Web Service Description Language)。
通常已發(fā)布的Web Service要注冊(cè)到管理服務(wù)器,便于使用者查詢和使用。這個(gè)是通過UDDI(統(tǒng)一描述、發(fā)現(xiàn)和集成,Universal Discovery Descriptionand Integration)來完成的。
1.2.2 何為SOAP協(xié)議?
SOAP定義SOAP消息的XML格式(XML格式),如果你用一對(duì)SOAP標(biāo)記(SOAP Elements)把XML文檔括起來,那么這個(gè)就是一個(gè)SOAP消息。
SOAP規(guī)范還定義了怎樣用XML來描述程序數(shù)據(jù),怎樣執(zhí)行RPC(遠(yuǎn)程過程調(diào)用,Remote Procedure Call)。大多數(shù)SOAP解決方案都支持RPC-style應(yīng)用程序,因?yàn)楹芏喑绦騿T已對(duì)DCOM或CORBA熟悉。它還支持Document-style應(yīng)用程序(SOAP消息只包含XML文本信息)。Document-style應(yīng)用程序有很好的靈活性,所以很多用RPC很難構(gòu)建的Web Service用這種方式構(gòu)建。
最后SOAP規(guī)范還定義了HTTP消息是怎樣傳輸SOAP消息的。這并不代表SOAP只能用HTTP來作為傳輸協(xié)議,MSMQ、SMTP、TCP/IP都可以做SOAP的傳輸協(xié)議。
安全性對(duì)于應(yīng)用程序來說是很重要的。那么SOAP的安全性如何呢?對(duì)于把HTTP作為傳輸協(xié)議的SOAP來說是沒有問題的,因?yàn)镠TTP協(xié)議已經(jīng)有很好的安全構(gòu)架。那么用其他傳輸協(xié)議會(huì)出現(xiàn)安全問題嗎?這方面也已經(jīng)有相關(guān)規(guī)范
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-security.asp)。
1.2.3 何為WSDL?
WSDL是一種XML文檔,它定義SOAP消息和這些消息是怎樣交換的。IDL(Interface Description Language,接口描述語(yǔ)言)是用于COM和CORBA的,WSDL是用于SOAP的。WSDL是一種XML文檔,所以可以閱讀和編輯,但很多時(shí)候是用工具來創(chuàng)建、由程序閱讀。
舉個(gè)實(shí)例,當(dāng)讀者需要使用第三方的Web Service構(gòu)建應(yīng)用程序。你可以向接口提供商索取使用WSDL文檔,在該文檔中詳細(xì)的說明了各個(gè)方法的方法名、參數(shù)和參數(shù)類型等信息。在Java等編程語(yǔ)言的IDE(例如My Eclipse)中,可以根據(jù)Web Servie生成對(duì)應(yīng)的測(cè)試代碼,稍微修改一下即可。
1.2.4 何為UDDI?
UDDI可以比喻成電話本,電話本里記錄的是電話信息,而UDDI記錄的是Web Service信息??梢圆话裌eb Service注冊(cè)到UDDI。但如果要讓全球的人知道這個(gè)Web Service,最好還是注冊(cè)到UDDI。
UDDI目錄說明文件也是一個(gè)XML文檔,它包括三個(gè)部分?!鞍醉?yè)(White Paper)”說明提供Web Service的公司(人)信息,比如說名稱、地址和聯(lián)系方式等等?!包S頁(yè)(Yellow Paper)”說明UDDI目錄的分類,比如說金融、服務(wù)和印刷等等?!熬G頁(yè)(green Paper)”說明接口(Web Service 提供的)的詳細(xì)信息。 UDDI提供多種查詢方式,來幫助你找到需要的Web Service。如果你查詢與財(cái)務(wù)有關(guān)的Web Service,那么UDDI會(huì)提供詳細(xì)的信息。
1.2.5 何為XML?
XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語(yǔ)言,它與HTML一樣,都是SGML(Standard Generalized MarkupLanguage,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)。在Web Service接口中,WSDL和UDDI目錄文件都是一種XML文檔,XML解決了數(shù)據(jù)表示的問題。
1.2.6 何為XSD?
XML解決了數(shù)據(jù)表示的問題,但它沒有定義一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,更沒有說怎么去擴(kuò)展這套數(shù)據(jù)類型。例如,整型數(shù)到底代表什么?16位,32位,還是64位?
W3C制定的XML Schema(XSD)就是專門解決這個(gè)問題的一套標(biāo)準(zhǔn)。它定義了一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,并給出了一種語(yǔ)言來擴(kuò)展這套數(shù)據(jù)類型。Web Service就是用XSD來作為其數(shù)據(jù)類型系統(tǒng)的。
1.2.7webservice接口測(cè)試工具:
<1>soapui參考《soapui使用說明》
<2>jmeter參考《jmeter使用說明》
詳細(xì)可參閱:http://note.youdao.com/share/?id=fa8f5ff629f02837b15f70f5fa7765b6&type=note
1.3HTTP接口
1.3.1HTTP協(xié)議
HTTP是hypertext transfer protocol(超文本傳輸協(xié)議)的簡(jiǎn)寫,它是TCP/IP協(xié)議的一個(gè)應(yīng)用層協(xié)議,用于定義WEB瀏覽器與WEB服務(wù)器之間交換數(shù)據(jù)的過程??蛻舳诉B上 web服務(wù)器后,若想獲得web服務(wù)器中的某個(gè)web資源,需遵守一定的通訊格式,HTTP協(xié)議用于定義客戶端與web服務(wù)器通迅的格式
1.3.2HTTP請(qǐng)求的細(xì)節(jié)——請(qǐng)求行
請(qǐng)求行中的GET稱之為請(qǐng)求方式,請(qǐng)求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,常用的有: GET、 POST
用戶如果沒有設(shè)置,默認(rèn)情況下瀏覽器向服務(wù)器發(fā)送的都是get請(qǐng)求,例如在瀏覽器直接輸?shù)刂吩L問,點(diǎn)超鏈接訪問等都是get,用戶如想把請(qǐng)求方式改為post,可通過更改表單的提交方式實(shí)現(xiàn)。
不管POST或GET,都用于向服務(wù)器請(qǐng)求某個(gè)WEB資源,這兩種方式的區(qū)別主要表現(xiàn)在數(shù)據(jù)傳遞上:如果請(qǐng)求方式為GET方式,則可以在請(qǐng)求的URL地址后以?的形式帶上交給服務(wù)器的數(shù)據(jù),多個(gè)數(shù)據(jù)之間以&進(jìn)行分隔,例如:GET/mail/1.html?name=abc&password=xyz HTTP/1.1
GET方式的特點(diǎn):在URL地址后附帶的參數(shù)是有限制的,其數(shù)據(jù)容量通常不能超過1K。
如果請(qǐng)求方式為POST方式,則可以在請(qǐng)求的實(shí)體內(nèi)容中向服務(wù)器發(fā)送數(shù)據(jù),Post方式的特點(diǎn):傳送的數(shù)據(jù)量無限制。
1.3.3HTTP接口測(cè)試工具
<1>谷歌瀏覽器插件postman參考《postman使用說明書》
<2>jmeter《參考jmeter使用說明書》
詳細(xì)可參閱:http://note.youdao.com/share/?id=33b9283bf33a7a1be02022e1e6ca4536&type=note
1.4jar包接口
服務(wù)端系統(tǒng)提供封裝好的接口jar包給客戶端,客戶端系統(tǒng)僅需要調(diào)用服務(wù)端的接口jar包中的方法即可實(shí)現(xiàn)接口方法的調(diào)用(具體如何調(diào)用會(huì)在接口文檔中做明確說明的
例如:(短信平臺(tái)接口,網(wǎng)上營(yíng)業(yè)廳調(diào)用短信平臺(tái)接口)紅色狂代表短信平臺(tái)提供的實(shí)體類和方法,網(wǎng)上營(yíng)業(yè)廳只管拿來用就OK了
1.5 js接口
javascript中并沒有原生的創(chuàng)建或者實(shí)現(xiàn)接口的方式,或者判定一個(gè)類型是否實(shí)現(xiàn)了某個(gè)接口,我們只能利用js的靈活性的特點(diǎn),模擬接口。
在javascript中實(shí)現(xiàn)接口有三種方式:注釋描述、屬性驗(yàn)證、鴨子模型。
1.6hessian接口
和ICE,WebService一樣,既然作為服務(wù)類那么必須有文檔公布它的接口形式,客戶端用戶在通過這個(gè)文檔來生成代理類。ICE是通過.Ice文件,WebService是通過wsdl,但是hessian沒有這個(gè)類型的文檔,hessian的代理類是直接通過factrory去生成的。所以在做hessian客戶端代碼之前,需要拿到接口文件interface
詳細(xì)可以參閱:http://note.youdao.com/share/?id=64e0ea4b4d4c574b404bef3454dc0f99&type=note
1.7接口測(cè)試需要學(xué)習(xí)的技術(shù):
json/xml/soap/http/java/jmeter/postman/soapui/
聯(lián)系客服