本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領域,特別是涉及一種前后端集成開發(fā)測試的方法及裝置。
背景技術(shù):
隨著不同終端(Pad/Mobile/PC)的興起,對開發(fā)人員的要求越來越高,純?yōu)g覽器端的響應式已經(jīng)不能滿足用戶體驗的高要求,往往需要針對不同的終端開發(fā)定制的版本。為了提升開發(fā)效率,前后端分離的需求越來越被重視,后端負責業(yè)務/數(shù)據(jù)接口,前端負責展現(xiàn)/交互邏輯。我們通過API來解耦前端和后端開發(fā)過程,前后端通過一種軟件構(gòu)建風格(RESTFul)的接口來通信,前端的靜態(tài)內(nèi)容和后端的動態(tài)計算分別開發(fā),分別部署。但是后續(xù)前后端的集成仍然是一個繞不開的問題,往往需要花費大量的精力來調(diào)試,直到上線前仍然不能完全保證所有的接口都是正常工作的。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提出了一種前后端集成開發(fā)測試的方法及裝置,主要目的在于解決開發(fā)過程中遇到的前端與后端的集成問題。
依據(jù)本發(fā)明的第一個方面,本發(fā)明提出了一種前后端集成開發(fā)測試的方法,包括:
設置前端與后端之間的接口協(xié)議,根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類;
模擬業(yè)務的測試數(shù)據(jù);
開啟測試模式,將來自前端針對類的訪問攔截到測試類;
前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā);
后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。
依據(jù)本發(fā)明的第二個方面,本發(fā)明提出了一種前后端集成開發(fā)測試的裝置,包括:
設置單元,用于設置前端與后端之間的接口協(xié)議,根據(jù)接口協(xié)議創(chuàng)建 處理相應業(yè)務的類及其測試類;
模擬單元,用于模擬業(yè)務的測試數(shù)據(jù);
攔截單元,用于在開啟測試模式時將來自前端針對類的訪問攔截到測試類;
調(diào)取單元,用于前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā);
處理單元,用于后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。
借由上述技術(shù)方案,本發(fā)明實施例提供的前后端集成開發(fā)測試的方法及裝置,能夠設置前端與后端之間的接口協(xié)議,并根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類;模擬業(yè)務的測試數(shù)據(jù),并通過測試類中的方法予以實現(xiàn);開啟測試模式,將來自前端針對類的訪問攔截到測試類;前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā);后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。與前后端開發(fā)過程中需要前端人員與后端人員不斷進行溝通調(diào)試的缺陷相比,本發(fā)明在開發(fā)過程中將前端與后端進行隔離使前后端開發(fā)人員同時進行開發(fā),減少了開發(fā)人員的溝通成本。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例提供的一種前后端集成開發(fā)測試的方法的流程圖;
圖2示出了本發(fā)明實施例提供的一種前后端集成開發(fā)測試的裝置的組成框圖。
圖3示出了本發(fā)明實施例提供的另一種前后端集成開發(fā)測試的裝置的組成框圖。
具體實施方式
下面將參照附圖更加詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術(shù)人員。
在前后端開發(fā)過程中,前后端通常會通過RESTFul的接口來通信,前端的靜態(tài)內(nèi)容和后端的動態(tài)計算分別開發(fā),分別部署,集成仍然是一個繞不開的問題。開發(fā)人員需要花費大量的精力來調(diào)試,直到上線前仍然無法確保所有的接口都正常工作。
為了解決開發(fā)過程中遇到的前端與后端的集成問題,本發(fā)明實施例提供了一種前后端集成開發(fā)測試的方法,如圖1所示,該方法包括:
101、設置前端與后端之間的接口協(xié)議,根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類。
在進行業(yè)務開發(fā)時,需要在前端與后端之間設置共同的接口協(xié)議,用于在前端進行訪問時能夠從后端得到針對業(yè)務請求的響應。當設置好接口協(xié)議后,就可以根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類,賦予類中一個處理業(yè)務的方法,在開發(fā)前期這個方法暫時可以不用實現(xiàn)。另外,為了后續(xù)集成測試的需要,本發(fā)明實施例還需要在創(chuàng)建處理相應業(yè)務的類時,同時創(chuàng)建該類的一個測試類,同樣賦予測試類中一個與所述類中方法相同的一個方法。
102、模擬業(yè)務的測試數(shù)據(jù)。
由于在后續(xù)的集成測試過程中,若要獲取到業(yè)務的真實數(shù)據(jù)進行前端測試則會需要使用真實的服務器,而真實數(shù)據(jù)不容易構(gòu)造及不容易獲取。因此在本發(fā)明實施例中,當步驟101中創(chuàng)建了處理相應業(yè)務的類及其測試類后,需要為后續(xù)集成測試模擬該業(yè)務的測試數(shù)據(jù),并通過測試類中的方法予以實現(xiàn)。
103、開啟測試模式,將來自前端針對類的訪問攔截到測試類。
為了避免前后端后續(xù)集成測試出現(xiàn)問題,本發(fā)明實施例中需要前端執(zhí)行界面操作和調(diào)用接口,而后端只提供基于請求的接口調(diào)用。因此,在本發(fā)明實施例中當設置好前后端之間的接口協(xié)議,并根據(jù)接口協(xié)議創(chuàng)建好針對業(yè)務的測試類以及模擬好測試數(shù)據(jù)后,就可以執(zhí)行步驟103開啟測試模式,將來自前端針對類的訪問攔截到測試類,由測試類中的方法執(zhí)行所述前端發(fā)送的請求并返回給前端。由于在后端通過測試類中的方法響應前端,因此不會對后端的業(yè)務邏輯開發(fā)產(chǎn)生影響。
104、前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā)。
由于在步驟103中前端發(fā)送的請求被攔截到后端的測試類中,并且步驟102中模擬的測試數(shù)據(jù)可以由測試類實現(xiàn)。因此前端會得到后端測試類中的方法執(zhí)行請求任務后返回的測試數(shù)據(jù),前端根據(jù)收到的測試數(shù)據(jù)進行相應業(yè)務的開發(fā)和測試。
105、后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。
由于在集成測試過程中前端的請求被攔截到測試類,并不會調(diào)用后端針對業(yè)務的類,因此在測試的同時后端可以根據(jù)模擬的測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。
本發(fā)明實施例提供的一種前后端集成開發(fā)測試的方法,能夠設置前端與后端之間的接口協(xié)議,并根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類;模擬業(yè)務的測試數(shù)據(jù),并通過測試類中的方法予以實現(xiàn);開啟測試模式,將來自前端針對類的訪問攔截到測試類;前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā);后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。與前后端開發(fā)過程中需要前端人員與后端人員不斷進行溝通調(diào)試的缺陷相比,本發(fā)明在開發(fā)過程中將前端與后端進行隔離使前后端開發(fā)人員同時進行開發(fā),減少了開發(fā)人員的溝通成本。
為了更好的對上述圖1所示的方法進行理解,本發(fā)明實施例將以開發(fā)一個返回所有關(guān)鍵詞列表的頁面的任務為例,針對圖1中的各步驟進行詳細說明。
在開發(fā)一個返回所有關(guān)鍵詞列表的頁面時,需要前后端共同開發(fā),它 們之間進行通信時,即后端根據(jù)前端的請求進行響應時,需要遵循相同的協(xié)議。通俗的講,就是前端發(fā)送一條信息,通過指定的接口后需要后端正確的解讀該請求的目的。以本發(fā)明實施例為例,當前端發(fā)送一個請求后,后端通過該接口協(xié)議可以知道需要給前端返回關(guān)鍵詞列表。因此,在設置前端與后端之間的接口協(xié)議時,需要由前端和后端共同制定網(wǎng)絡應用程序接口即WebAPI接口。在開發(fā)前期即前端與后端的開發(fā)過程中,該WebAPI接口不需要實現(xiàn),只給出定義的方法但不給出實現(xiàn)部分。
當后端能夠根據(jù)設置的WebAPI接口解讀前端發(fā)送的請求的目的后,就需要在后端創(chuàng)建實現(xiàn)返回所有關(guān)鍵詞列表的類keywordManage,同時創(chuàng)建該業(yè)務的測試類keywordManageTest。在后端開發(fā)過程中,創(chuàng)建的實現(xiàn)返回所有關(guān)鍵詞列表的keywordManage類中有具體的實現(xiàn)業(yè)務的方法1-GetAllKeyword,該方法用于在開發(fā)完成后針對前端的請求進行處理,在開發(fā)過程中暫時不需要實現(xiàn)。而創(chuàng)建的測試類keywordManageTest,則是為了在后續(xù)集成測試過程中對前端發(fā)送的請求進行響應,因此該測試類keywordManageTest中也有一個實現(xiàn)返回所有關(guān)鍵詞列表的方法2-GetAllKeyword,該方法能夠?qū)η岸说恼埱筮M行響應。
當設置好前端與后端之間的WebAPI接口并且創(chuàng)建了實現(xiàn)返回所有關(guān)鍵詞列表的類keywordManage及其測試類keywordManageTest后,就需要為后續(xù)集成測試階段需要的數(shù)據(jù)做準備。由于在測試階段若使用前端從后端調(diào)取真實的數(shù)據(jù)則會干擾后端業(yè)務邏輯的開發(fā),因此本發(fā)明實施例需要由前端和后端一起按照預設的格式共同模擬所述返回所有關(guān)鍵詞列表的測試數(shù)據(jù),供前端生成頁面。前端和后端可以一起決定返回數(shù)據(jù)的格式,通常為XML、Json或Form URL-Encoded格式,甚至可以擴展添加自定義格式。在本發(fā)明實施例中,模擬的測試數(shù)據(jù)可以是Json格式的,并且這些測試數(shù)據(jù)可以通過測試類keywordManageTest中的2-GetAllKeyword方法實現(xiàn),通過2-GetAllKeyword方法可以返回下列格式的數(shù)據(jù):
[{〝Name〞:〝手機〞,〝Price〞:〝5.8〞,〝Url〞:〝www.jXXd.com〞},{〝Name〞:〝電腦〞,〝Price〞:〝8.9〞,〝Url〞:〝www.yiXXXdian.com〞},
{〝Name〞:〝鮮花〞,〝Price〞:〝3.0〞,〝Url〞:〝www.suXXXX.com〞}]當模擬好測試數(shù)據(jù)后,就可以開啟集成測試模式對前后端進行集成測試。在本發(fā)明實施例中,為了解決開發(fā)前期前后端之間的集成問題,開發(fā)了用于集成測試的MixedTest框架,其本質(zhì)是一個類庫,包括接口、抽象類和具體類,可以解決多種專用開發(fā)任務中的諸如字符串管理、數(shù)據(jù)收集、數(shù)據(jù)庫連接以及文件訪問等任務。在配置好MixedTest框架的集成測試模式后,可以在前端基于HTTP訪問后端keywordManage類的1-GetAllKeyword方法時自動將訪問請求攔截到keywordManageTest中的2-GetAllKeyword方法中,并且可以從HTTP請求中提取數(shù)據(jù)并轉(zhuǎn)化成在測試類的方法中使用的對象,從而使得前端和后端分離,前端只做界面操作和調(diào)用WebAPI,后端只提供HTTP WebAPI調(diào)用。后端不依賴于前端的實現(xiàn),基于HTTP協(xié)議,隨便用一個瀏覽器在地址欄輸入都能進行WebAPI的調(diào)用,而前端則依賴WebAPI的定義。
當前端發(fā)送HTTP請求時,不會訪問后端keywordManage類的1-GetAllKeyword方法,而是會調(diào)用keywordManageTest測試類的2-GetAllKeyword方法得到模擬的測試數(shù)據(jù),前端根據(jù)測試數(shù)據(jù)進行頁面開發(fā),即使后端開發(fā)過程中出現(xiàn)錯誤也不會影響到前端的開發(fā)測試。同時前端在開發(fā)過程中,不會調(diào)用后端keywordManage類中的1-GetAllKeyword方法,使得后端在前端開發(fā)測試過程中可以進行業(yè)務邏輯的開發(fā)并實現(xiàn)keywordManage類中的1-GetAllKeyword方法。
當前后端都完成各自的開發(fā)后,可以通過設置MixedTest框架取消集成測試模式,將模擬的測試數(shù)據(jù)替換成正式的數(shù)據(jù)。這樣前端發(fā)送的HTTP請求會正常的調(diào)用keywordManage類的1-GetAllKeyword方法得到正式數(shù)據(jù)。通過上述整個流程可以完成前后端合作共同開發(fā)任務。
進一步的,作為對上述圖1所示方法的應用,本發(fā)明實施例還提供了一種前后端集成開發(fā)測試的裝置,如圖2所示,該裝置包括:設置單元21、模擬單元22、攔截單元23、調(diào)取單元24及處理單元25,其中,
設置單元21,用于設置前端與后端之間的接口協(xié)議,根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類;
模擬單元22,用于模擬業(yè)務的測試數(shù)據(jù);
攔截單元23,用于在開啟測試模式時將來自前端針對所述類的訪問攔截到所述測試類;
調(diào)取單元24,用于使前端根據(jù)所述測試類中的方法調(diào)取所述測試數(shù)據(jù)進行所述相應業(yè)務的開發(fā);
處理單元25,用于使所述后端根據(jù)所述測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)所述類中的方法。
進一步的,設置單元21用于為前端與后端共同制定網(wǎng)絡應用程序接口。
進一步的,模擬單元22用于為前端與后端按照預設的格式共同模擬所述業(yè)務的測試數(shù)據(jù),供前端實現(xiàn)所述業(yè)務。
進一步的,攔截單元23用于將前端基于超文本傳送協(xié)議訪問所述類時的請求攔截到所述測試類。
進一步的,如圖3所示,該裝置還包括:
替換單元26,用于在前后端開發(fā)完成后取消測試模式時,將所述測試數(shù)據(jù)替換為所述業(yè)務的正式數(shù)據(jù);
調(diào)取單元24還用于在前端發(fā)送訪問請求時調(diào)取所述類中的方法獲取所述業(yè)務的正式數(shù)據(jù)。
本發(fā)明實施例提供的一種前后端集成開發(fā)測試的裝置,能夠設置前端與后端之間的接口協(xié)議,并根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類;模擬業(yè)務的測試數(shù)據(jù),并通過測試類中的方法予以實現(xiàn);開啟測試模式,將來自前端針對類的訪問攔截到測試類;前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā);后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。與前后端開發(fā)過程中需要前端人員與后端人員不斷進行溝通調(diào)試的缺陷相比,本發(fā)明在開發(fā)過程中將前端與后端進行隔離使前后端開發(fā)人員同時進行開發(fā),減少了開發(fā)人員的溝通成本。
所述前后端集成開發(fā)測試的裝置包括處理器和存儲器,上述設置單元21、模擬單元22、攔截單元23、調(diào)取單元24及處理單元25均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元來實現(xiàn)相應的功能。
處理器中包含內(nèi)核,由內(nèi)核去存儲器中調(diào)取相應的程序單元。內(nèi)核可以設置一個或以上,通過調(diào)整內(nèi)核參數(shù)來實現(xiàn)解決開發(fā)過程中遇到的前端與后端的集成問題的目的。
存儲器可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM),存儲器包括至少一個存儲芯片。
本申請還提供了一種計算機程序產(chǎn)品,當在數(shù)據(jù)處理設備上執(zhí)行時,適于執(zhí)行初始化有如下方法步驟的程序代碼:設置前端與后端之間的接口協(xié)議,根據(jù)接口協(xié)議創(chuàng)建處理相應業(yè)務的類及其測試類;模擬業(yè)務的測試數(shù)據(jù);開啟測試模式,將來自前端針對類的訪問攔截到測試類;前端根據(jù)測試類中的方法調(diào)取測試數(shù)據(jù)進行相應業(yè)務的開發(fā);后端根據(jù)測試數(shù)據(jù)進行業(yè)務邏輯的開發(fā)并實現(xiàn)類中的方法。
本領域內(nèi)的技術(shù)人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個 流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。
存儲器可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。存儲器是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
以上僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本申請的權(quán)利要求范圍之內(nèi)。