本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種Mock服務(wù)系統(tǒng)及Mock服務(wù)的處理方法。
背景技術(shù):隨著軟件系統(tǒng)越來(lái)越復(fù)雜,大多數(shù)企業(yè)都采用面向服務(wù)的體系架構(gòu)(Service-OrientedArchitecture,簡(jiǎn)稱(chēng)為SOA)來(lái)降低系統(tǒng)間的耦合度,提高服務(wù)組件的可重用性。然而,在開(kāi)發(fā)和測(cè)試過(guò)程中,搭建外部服務(wù)系統(tǒng),與外部服務(wù)系統(tǒng)聯(lián)調(diào),準(zhǔn)備服務(wù)的測(cè)試數(shù)據(jù)就可能會(huì)成為瓶頸,而且可能需要多個(gè)人配合,嚴(yán)重浪費(fèi)人力。其中,SOA是一個(gè)組件模型,其將應(yīng)用程序的不同功能單元(稱(chēng)為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以一種統(tǒng)一和通用的方式進(jìn)行交互。圖1是根據(jù)現(xiàn)有技術(shù)的Mock服務(wù)系統(tǒng)的示意圖。如圖1所示,圖中每個(gè)小框都代表一個(gè)服務(wù),它們可能部署在同一計(jì)算機(jī)上,也可能部署在不同的計(jì)算機(jī)上,對(duì)外提供服務(wù),如果“應(yīng)用1”需要對(duì)“客戶端1”,“客戶端2”提供正常的服務(wù),那么“應(yīng)用1”依賴的所有服務(wù)都必須正常工作,緊密配合,任何一方出了問(wèn)題,都可能導(dǎo)致客戶端的請(qǐng)求處理失敗。正因?yàn)檫@樣,在開(kāi)發(fā)和測(cè)試過(guò)程中,為了搭建“應(yīng)用1”,所依賴的服務(wù)才是一個(gè)相當(dāng)麻煩或者困難的事情。在圖1所示的Mock服務(wù)系統(tǒng)中,在“應(yīng)用1”的內(nèi)部,直接隱藏掉與服務(wù)端的通信模塊,改為一個(gè)假的通信端,在假的通信端內(nèi),不直接通過(guò)網(wǎng)絡(luò)請(qǐng)求遠(yuǎn)程方法調(diào)用(RemoteMethodInvocation,簡(jiǎn)稱(chēng)為RMI)服務(wù),而是返回指定的數(shù)據(jù)給上層模塊。Mock服務(wù)是指虛假的服務(wù)程序,其同樣接收客戶端的請(qǐng)求,并返回結(jié)果,對(duì)客戶端程序來(lái)說(shuō),與真實(shí)服務(wù)是一樣的。Mock服務(wù)與真實(shí)服務(wù)的唯一差別是:Mock服務(wù)不執(zhí)行具體的業(yè)務(wù)邏輯,只根據(jù)輸入?yún)?shù)不同,返回事先已經(jīng)準(zhǔn)備好的結(jié)果數(shù)據(jù)。在該方案中,服務(wù)組1Mock與服務(wù)組2Mock等是需要單獨(dú)開(kāi)發(fā)的,開(kāi)發(fā)工作量大;其次,如果新的服務(wù)需要Mock,則需要針對(duì)新的服務(wù)進(jìn)行開(kāi)發(fā),因而Mock服務(wù)組的重用性不高,且每個(gè)Mock服務(wù)都需要單獨(dú)部署,所以整個(gè)Mock服務(wù)系統(tǒng)搭建工作繁瑣,管理困難,同時(shí),由于服務(wù)的返回值基本固定為同一個(gè),修改困難,或者客戶端變化后需要重新準(zhǔn)備數(shù)據(jù),不能滿足多種測(cè)試場(chǎng)景的需要,此外,現(xiàn)有的Mock服務(wù)可能比較簡(jiǎn)單,不能區(qū)分用戶,即,同樣的請(qǐng)求參數(shù),A用戶由于測(cè)試需要希望返回成功(即,希望Mock服務(wù)的返回值為成功),B用戶希望返回失敗(即,希望Mock服務(wù)的返回值為失敗),現(xiàn)有的Mock也無(wú)法做到。針對(duì)現(xiàn)有技術(shù)中無(wú)法在同一個(gè)Mock服務(wù)系統(tǒng)中對(duì)不同的客戶端提供Mock服務(wù)的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:為此,本申請(qǐng)的主要目的在于提供一種Mock服務(wù)系統(tǒng)及Mock服務(wù)的處理方法,以解決現(xiàn)有技術(shù)中無(wú)法在同一個(gè)Mock服務(wù)系統(tǒng)中對(duì)不同的客戶端提供Mock服務(wù)的問(wèn)題。為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種Mock服務(wù)系統(tǒng)。該Mock服務(wù)系統(tǒng)包括:接收模塊,用于接收來(lái)自客戶端的請(qǐng)求,其中,客戶端為用于調(diào)用MOCK服務(wù)的裝置;查找模塊,用于查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù),其中,在Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù);以及關(guān)聯(lián)模塊,用于建立客戶端與查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù)。進(jìn)一步地,查找模塊包括:獲取子模塊,用于獲取客戶端的IP地址以及請(qǐng)求的路徑;第一列出子模塊,用于列出與路徑匹配的Mock服務(wù)方式列表;第二列出子模塊,用于列出Mock服務(wù)方式中的數(shù)據(jù)提取方式列表;以及匹配子模塊,用于根據(jù)客戶端的IP地址與數(shù)據(jù)提取方式列表中的數(shù)據(jù)提取方式進(jìn)行匹配以查找與客戶端的IP地址對(duì)應(yīng)的數(shù)據(jù)提取方式。進(jìn)一步地,多個(gè)Mock服務(wù)包括第一Mock服務(wù),且多個(gè)Mock服務(wù)中的每個(gè)Mock服務(wù)均包括服務(wù)接口和服務(wù)版本,其中,接收模塊還用于接收用戶上傳的第一服務(wù)版本,其中,第一服務(wù)版本為第一Mock服務(wù)的服務(wù)版本,Mock服務(wù)系統(tǒng)還包括:映射模塊,用于建立第一服務(wù)版本和第一服務(wù)接口的映射關(guān)系,其中,第一服務(wù)接口為第一Mock服務(wù)的服務(wù)接口。進(jìn)一步地,接收模塊用于通過(guò)不同的通信方式接收不同的請(qǐng)求。進(jìn)一步地,接收模塊用于接收來(lái)自多個(gè)客戶端的請(qǐng)求;查找模塊用于分別查找與多個(gè)客戶端的請(qǐng)求對(duì)應(yīng)的Mock服務(wù);以及關(guān)聯(lián)模塊用于分別建立多個(gè)客戶端與查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為多個(gè)客戶端分別提供Mock服務(wù)。為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種Mock服務(wù)的處理方法。該Mock服務(wù)的處理方法包括:接收來(lái)自客戶端的請(qǐng)求,其中,客戶端為用于調(diào)用MOCK服務(wù)的裝置;查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù),其中,在Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù);以及建立客戶端與所查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù)。進(jìn)一步地,查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù)包括:獲取客戶端的IP地址以及請(qǐng)求的路徑;列出與路徑匹配的Mock服務(wù)方式列表;列出Mock服務(wù)方式中的數(shù)據(jù)提取方式列表;以及根據(jù)客戶端的IP地址與數(shù)據(jù)提取方式列表中的數(shù)據(jù)提取方式進(jìn)行匹配以查找與客戶端的IP地址對(duì)應(yīng)的數(shù)據(jù)提取方式。進(jìn)一步地,在客戶端的IP地址改變時(shí),方法還包括:修改客戶端的IP地址與數(shù)據(jù)提取方式的對(duì)應(yīng)關(guān)系。進(jìn)一步地,接收來(lái)自客戶端的請(qǐng)求包括:通過(guò)不同的通信方式接收不同的請(qǐng)求。進(jìn)一步地,多個(gè)Mock服務(wù)包括第一Mock服務(wù),且多個(gè)Mock服務(wù)中的每個(gè)Mock服務(wù)均包括服務(wù)接口和服務(wù)版本,上述方法還包括:接收用戶上傳的第一服務(wù)版本,其中,第一服務(wù)版本為第一Mock服務(wù)的服務(wù)版本;以及建立第一服務(wù)版本和第一服務(wù)接口的映射關(guān)系,其中,第一服務(wù)接口為第一Mock服務(wù)的服務(wù)接口。進(jìn)一步地,一個(gè)服務(wù)接口中包括一個(gè)或多個(gè)方法,其中,在Mock服務(wù)系統(tǒng)內(nèi)部,將所有的遠(yuǎn)程調(diào)用都映射為一個(gè)方法的調(diào)用。進(jìn)一步地,接收來(lái)自客戶端的請(qǐng)求包括:接收來(lái)自多個(gè)客戶端的請(qǐng)求,查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù),其中,在Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù)包括:分別查找與多個(gè)客戶端的請(qǐng)求對(duì)應(yīng)的Mock服務(wù),建立客戶端與所查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù)包括:分別建立多個(gè)客戶端與查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為多個(gè)客戶端分別提供Mock服務(wù)。通過(guò)本申請(qǐng),采用包括以下部分的Mock服務(wù)系統(tǒng):接收模塊,用于接收來(lái)自客戶端的請(qǐng)求;查找模塊,用于查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù),其中,在Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù);以及關(guān)聯(lián)模塊,用于建立客戶端與所查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù),由于在該Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù),且該Mock服務(wù)系統(tǒng)能夠根據(jù)客戶端的請(qǐng)求查找相應(yīng)的Mock服務(wù)以便為客戶端提供Mock服務(wù),因而實(shí)現(xiàn)了對(duì)Mock服務(wù)的統(tǒng)一管理,能夠使得同一個(gè)Mock服務(wù)系統(tǒng)對(duì)不同的客戶端提供Mock服務(wù),解決了現(xiàn)有技術(shù)中無(wú)法在同一個(gè)Mock服務(wù)系統(tǒng)中對(duì)不同的客戶端提供Mock服務(wù)的問(wèn)題。附圖說(shuō)明構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:圖1是根據(jù)現(xiàn)有技術(shù)的Mock服務(wù)系統(tǒng)的示意圖;圖2是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)提供Mock服務(wù)的示意圖;圖3是根據(jù)本申請(qǐng)第一實(shí)施例的Mock服務(wù)系統(tǒng)的結(jié)構(gòu)示意圖;圖4是根據(jù)本申請(qǐng)第二實(shí)施例的Mock服務(wù)系統(tǒng)的結(jié)構(gòu)示意圖;圖5是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)的核心對(duì)象的示意圖;圖6是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)的服務(wù)注冊(cè)流程圖;圖7是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)的處理方法的流程圖;以及圖8是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)對(duì)請(qǐng)求的處理流程圖。具體實(shí)施方式需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。圖2是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)提供Mock服務(wù)的示意圖。如圖2所示,該Mock服務(wù)系統(tǒng)包括服務(wù)組1、服務(wù)組2至服務(wù)組n多個(gè)Mock服務(wù)組。該Mock服務(wù)系統(tǒng)中的服務(wù)都是Mock的,不再依賴下層的所有基礎(chǔ)服務(wù),當(dāng)客戶端調(diào)用時(shí),直接返回某個(gè)給定的結(jié)果。本申請(qǐng)所提到的客戶端是相對(duì)于服務(wù)端來(lái)說(shuō)的,即,客戶端為用于調(diào)用MOCK服務(wù)的裝置,服務(wù)端為用于提供MOCK服務(wù)的裝置,在本申請(qǐng)中,Mock服務(wù)系統(tǒng)即作為服務(wù)端,用于給客戶端提供MOCK服務(wù),比如,A裝置調(diào)用B裝置的MOCK服務(wù),B裝置又調(diào)用C裝置的MOCK服務(wù),這時(shí),B裝置是A裝置的服務(wù)端,A裝置是客戶端,而C裝置又是B裝置的服務(wù)端,B裝置是C的客戶端。舉例而言,A裝置需要經(jīng)過(guò)B裝置查詢第三方所提供的天氣服務(wù),而B(niǎo)裝置本身又不想聯(lián)系第三方,則A裝置可以通過(guò)調(diào)用B裝置的MOCK服務(wù)來(lái)實(shí)現(xiàn)查詢天氣服務(wù)的目的,其中,B裝置不再依賴下層所提供的基礎(chǔ)服務(wù),直接根據(jù)A裝置的查詢請(qǐng)求返回一個(gè)預(yù)先存儲(chǔ)的給定結(jié)果,即,給A裝置提供MOCK服務(wù)。本申請(qǐng)中的服務(wù)是指運(yùn)行在計(jì)算機(jī)上面的程序,該程序接收客戶端程序通過(guò)網(wǎng)絡(luò)發(fā)送的參數(shù),然后執(zhí)行業(yè)務(wù)邏輯,最后又通過(guò)網(wǎng)絡(luò)將執(zhí)行結(jié)果返回給客戶端程序。該Mock服務(wù)系統(tǒng)提供了一個(gè)統(tǒng)一的服務(wù)Mock平臺(tái),將所有需要Mock的服務(wù)都納入這個(gè)平臺(tái),方便統(tǒng)一管理。應(yīng)用只需要依賴這一個(gè)Mock服務(wù)系統(tǒng)即可,用戶可以在Mock服務(wù)系統(tǒng)上一起設(shè)置各個(gè)服務(wù)的返回值,方便管理,同時(shí),也可以設(shè)置為代理調(diào)用真實(shí)服務(wù),即先調(diào)用真實(shí)服務(wù),然后把數(shù)據(jù)保存下來(lái),應(yīng)用下次訪問(wèn)時(shí),直接返回保存的數(shù)據(jù)。由于該Mock服務(wù)系統(tǒng)是一個(gè)統(tǒng)一的Mock服務(wù)系統(tǒng),因而所有需要Mock的服務(wù)不再需要開(kāi)發(fā),只要在Mock服務(wù)系統(tǒng)中注冊(cè)一個(gè)服務(wù),設(shè)置服務(wù)的提供方式即可(如RMI服務(wù),Webservice服務(wù),Http服務(wù))。其中,Webservice是由企業(yè)發(fā)布的完成其特定商務(wù)需求的在線應(yīng)用服務(wù),其他公司或應(yīng)用軟件能夠通過(guò)Internet來(lái)訪問(wèn)并使用這項(xiàng)在線服務(wù)。Mock服務(wù)的返回值也可以自由定義。需要使用Mock服務(wù)的用戶,可以添加多組測(cè)試數(shù)據(jù),并設(shè)置相應(yīng)的參數(shù)匹配規(guī)則,當(dāng)客戶端發(fā)送的參數(shù)滿足用戶設(shè)置的規(guī)則時(shí),則返回對(duì)應(yīng)的返回值。所有Mock服務(wù)的期望數(shù)據(jù)準(zhǔn)備的方式都是統(tǒng)一的,用戶的使用成本降低。不同用戶準(zhǔn)備的期望數(shù)據(jù)是相互獨(dú)立的,可以滿足不同的測(cè)試人員對(duì)不同測(cè)試場(chǎng)景的需求。以下對(duì)本申請(qǐng)實(shí)施例所提供的Mock服務(wù)系統(tǒng)20的結(jié)構(gòu)進(jìn)行介紹。圖3是根據(jù)本申請(qǐng)第一實(shí)施例的Mock服務(wù)系統(tǒng)20的結(jié)構(gòu)示意圖。如圖3所示,該統(tǒng)一的Mock服務(wù)系統(tǒng)20包括以下結(jié)構(gòu):服務(wù)Mock單元21,用于提供Mock服務(wù);具體地,該服務(wù)Mock單元21在接收到客戶端的請(qǐng)求后,用于對(duì)請(qǐng)求進(jìn)行處理,并返回用戶準(zhǔn)備的期望數(shù)據(jù)。后臺(tái)管理單元22,用于對(duì)Mock服務(wù)進(jìn)行統(tǒng)一管理。具體地,對(duì)Mock服務(wù)進(jìn)行統(tǒng)一管理可以包括:提供Mock服務(wù)的注冊(cè),修改,刪除功能,以及期望數(shù)據(jù)新增,修改,刪除功能。優(yōu)選地,服務(wù)Mock單元21包括以下部分:遠(yuǎn)程通信模塊211:這個(gè)模塊支持不同的通信方式,比如基于http協(xié)議的服務(wù),基于RMI的服務(wù),基于socket的服務(wù)等等。這些通信方式是所有服務(wù)共享的。數(shù)據(jù)協(xié)議解析模塊212:這個(gè)模塊主要負(fù)責(zé)解析通信數(shù)據(jù),將他轉(zhuǎn)換為服務(wù)接口能夠識(shí)別的對(duì)象。比如Hessian服務(wù),Webservice服務(wù)就是基于http協(xié)議的,這時(shí)就需要提供相應(yīng)的協(xié)議解析模塊對(duì)http中的數(shù)據(jù)流進(jìn)行解析,反序列化里面的java對(duì)象,然后封裝為一個(gè)遠(yuǎn)程調(diào)用,包括接口,方法名,參數(shù)等信息。請(qǐng)求處理模塊213:這個(gè)模塊就相當(dāng)于真實(shí)服務(wù)的一個(gè)代理實(shí)現(xiàn),它的輸入是請(qǐng)求參數(shù),輸出是對(duì)應(yīng)的返回值。在這個(gè)模塊中可以執(zhí)行用戶自定義的代碼,然后調(diào)用數(shù)據(jù)提取模塊215取得這次請(qǐng)求應(yīng)該返回的結(jié)果數(shù)據(jù)。數(shù)據(jù)提取模塊215:負(fù)責(zé)從用戶準(zhǔn)備的期望數(shù)據(jù)集里找出滿足與參數(shù)匹配的返回值。它調(diào)用數(shù)據(jù)匹配模塊214對(duì)期望數(shù)據(jù)進(jìn)行匹配。數(shù)據(jù)匹配模塊214:執(zhí)行用戶準(zhǔn)備的期望數(shù)據(jù)匹配規(guī)則,滿足則返回true,否則返回false。當(dāng)用戶設(shè)置所有參數(shù)的匹配都滿足時(shí),數(shù)據(jù)提取模塊215就會(huì)返回這組參數(shù)對(duì)應(yīng)的返回值。后臺(tái)管理單元22包括:Mock服務(wù)管理模塊221:用戶可以注冊(cè),修改,刪除Mock服務(wù)。期望數(shù)據(jù)管理模塊222:對(duì)期望數(shù)據(jù)新增,修改,刪除。圖4是根據(jù)本申請(qǐng)第二實(shí)施例的Mock服務(wù)系統(tǒng)20的結(jié)構(gòu)示意圖。如圖4所示,該Mock服務(wù)系統(tǒng)20包括:接收模塊2111,用于接收來(lái)自客戶端的請(qǐng)求;優(yōu)選地,接收模塊2111用于通過(guò)不同的通信方式接收不同的請(qǐng)求,即,接收模塊2111可以支持不同的通信方式,此時(shí),同一Mock服務(wù)系統(tǒng)可以接收不同的請(qǐng)求,實(shí)現(xiàn)了能夠同時(shí)為多個(gè)客戶端或用戶提供服務(wù)。查找模塊2112,用于查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù),其中,在Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù);該查找模塊2112還可以包括:獲取子模塊2a,用于獲取客戶端的IP地址以及請(qǐng)求的路徑;第一列出子模塊2b,用于列出與路徑匹配的Mock服務(wù)方式列表;第二列出子模塊2c,用于列出Mock服務(wù)方式中的數(shù)據(jù)提取方式列表;以及匹配子模塊2d,用于根據(jù)客戶端的IP地址與數(shù)據(jù)提取方式列表中的數(shù)據(jù)提取方式進(jìn)行匹配以查找與客戶端的IP地址對(duì)應(yīng)的數(shù)據(jù)提取方式。關(guān)聯(lián)模塊2113,用于建立客戶端與Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù)。由于在該Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù),且該Mock服務(wù)系統(tǒng)能夠根據(jù)客戶端的請(qǐng)求查找相應(yīng)的Mock服務(wù)以便為客戶端提供Mock服務(wù),因而實(shí)現(xiàn)了對(duì)Mock服務(wù)的統(tǒng)一管理,能夠?qū)Σ煌目蛻舳颂峁㎝ock服務(wù)。優(yōu)選地,Mock服務(wù)系統(tǒng)中存儲(chǔ)的多個(gè)Mock服務(wù)包括第一Mock服務(wù),且多個(gè)Mock服務(wù)中的每個(gè)Mock服務(wù)均包括服務(wù)接口和服務(wù)版本,其中,接收模塊2111還用于接收用戶上傳的第一服務(wù)版本,其中,第一服務(wù)版本為第一Mock服務(wù)的服務(wù)版本,Mock服務(wù)系統(tǒng)還包括:映射模塊216,用于建立第一服務(wù)版本和第一服務(wù)接口的映射關(guān)系,其中,第一服務(wù)接口為第一Mock服務(wù)的服務(wù)接口。通過(guò)在增加新的版本時(shí),建立新增加版本與服務(wù)接口的映射關(guān)系,相比于重新部署Mock服務(wù),可以更容易地實(shí)現(xiàn)Mock服務(wù)的升級(jí)處理。優(yōu)選地,接收模塊2111用于接收來(lái)自多個(gè)客戶端的請(qǐng)求;查找模塊2112用于分別查找與多個(gè)客戶端的請(qǐng)求對(duì)應(yīng)的Mock服務(wù);以及關(guān)聯(lián)模塊2113用于分別建立多個(gè)客戶端與查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為多個(gè)客戶端分別提供Mock服務(wù)。此時(shí),通過(guò)同時(shí)接收多個(gè)客戶端的請(qǐng)求以及同時(shí)為多個(gè)客戶端提供Mock服務(wù),提高了Mock服務(wù)系統(tǒng)的通用性,使得Mock服務(wù)系統(tǒng)能夠適用于不同的應(yīng)用場(chǎng)景。需要說(shuō)明的是,上述的接收模塊2111至關(guān)聯(lián)模塊2113可以是上述實(shí)施例中遠(yuǎn)程通信模塊211的組成部分。以下對(duì)上述實(shí)施例中提到的Mock服務(wù)系統(tǒng)的核心對(duì)象進(jìn)行介紹:圖5是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)的核心對(duì)象的示意圖,在該圖中,“1”和“*”表示關(guān)系的數(shù)量,具體地,“1”對(duì)“*”表示1對(duì)多的關(guān)系。用戶(user):包括用戶名和角色,本系統(tǒng)是支持多用戶的Mock服務(wù)系統(tǒng),用戶可以包括多個(gè)角色,同一角色的期望數(shù)據(jù)是可以共享的,其中,該圖中的Mock服務(wù)以及Mock服務(wù)方式等中的創(chuàng)建人屬性以及數(shù)據(jù)提取方式中的用戶名即對(duì)應(yīng)于用戶對(duì)象。Mock服務(wù)(MockService):是對(duì)所有遠(yuǎn)程服務(wù)的抽象,其中,每個(gè)服務(wù)都有一個(gè)服務(wù)接口,以及服務(wù)的版本,服務(wù)接口名與服務(wù)的版本組合起來(lái)代表一個(gè)唯一的服務(wù)。一個(gè)服務(wù)接口中包括一個(gè)或多個(gè)方法。在本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)內(nèi)部,將所有的遠(yuǎn)程調(diào)用都映射為一個(gè)方法的調(diào)用,比如,對(duì)于http的get請(qǐng)求,同樣映射到一個(gè)接口和一個(gè)方法。這樣在請(qǐng)求處理與期望數(shù)據(jù)準(zhǔn)備時(shí),都是針對(duì)一個(gè)具體的方法,從而,統(tǒng)一了所有的遠(yuǎn)程服務(wù)到這一個(gè)Mock服務(wù)系統(tǒng)。期望數(shù)據(jù)(ExpectData):是指用戶準(zhǔn)備的服務(wù)參數(shù)匹配規(guī)則以及對(duì)應(yīng)的返回值。用戶可以準(zhǔn)備任意多組期望數(shù)據(jù),當(dāng)客戶端請(qǐng)求Mock服務(wù)時(shí),Mock服務(wù)將實(shí)際的輸入?yún)?shù)與用戶準(zhǔn)備的參數(shù)匹配規(guī)則進(jìn)行匹配,如果滿足規(guī)則,則返回對(duì)應(yīng)的返回值,否則繼續(xù)匹配下一條期望數(shù)據(jù),一個(gè)Mock服務(wù)的每個(gè)方法都可以有多組期望數(shù)據(jù),期望數(shù)據(jù)包括方法中每個(gè)參數(shù)的匹配規(guī)則和對(duì)應(yīng)的返回值。當(dāng)這組期望數(shù)據(jù)的所有參數(shù)匹配規(guī)則都與實(shí)際參數(shù)匹配時(shí),就返回這組期望數(shù)據(jù)的返回值。參數(shù)匹配器(ArgumentMatcher)是一個(gè)匹配接口,負(fù)責(zé)根據(jù)用戶設(shè)置的匹配規(guī)則與調(diào)用時(shí)的時(shí)間參數(shù)進(jìn)行匹配,并返回匹配成功或失敗。Mock服務(wù)方式(Exporter)與Mock服務(wù)是一對(duì)多的關(guān)系,即一個(gè)Mock服務(wù)可以有多種對(duì)外提供服務(wù)的方式,比如,同一個(gè)服務(wù)接口可以同時(shí)通過(guò)Webservice,Hessian和RMI等方式對(duì)外提供服務(wù),客戶端可以通過(guò)任意一種方式請(qǐng)求Mock服務(wù)。遠(yuǎn)程通信協(xié)議(RPCExporter)負(fù)責(zé)接收客戶端的請(qǐng)求與響應(yīng)。一個(gè)遠(yuǎn)程通信通道上,可以承載多個(gè)服務(wù)方式,比如,對(duì)于http的url:http://Mock.alibaba.com/MockServiceTest,對(duì)于A用戶定義Webservice服務(wù),所以通過(guò)Webservice客戶端調(diào)用該服務(wù);對(duì)于B用戶定義它為Hessian服務(wù),所以通過(guò)Hessian的客戶端調(diào)用該服務(wù),對(duì)于C用戶定義它為一個(gè)普通的http頁(yè)面,所以直接通過(guò)httpget請(qǐng)求就可以調(diào)用該服務(wù)。這也是本申請(qǐng)Mock服務(wù)系統(tǒng)特有的解決方案。實(shí)現(xiàn)方式是,根據(jù)客戶端的IP去匹配到不同的Mock服務(wù)方式,然后采用不同的協(xié)議解析數(shù)據(jù)。數(shù)據(jù)提取方式(UserInvoker):本申請(qǐng)Mock服務(wù)系統(tǒng)的數(shù)據(jù)提取方式可以包括:方式1,從用戶自己準(zhǔn)備的期望數(shù)據(jù)集里查找匹配的數(shù)據(jù)。方式2,訪問(wèn)真實(shí)的服務(wù)端,將真實(shí)服務(wù)的返回結(jié)果返回給調(diào)用者,同時(shí)把返回的結(jié)果保存的用戶的期望數(shù)據(jù)集里,下次在有相同的請(qǐng)求直接返回給客戶端。在調(diào)用真實(shí)服務(wù)時(shí),也支持協(xié)議的轉(zhuǎn)換,比如客戶端在請(qǐng)求Mock系統(tǒng)時(shí)使用的是Hessian協(xié)議,而真實(shí)服務(wù)現(xiàn)在是通過(guò)RMI方式提供的服務(wù),這時(shí),Mock系統(tǒng)可以通過(guò)RMI方式調(diào)用真實(shí)服務(wù)取回?cái)?shù)據(jù),然后把數(shù)據(jù)通過(guò)Hessian協(xié)議返回給客戶端。方式3,用戶自己實(shí)現(xiàn)數(shù)據(jù)提取接口,擴(kuò)展平臺(tái)的功能。需要說(shuō)明的是,本申請(qǐng)Mock服務(wù)系統(tǒng)的數(shù)據(jù)提取方式也可以是以上方式1至方式3的任意組合??傊煌脩艨梢栽O(shè)置不同的數(shù)據(jù)提取方式,這也體現(xiàn)了本申請(qǐng)Mock服務(wù)系統(tǒng)在數(shù)據(jù)提取方式上的優(yōu)越性。在上述實(shí)施例中通過(guò)核心對(duì)象對(duì)Mock服務(wù)進(jìn)行了介紹,以下對(duì)Mock服務(wù)的配置進(jìn)行介紹,具體地,一個(gè)Mock服務(wù)包括一個(gè)服務(wù)接口、一個(gè)服務(wù)版本和多個(gè)方法,這些信息均在配置文件中進(jìn)行定義。圖6是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)的服務(wù)注冊(cè)流程圖。如圖6所示,Mock服務(wù)系統(tǒng)的服務(wù)注冊(cè)流程包括以下步驟:步驟S51,配置Mock服務(wù)(MockService)具體地,該步驟S51還可以包括以下步驟:步驟S511,用戶上傳配置文件,在該配置文件中定義服務(wù)的接口,版本,以及所有方法名,參數(shù),返回值類(lèi)型。由于本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)定義了一個(gè)通用的服務(wù)配置文件,通過(guò)該服務(wù)配置文件,可以實(shí)現(xiàn)服務(wù)統(tǒng)一配置,注冊(cè)。具體格式可以如下所示:服務(wù)配置文件:步驟S512,上傳接口依賴的class文件或者jar包。步驟S513,系統(tǒng)自動(dòng)創(chuàng)建一個(gè)classloader,用來(lái)加載該Service的相關(guān)class文件。實(shí)現(xiàn)多個(gè)服務(wù)之間的隔離,從而在一個(gè)平臺(tái)上支持多個(gè)服務(wù)的Mock。步驟S52,配置Mock服務(wù)的方式(Exporter)具體地,該步驟S52還可以包括以下步驟:步驟S521,選擇提供服務(wù)的方式:即設(shè)置服務(wù)使用的遠(yuǎn)程通信協(xié)議,以及數(shù)據(jù)協(xié)議,比如:http,http(webservice),rmi步驟S522,設(shè)置服務(wù)的路徑,即,設(shè)置服務(wù)對(duì)應(yīng)的URL地址或者服務(wù)名稱(chēng)步驟S523,指定服務(wù)的端口,即,對(duì)提供給客戶端訪問(wèn)的端口,比如web服務(wù)一般是80端口.RMI服務(wù)默認(rèn)是1099端口等等。此外,還可以設(shè)置攔截器(Filter),對(duì)請(qǐng)求進(jìn)行攔截處理。這里的攔截器是針對(duì)當(dāng)前的Mock服務(wù)方式的。只要客戶端調(diào)用的是這個(gè)服務(wù),都會(huì)執(zhí)行這個(gè)攔截器。一個(gè)Mock服務(wù)可以支持多種方式輸出,比如rmi,webservice。當(dāng)選擇一種方式后,系統(tǒng)自動(dòng)生成一個(gè)Exporter對(duì)象,注冊(cè)到相應(yīng)的RPCExporter中。步驟S53,準(zhǔn)備期望數(shù)據(jù)(ExpectData),這時(shí)本系統(tǒng)實(shí)現(xiàn)服務(wù)數(shù)據(jù)靈活配置,支持復(fù)雜的服務(wù)接口Mock的關(guān)鍵。步驟S531,設(shè)置方法里每個(gè)參數(shù)的匹配器,系統(tǒng)支持多種參數(shù)匹配器,比如:斷言腳本:assert(“helloMock”,ARG);表示當(dāng)參數(shù)是string,且值為helloMock時(shí)才匹配成功。ARG代表當(dāng)前參數(shù)。javascript腳本:if(ARG==“helloMock”)returntrue;elsereturnfalse;每個(gè)參數(shù)都可以設(shè)置這樣的匹配規(guī)則。步驟S532,設(shè)置方法返回值,系統(tǒng)支持多種設(shè)置方法:比如:a,java腳本:m=newMemberDO();m.name=“Mock”returnm;表示返回一個(gè)MemberDO對(duì)象,Mock服務(wù)系統(tǒng)會(huì)執(zhí)行這句代碼,構(gòu)造一個(gè)MemberDO對(duì)象,返回給客戶端。b,json格式的數(shù)據(jù):{‘name’:’Mock’},Mock服務(wù)系統(tǒng)會(huì)根據(jù)服務(wù)配置文件里的類(lèi)型定義,將json串轉(zhuǎn)換為對(duì)應(yīng)的MemberDO對(duì)象,返回給客戶端。</com.alibaba.Domain.MemberDO>Mock服務(wù)系統(tǒng)會(huì)將這個(gè)xml串反序列化為MemberDO對(duì)象,返回給客戶端。步驟S533,數(shù)據(jù)提取模塊215在提取數(shù)據(jù)時(shí),首先列出用戶準(zhǔn)備的期望數(shù)據(jù),然后依次將每個(gè)實(shí)際的參數(shù)與設(shè)置的匹配規(guī)則進(jìn)行匹配。當(dāng)發(fā)現(xiàn)一組數(shù)據(jù)的所有參數(shù)規(guī)則都匹配成功時(shí),則返回對(duì)應(yīng)的返回值。步驟S54,配置數(shù)據(jù)提取方式(UserInvoker)這時(shí)Mock服務(wù)系統(tǒng)支持多用戶數(shù)據(jù)隔離以及“核心對(duì)象介紹”中提到的一個(gè)遠(yuǎn)程通信通道上,可以承載多個(gè)服務(wù)方式”的關(guān)鍵。實(shí)現(xiàn)方式是做了兩層映射。第一層,根據(jù)客戶端IP找到匹配的UserInvoker,第二層,根據(jù)UserInvoker對(duì)應(yīng)的用戶,找到用戶準(zhǔn)備的數(shù)據(jù)以及數(shù)據(jù)提取方式。及時(shí)客戶端IP變了,只要修改第一層的對(duì)應(yīng)關(guān)系即可,從而保持了用戶期望數(shù)據(jù)的穩(wěn)定性,可重用性。這里有幾個(gè)屬性設(shè)置:步驟S541,設(shè)置數(shù)據(jù)提取方式:首先選擇一個(gè)Mock服務(wù)方式,一個(gè)用戶對(duì)一個(gè)Mock服務(wù)方式只能設(shè)置一個(gè)數(shù)據(jù)提取方式。數(shù)據(jù)提取方式有多種見(jiàn)圖5所示的“核心對(duì)象介紹”。步驟S542,設(shè)置客戶端IP地址規(guī)則,當(dāng)某個(gè)客戶端請(qǐng)求Mock服務(wù)時(shí),系統(tǒng)會(huì)取出客戶端的IP,與所有用戶設(shè)置的IP規(guī)則進(jìn)行匹配,如果匹配成功則找到了用戶以及數(shù)據(jù)提取方式。所以,這里的IP規(guī)則具有排他性,在同一個(gè)服務(wù)方式下,多個(gè)用戶設(shè)置的IP規(guī)則不能有交叉,系統(tǒng)可以通過(guò)校驗(yàn)來(lái)完成。步驟S543,設(shè)置攔截器(Filter),對(duì)請(qǐng)求進(jìn)行攔截處理。這里的攔截器是針對(duì)當(dāng)前用戶的,只有匹配到當(dāng)前用戶的執(zhí)行方式時(shí),才會(huì)執(zhí)行攔截器。需要說(shuō)明的是,上述的步驟S53和步驟S54可以先后執(zhí)行,也可以同時(shí)執(zhí)行,不分先后。圖7是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)的處理方法的流程圖。如圖7所示,該方法包括以下步驟:步驟S61,接收來(lái)自客戶端的請(qǐng)求;例如,通過(guò)遠(yuǎn)程通信模塊211接收來(lái)自客戶端的請(qǐng)求。優(yōu)選地,為了能夠同時(shí)服務(wù)于不同通信類(lèi)型的用戶,在該步驟中,可以通過(guò)不同的通信方式接收不同的請(qǐng)求。優(yōu)選地,為了能夠同時(shí)為多個(gè)客戶端提供服務(wù),在該步驟中,可以是同時(shí)接收來(lái)自多個(gè)客戶端的請(qǐng)求。步驟S62,查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù),其中,在Mock服務(wù)系統(tǒng)中存儲(chǔ)有多個(gè)Mock服務(wù);例如,通過(guò)遠(yuǎn)程通信模塊211在Mock服務(wù)系統(tǒng)中查找與請(qǐng)求對(duì)應(yīng)的Mock服務(wù)。該步驟S62還可以包括:步驟S621,獲取客戶端的IP地址以及請(qǐng)求的路徑;步驟S622,列出與路徑匹配的Mock服務(wù)方式列表;步驟S623,列出Mock服務(wù)方式中的數(shù)據(jù)提取方式列表;以及步驟S624,根據(jù)客戶端的IP地址與數(shù)據(jù)提取方式列表中的數(shù)據(jù)提取方式進(jìn)行匹配以查找與客戶端的IP地址對(duì)應(yīng)的數(shù)據(jù)提取方式。相應(yīng)于步驟S62中可以是同時(shí)接收來(lái)自多個(gè)客戶端的請(qǐng)求,在該步驟中,可以分別查找與多個(gè)客戶端的請(qǐng)求對(duì)應(yīng)的Mock服務(wù)步驟S63,建立客戶端與所查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù)。例如,通過(guò)遠(yuǎn)程通信模塊211建立客戶端與Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為客戶端提供Mock服務(wù)。相應(yīng)于步驟S62中可以是同時(shí)接收來(lái)自多個(gè)客戶端的請(qǐng)求,在該步驟中,分別建立多個(gè)客戶端與查找到的Mock服務(wù)的關(guān)聯(lián)關(guān)系以便為多個(gè)客戶端分別提供Mock服務(wù)。在該Mock服務(wù)的處理方法中,在接收到客戶端的請(qǐng)求后,在Mock服務(wù)系統(tǒng)中查找相應(yīng)的Mock服務(wù),可以看出,在Mock服務(wù)系統(tǒng)中實(shí)現(xiàn)了對(duì)Mock服務(wù)的統(tǒng)一管理,各個(gè)Mock服務(wù)不再是僅僅只能服務(wù)于唯一的應(yīng)用。優(yōu)選地,在客戶端的IP地址改變時(shí),該Mock服務(wù)的處理方法還可以包括:步驟S64,修改客戶端的IP地址與數(shù)據(jù)提取方式的對(duì)應(yīng)關(guān)系。通過(guò)步驟S64,在客戶端IP變化時(shí),只要修改IP地址與數(shù)據(jù)提取方式的對(duì)應(yīng)關(guān)系即可,無(wú)需修改期望數(shù)據(jù),從而保持了用戶期望數(shù)據(jù)的穩(wěn)定性,可重用性。Mock服務(wù)系統(tǒng)中的多個(gè)Mock服務(wù)可以包括第一Mock服務(wù),且多個(gè)Mock服務(wù)中的每個(gè)Mock服務(wù)均包括服務(wù)接口和服務(wù)版本,優(yōu)選地,該Mock服務(wù)的處理方法還包括:步驟S65,接收用戶上傳的第一服務(wù)版本,其中,第一服務(wù)版本為第一Mock服務(wù)的服務(wù)版本;以及步驟S66,建立第一服務(wù)版本和第一服務(wù)接口的映射關(guān)系,其中,第一服務(wù)接口為第一Mock服務(wù)的服務(wù)接口。通過(guò)步驟S65和步驟S66,在增加新的版本,即第一服務(wù)版本時(shí),通過(guò)建立新增加版本與服務(wù)接口的映射關(guān)系,相比于重新部署Mock服務(wù),可以更容易地實(shí)現(xiàn)Mock服務(wù)的升級(jí)處理。優(yōu)選地,一個(gè)服務(wù)接口中包括一個(gè)或多個(gè)方法,其中,在Mock服務(wù)系統(tǒng)內(nèi)部,將所有的遠(yuǎn)程調(diào)用都映射為一個(gè)方法的調(diào)用。圖8是根據(jù)本申請(qǐng)實(shí)施例的Mock服務(wù)系統(tǒng)對(duì)請(qǐng)求的處理流程圖。如圖8所示,Mock服務(wù)系統(tǒng)對(duì)請(qǐng)求的處理流程如下:步驟S1,客戶端發(fā)起請(qǐng)求客戶端調(diào)用Mock服務(wù)的方式與調(diào)用真實(shí)服務(wù)的方式是一樣的,只需修改服務(wù)地址為Mock服務(wù)的地址即可。步驟S2,接收請(qǐng)求遠(yuǎn)程通信模塊211接收到客戶端的請(qǐng)求,取得客戶端的IP地址與請(qǐng)求服務(wù)的地址,比如Http請(qǐng)求的路徑是什么,RMI請(qǐng)求對(duì)應(yīng)的服務(wù)名稱(chēng)(簡(jiǎn)稱(chēng)路徑)是什么。步驟S3,查找當(dāng)前請(qǐng)求對(duì)應(yīng)的服務(wù)方式,用戶以及數(shù)據(jù)提取方式具體地,步驟S3還可以包括以下步驟:步驟S31,遠(yuǎn)程通信模塊211取得客戶端的IP地址以及被請(qǐng)求服務(wù)的路徑;步驟S32,遠(yuǎn)程通信模塊211根據(jù)服務(wù)請(qǐng)求路徑,列出登記在該遠(yuǎn)程通信協(xié)議上的與服務(wù)路徑匹配的“Mock服務(wù)方式”列表;步驟S33,遠(yuǎn)程通信模塊211依次列出Mock服務(wù)方式中的數(shù)據(jù)提取方式列表;步驟S34,遠(yuǎn)程通信模塊211根據(jù)客戶端的IP地址,與數(shù)據(jù)提取方式中設(shè)置的IP匹配規(guī)則進(jìn)行匹配,如果不匹配則繼續(xù)匹配,直到找到一個(gè)匹配的數(shù)據(jù)提取方式位置;步驟S35,遠(yuǎn)程通信模塊211將匹配到的Mock服務(wù)方式,以及對(duì)應(yīng)的數(shù)據(jù)提取方式,以及對(duì)應(yīng)的用戶即為當(dāng)前這次客戶端請(qǐng)求所對(duì)應(yīng)的服務(wù)與用戶。步驟S4,委托解析數(shù)據(jù)遠(yuǎn)程通信模塊211將請(qǐng)求轉(zhuǎn)交給協(xié)議數(shù)據(jù)解析模塊212。步驟S5,解析請(qǐng)求的方法與參數(shù)數(shù)據(jù)解析模塊212根據(jù)當(dāng)前Mock服務(wù)方式所指定的數(shù)據(jù)協(xié)議,解析數(shù)據(jù)流,得到這次遠(yuǎn)程調(diào)用的方法和參數(shù)列表。將所有遠(yuǎn)程調(diào)用都統(tǒng)一起來(lái),即使對(duì)Http服務(wù)也映射為一個(gè)方法調(diào)用。步驟S6,委托處理請(qǐng)求遠(yuǎn)程通信模塊211將請(qǐng)求的參數(shù)封裝,委托給請(qǐng)求處理模塊213處理請(qǐng)求。步驟S7,構(gòu)造請(qǐng)求處理鏈請(qǐng)求處理模塊213采用責(zé)任鏈模式,處理請(qǐng)求,用戶可以設(shè)置自己的攔截器(Filter)加入請(qǐng)求到處理鏈中,對(duì)請(qǐng)求進(jìn)行處理,從而擴(kuò)展平臺(tái)的功能。這里的攔截器也體現(xiàn)了用戶的之間的隔離性,在Mock服務(wù)方式與數(shù)據(jù)提取方式兩個(gè)地方配置的攔截器的作用范圍是不一樣的,前者是對(duì)該Mock服務(wù)方式的所有請(qǐng)求都會(huì)攔截,后者是指定的客戶端IP發(fā)出的請(qǐng)求才會(huì)執(zhí)行,從而提高系統(tǒng)的可擴(kuò)展性或靈活性。提高不同用戶對(duì)Mock服務(wù)的可定制功能。步驟S8,執(zhí)行請(qǐng)求請(qǐng)求處理模塊213執(zhí)行請(qǐng)求處理鏈。步驟S9,提取用戶數(shù)據(jù)處理鏈的最后一步就是提取用戶數(shù)據(jù)。步驟S10,委托提取數(shù)據(jù)是根據(jù)當(dāng)前用戶設(shè)置的數(shù)據(jù)提取方式委托給具體的提取測(cè)試模塊通過(guò)數(shù)據(jù)提取策略來(lái)完成的。步驟S11,獲取期望數(shù)據(jù)每種策略的功能就是根據(jù)請(qǐng)求的方法參數(shù),返回對(duì)應(yīng)的服務(wù)結(jié)果。策略分類(lèi)見(jiàn)“數(shù)據(jù)提取方式(UserInvoker)”。步驟S12,返回?cái)?shù)據(jù)執(zhí)行策略將服務(wù)的返回值返回給數(shù)據(jù)提取模塊215。步驟S13,返回?cái)?shù)據(jù)數(shù)據(jù)提取模塊215將服務(wù)的返回值,返回給請(qǐng)求處理模塊213。步驟S14,返回?cái)?shù)據(jù)請(qǐng)求處理模塊213將服務(wù)的返回值,返回給數(shù)據(jù)協(xié)議模塊。步驟S15,將數(shù)據(jù)按協(xié)議格式封裝數(shù)據(jù)協(xié)議模塊將返回值按照指定的協(xié)議對(duì)數(shù)據(jù)進(jìn)行封裝,就像tcp/ip協(xié)議族一樣,每個(gè)層次都有相應(yīng)的數(shù)據(jù)包裝。步驟S16,返回服務(wù)結(jié)果數(shù)據(jù)協(xié)議模塊將數(shù)據(jù)返回給遠(yuǎn)程通信模塊211。步驟S17,對(duì)數(shù)據(jù)進(jìn)行封裝:遠(yuǎn)程通信模塊211對(duì)數(shù)據(jù)進(jìn)行封裝,加上數(shù)據(jù)包頭。同14的原理步驟S18,返回給客戶端這時(shí)Mock服務(wù)系統(tǒng)就將用戶的這次請(qǐng)求的期望結(jié)果返回給了客戶端。由于Mock服務(wù)所使用的協(xié)議是與真實(shí)服務(wù)一樣的,所以對(duì)客戶端來(lái)說(shuō)是區(qū)分不出來(lái)的,做到了對(duì)客戶端的完全透明。需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本申請(qǐng)的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本申請(qǐng)不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本申請(qǐng)的優(yōu)選實(shí)施例而已,并不用于限制本申請(qǐng),對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。