麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種客戶端生成方法、裝置及電子設備與流程

文檔序號:12801988閱讀:284來源:國知局
一種客戶端生成方法、裝置及電子設備與流程

本申請主要涉及計算機技術領域,更具體地說是涉及一種客戶端生成方法、裝置及電子設備。



背景技術:

thrift是一種跨語言的服務部署框架,通過一個中間語言如接口定義語言idl(interfacedefinitionlanguage),來定義rpc(remoteprocedurecallprotocol,遠程過程調用)接口和數據類型,然后通過編譯器生成相應語言的若干服務器端代碼文件和客戶端代碼文件,以便在需要情況下編譯得到服務端和客戶端的可執行程序,滿足實際需要。

基于此,當需要對rpc服務接口性能與功能進行測試時,現有技術通常是針對具體的rpc服務,根據thrift文件定義編寫相應的客戶端代碼進行性能與功能測試,這就導致在不同的測試場景下,需要編寫一一對應的客戶端代碼,才能進行rpc服務的性能與功能測試,工作量非常大,成本較高且測試效率較低。



技術實現要素:

有鑒于此,本發明提供了一種客戶端生成方法、裝置及電子設備,利用客戶端的模板文件,通過配置需要的測試場景以及測試數據,實現對模板文件的配置,得到相應的客戶端可執行文件,具有很強的復用性,降低了客戶端代碼編寫工作量,提高了客戶端生成效率。

為了實現上述目的,本申請提供了以下技術方案:

一種測試客戶端生成方法,所述方法包括:

獲得針對測試客戶端編寫的thrift文件;

按照預設要求將所述thrift文件轉化成測試數據文件以及測試場景文件;

利用獲得的針對所述測試客戶端的配置文件,對所述測試數據文件和所述測試場景文件進行配置,得到目標測試數據文件以及目標測試場景文件,其中,所述配置文件包括填寫的針對所述測試客戶端的測試功能的測試數據,以及實現所述測試功能的測試接口驗證參數;

根據預設數據變化接口文件和預設客戶端模板文件,利用所述目標測試數據文件和所述目標測試場景文件,生成測試客戶端文件。

本申請實施例還提供了一種測試客戶端生成裝置,所述裝置包括:

文件獲得模塊,用于獲得針對測試客戶端編寫的thrift文件;

文件轉化模塊,用于按照預設要求將所述thrift文件轉化成測試數據文件以及測試場景文件;

目標文件配置模塊,用于利用獲得的針對所述測試客戶端的配置文件,對所述測試數據文件和所述測試場景文件進行配置,得到目標測試數據文件以及目標測試場景文件,所述配置文件包括填寫的針對所述測試客戶端的測試功能的測試數據,以及實現所述測試功能的測試接口驗證參數;

文件生成模塊,用于根據預設數據變化接口文件和預設客戶端模板文件,利用所述目標測試數據文件和所述目標測試場景文件,生成測試客戶端文件。

本申請實施例還提供了一種電子設備,包括如上所述的測試客戶端生成裝置。

由此可見,與現有技術相比,本申請提供了一種客戶端生成方法、裝置及電子設備,當需要某一測試客戶端時,將公共部分抽離出來得到相應的客戶端模板文件,之后,將按照預設要求將其thrifit文件轉化成測試數據文件以及測試場景文件,那么,用戶可以根據測試需要,在該測試數據文件中填寫測試數據,并在該測試場景文件中填寫相應的測試接口驗證參數,從而根據預設數據變化接口文件、客戶端模板文件以及編譯腳本模板文件,利用得到的目標測試數據文件和目標測試場景文件,自動生成測試客戶端的可執行文件,即得到測試客戶端。由此可見,本申請利用模板文件,不需要根據不同測試場景編寫測試客戶端,只需要用戶填寫需要的一些數據,大大減少了工作量,提高了工作效率。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。

圖1為本申請實施例提供的一種測試客戶端生成方法的流程圖;

圖2為本申請實施例提供的另一種測試客戶端生成方法的流程圖;

圖3為本申請實施例提供的一種測試客戶端生成裝置的結構框圖;

圖4為本申請實施例提供的另一種測試客戶端生成裝置的結構框圖;

圖5為本申請實施例提供的又一種測試客戶端生成裝置的結構框圖;

圖6為本申請實施例提供的又一種測試客戶端生成裝置的結構框圖;

圖7為本申請實施例提供的一種電子設備的硬件結構圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

在實際應用中,thrift系統架構通常都是實現客戶端/服務器模式,通過代碼生成工具(即下文編譯工具),將接口定義文件生成服務器端和客戶端代碼(可以為不同語言),從而實現服務端和客戶端跨語言的支持。并且,用戶可以在thirft文件中聲明自己的服務,這些服務經過編譯后會生成相應語言的代碼文件,然后用戶實現服務(客戶端調用服務,服務器端提服務)便可以了。

其中,thrift類型系統可以包括預定義基本類型,用戶自定義結構體,容器類型,異常和服務定義,關于thrift文件的內容可以參照下文相應部分的描述,本實施例在此不作詳述。

并且,結構體可以由一系列域組成,每個域有唯一整數標識符,類型,名字和可選的缺省參數組成,每個域有一個唯一的,正整數標識符,每個域可以標識為required或者optional。而且,一個thrift中可定義多個結構體,并存在引用關系,結構體可以包含其他結構體

在本申請中,規范的struct定義中的每個域均會使用required或者optional關鍵字進行標識。如果required標識的域沒有賦值,thrift將給予提示。如果optional標識的域沒有賦值,該域將不會被序列化傳輸;如果某個optional標識域有缺省值而用戶沒有重新賦值,則該域的值一直為缺省值。

為了使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。

參照圖1,為本申請實施例提供的一種測試客戶端生成方法的流程圖,該方法可以由編譯工具實現,本申請對該編譯工具的內容不作限定,該方法可以包括以下步驟:

步驟s11,獲得針對測試客戶端編寫的thrift文件;

在本實施例中,當需要編寫一個測試客戶端時,該thrift文件可以定義該測試客戶端與服務器或其他客戶端進行通信的通信接口以及通訊規則等,本申請對該thrift文件的具體生成方式以及包含的具體內容不作限定。

需要說明的是,針對測試場景得到的不同測試客戶端或者是同一測試客戶端的不同服務需求,所生成的thrift文件可以不同。

可選的,在實際應用中,預設的thrift文件可以為如下所示的代碼文件,但并不局限于此:

由上述代碼文件可知,thrift文件中包含有結構體struct以及服務接口service兩部分,但并不局限于,而且該thrift文件包含的結構體以及服務接口相關信息可以根據測試場景的需要確定,也可以說是需要編寫的測試客戶端將要實現的測試功能確定,本申請對此不作詳述。

步驟s12,將thrift文件轉化為預設數據交換格式的待處理文件;

可選的,本實施例可以采用json定義方式確定該待處理文件,即預設數據交換格式可以是json定義,但并不局限于此。

其中,json是一種輕量級的數據交換格式,具有良好的可讀和便于快速編寫的特性,可以在不同平臺之間進行數據交換;由于該格式都是壓縮的,占用帶寬小,能夠支持多種語言,且能夠直接為服務器端代碼使用,大大簡化了服務器端和客戶端的代碼開發量。

基于此,仍以上文給出的thrift文件為例,本實施例可以將其轉化為json(javascriptobjectnotation)定義,如下所示的代碼文件:

通過上述待處理文件的代碼內容,可以直接得知其可以填寫測試數據以及相應服務接口信息等,本申請在此不作詳述。

步驟s13,獲得待處理文件中定義的結構體信息以及服務接口信息;

本實施例中,待處理文件中的結構體信息以及服務接口信息與thrift文件中的結構體信息以及服務接口信息對應相同,兩者只是在待處理文件和thrift文件中的表示方式或描述方式不同。

以上述列舉實施進行說明,在上述thrift文件中的結構體信息可以包括上述代碼文件中的heartbeatinfo的相關信息,服務接口信息可以包括上述代碼文件中的baseservice的相關信息,需要說明的是,thrift文件的struct和service并不局限于上述代碼文件記載的內容,在實際應用中,針對要生成的不同客戶端所需的thrift文件是不同的,對應的struct和service內容也是不同的,本申請在此不作一一詳述。

相應地,在對thrift文件進行轉換處理得到的待處理文件中,其包含的結構體信息可以是上述待處理文件的代碼文件中的"structs"中的相關信息,服務接口信息則是"services"中的相關信息,本申請對待處理文件包含的結構體信息以及服務接口信息的具體內容不作一一詳述。

步驟s14,利用結構體信息生成測試數據文件,并利用服務接口信息生成測試場景文件。

在本申請中,可以將thrift文件中定義的復雜類型轉換為xml(extensiblemarkuplanguage,可擴展標記語言)描述的數據定義,以便進行后續操作,如上文描述,可以將thrift文件轉化為待處理文件,再轉換為xml需要說明的是,對于thrift文件中的基本數據類型可以直接在xml中填寫,不需要展開描述。

在本申請中,測試數據文件可以是thrift文件轉換的自定義xml數據定義文件,用于用戶填寫測試數據,測試場景文件也可以是定義測試場景和接口驗證的xml文件,用于用戶填寫測試接口驗證參數。其中,所填寫數據內容可以根據具體的rpc服務的測試要求確定,本申請在此不作詳述。

由此可見,本申請通過將thrift文件轉換為填寫測試數據的模板文件即測試數據文件,以及填寫測試接口驗證參數的模板文件即測試場景文件,用戶可以根據實際測試場景的要求,在當前顯示的測試數據文件和測試場景文件中對應文件填寫相應數據內容,簡單方便,解決了現有技術中,在使用thrift文件轉化的接口編寫客戶端,對測試場景、測試數據以及驗證數據沒有指定統一的規則,不易使用戶理解及交互的技術問題。

步驟s15,檢測用戶按照該測試數據文件針對測試客戶端輸入的測試數據,以及按照測試場景文件針對測試客戶端輸入的測試接口驗證參數;

如上述分析,測試數據文件和測試場景文件都是模板文件,用戶可以根據本次測試場景的需要,輸入所需的測試數據以及對應的測試接口驗證參數。

其中,測試數據文件中結構體成員信息都屬于基本數據類型信息,其包括了基本數據類型信息的變化規則。

步驟s16,利用檢測到的測試數據配置測試數據文件,獲得目標測試數據文件,并利用檢測到的相應的測試接口驗證參數配置測試場景文件,獲得目標測試場景文件;

步驟s17,利用預設數據變化接口文件,以及目標測試數據文件中定義的基本數據類型變化規則,生成目標數據變化規則文件;

根據上文對測試數據文件的分析得知,測試數據文件中包含有基本數據類型的變化規則,所以,在確定目標測試數據文件后,可以從中提取所有基本數據類型變化規則信息,并結合預設的數據變化接口文件,生成目標數據變化規則文件。

可選的,在實際應用中,可以通過遍歷目標測試數據文件中的結構體信息,若其結構體成員的datareg屬性有定義,從預設數據變化接口文件中調用相應接口的參數對該結構體成員的datareg屬性賦值;若該datareg屬性沒有定義,則可以利用用戶填寫的值對其進行賦值。之后,再利用目標測試數據文件中定義的基本數據變化規則,生成目標數據變化規則文件。

本實施例中,目標數據變化規則文件可以用來對測試客戶端中的測試數據進行更新及初始化,也就是說,在測試客戶端運行時,根據需要可以從該目標數據變化規則文件中調取對應接口的變化規則,得到測試數據,具體應用過程不作限定。

步驟s18,利用目標測試數據文件和目標測試場景文件,根據預設客戶端模板文件,獲得測試客戶端文件;

在本實施例中,通過遍歷目標測試場景文件中每個服務接口定義,可以獲得每個接口的返回值、函數名屬性、調用次數、參數、回調函數類型、是否驗證等信息,從而根據這些信息在預設客戶端模板文件的對應區域直接插入回調函數信息、接口調用信息,得到用戶定義的測試客戶端文件。

其中,預設客戶端模板文件可以是通過對這類測試客戶端的可執行文件或編譯文件進行共性分析,從而將測試客戶端共有部分抽離出來,生成模板文件。這樣,當測試場景比較多,即rpc服務多樣化的情況下,不需要一一編寫測試客戶端,只需要用戶填寫針對各測試場景的測試數據及其對應的服務接口驗證信息,即可生成不同的測試客戶端,簡單且方面,降低了客戶端編寫成本,提高了客戶端生成效率。

步驟s19,利用預設編譯腳本模板文件和所述測試客戶端文件,根據所述目標數據變化規則文件,編譯得到所述測試客戶端的可執行文件;

步驟s110,執行測試客戶端的可執行文件,獲得所述測試客戶端的測試結果。

在本申請中,通過編譯工具利用測試客戶端文件,替換或填寫預設編譯腳本模板文件,生成測試客戶端的可執行文件,以實現測試客戶端的測試功能,得到測試結果。并且,根據實際需要可以將測試結果輸出,和/或對測試結果進行驗證,從而根據驗證結果輸出相應的提示信息。

其中,需要說明的是,本申請對如何利用編譯腳本編譯得到可執行文件的具體實現方法不作限定。

綜上,對于任意具體的rpc服務,在利用thrift文件定義的接口編寫測試客戶端進行性能與功能驗證時,本申請不需要編寫整個測試客戶端代碼,以獲得測試客戶端的可執行文件,而是利用測試客戶端的模板文件,由用戶直接根據測試場景的需要,直接在thrift文件轉化得到的測試數據文件和測試場景文件中填寫相應的數據,即可自動編譯得到測試客戶端的可執行文件,具有很強的復用性,簡單且方便,大大減少了工作量,提高了測試效率。

如圖2所示,為本申請實施例提供的另一種測試客戶端生成方法的流程圖,如上述實施例相同,本實施例可以由編譯工具實現,具體可以包括以下步驟:

步驟s21,獲得針對測試客戶端編寫的thrift文件;

在本實施例中,可以將用戶填寫的針對測試客戶端的thrift文件的文件名、thrift文件的名字空間、服務名、thrift文件路徑等信息填寫到編譯工具的配置文件,這樣,編譯工具可以根據該配置文件的這些內容,獲得相應的thrift文件,實現對測試客戶端的自動編譯。

步驟s22,將thrift文件轉化為預設數據交換格式的待處理文件;

步驟s23,獲得待處理文件中定義的結構體信息以及服務接口信息;

步驟s24,利用預設定義規則對結構體信息進行處理,得到相應的結構體成員信息;

可選的,在本實施例中,對于獲得的結構體信息,可以將存在的每一個結構體的結構體成員依次展開并作為并列節點,且將結構體成員變量名稱作為相應節點名。

其中,本申請對得到的結構體成員信息包含的具體內容不作限定,可以包括數據類型、索引、變化規則等等。

步驟s25,檢測確定的結構體成員信息是否屬于基本數據類型信息,如果否,返回步驟s24;如果是,進入步驟s26;

在本申請中,需要確定所得結構體成員信息不再包含有結構體,都屬于基本數據類型,如短整型short、整型int、長整型long、單精度型float、雙精度型double以及字符類型char等等,以保證后續步驟的順利進行。

繼上文描述,將結構體展開得到的結構體成員中,若仍包含有結構體,可以按照上述方式繼續展開,直至所得結構體成員即結構體節點都是基本數據類型為止。

步驟s26,提取滿足第一預設要求的基本數據類型信息,生成測試數據文件;

其中,第一預設要求包含的具體內容可以根據將要編寫的測試客戶端的具體測試需要確定,也就是說,根據不同的測試場景需要,所確定的第一預設要求的內容可以不同,進而提取的基本數據類型信息的也就不同,從而得到的測試數據文件不同,本申請對第一預設要求包含的具體內容不作限定。

仍以上述實施例給出的thrift文件為例進行說明,由上述代碼文件可以得知,該thrift文件包括一個結構體heartbeat,按照上述對結構體信息的處理過程,可以得到如下所述的測試數據文件,即自定義xml數據定義文件,以便用戶填寫所需的測試數據。其中,該測試數據文件可以為:

由上文給出的測試數據文件的代碼內容可知,其與上述待處理文件中的結構體信息內容基本一致,所以說,本申請將thrift文件轉化為json文件后,可以通過對其文件內容進行解析,得到所需的測試數據文件。

需要說明的是,為了滿足不同的測試需要,提取的基本數據類型信息內容不同時,所得測試數據文件也會相應改變,并不局限于上文描述的代碼文件。

其中,上述代碼文件中,datareg表示基本數據類型變化規則,如遞增,遞減,隨機,不變等等,用于根據該變化規則產生測試數據;index表示結構體成員變量在結構體中的索引;optional表示結構體成員是否選中,與thrift文件中結構體成員變量的require,optional表示含義一致;type表示結構體成員的數據類型。

步驟s27,根據服務接口信息,確定遠程過程調用接口信息以及對應的接口驗證信息;

在本實施例中,可以從待處理文件中服務接口信息即上述"services"包含的信息中,確定其包含的所有遠程過程調用接口信息即所有rpclist節點,以及所有接口驗證信息即所有checklist節點,其中,rpclist節點與checklist節點之間是一一對應的。

可選的,上述遠程過程調用接口信息可以包括接口請求發送順序、接口參數順序及類型標簽、接口調用次數、接口名稱、接口返回類型等等,則接口驗證信息可以包括驗證接口的驗證值、驗證接口名、是否驗證以及接口返回類型等等。本申請對上述遠程過程調用接口信息以及對應的接口驗證信息包含的具體內容不作限定。

步驟s28,提取滿足第二預設要求的遠程過程調用接口信息以及對應的接口驗證信息,生成測試場景文件;

需要說明的是,該第二預設要求可以與上述第一預設要求對應,兩者都是為了實現同一測試目的確定的,本申請對其包含的具體內容不作限定,在實際應用中,第二預設要求與第一預設要求可以相同,也可以不同。

仍以上述列舉的thrift文件為例進行說明,按照上述方式得到的測試場景文件可以是如下代碼文件,但并不局限于此:

在上述代碼文件中,各rpclist節點可以是測試場景定義,子節點順序即接口請求發送順序,其中,args表示接口參數順序及類型標簽;call_num表示接口調用次數;func表示接口名稱;return_type表示接口返回類型。而該代碼文件中的各checklist節點可以是接口驗證定義,其中,check_args表示驗證接口的驗證值;func表示驗證接口名;is_check表示是否驗證;return_type表示接口返回類型。

需要說明的是,當第二預設要求不同時,提取的遠程過程調用接口信息以及對應的接口驗證信息不同,即從服務接口信息中提取的字段不同,從而生成的測試場景文件內容不同,即生成的rpc節點不同,本申請在此僅以上述代碼文件為例進行說明。

步驟s29,檢測用戶輸入的測試數據和測試接口及驗證參數,配置相應的測試數據文件和測試場景文件,得到目標測試數據文件以及目標測試場景文件;

在本申請實際應用中,按照上述方式得到測試數據文件以及測試場景文件之后,可以輸出所得測試數據文件以及測試場景文件,此時,用戶只需要在文件空白位置填寫本次生成客戶端所需的測試數據,以及測試接口與驗證參數,不需要編寫整個測試數據文件以及測試場景文件,非常方便。

仍以上文給出的測試數據文件以及測試場景文件為例進行說明,當需要對各接口進行測試,并對測試結果進行校驗時,用戶可以相應填寫上述給出的測試數據文件中的id、version、address以及comment等信息。

根據上述測試場景的需要,可以在上述測試數據文件中填寫需要的測試數據,如初始化heartbeatinfo的結構體變量中的id和address兩個結構體成員信息,即iddatareg="random",即id隨機生成;addressdatareg="static_5",即address固定的5個字符。其中,對于用戶填寫后的目標測試數據文件的代碼文件,本申請在此不再列舉。

同理,用戶可以根據測試場景的需要,填寫測試場景文件服務接口信息,如rpcargs1.i64="1",rpcargs1.enum.testseq="testid_1",rpcargs1.string="test_bool",<rpcargs1.byte="0x01",<rpcargs1.i32="2",<rpcargs1.double="3.14",<rpccheck_args="1",<rpccheck_args="testid_2",<rpccheck_args="true",<rpccheck_args="0x02",<rpccheck_args="hello",<rpccheck_args="3.14"。對于填寫后的目標測試場景文件的代碼內容本實施例在此不再贅述。

根據上述各代碼文件可知,測試場景依次調用了heartbeat、test_enum、test_complex、test_byte、test_string以及test_double接口各一次,并填寫了相應的參數,且使用了測試數據文件中定義的結構體變量,同時,由于本申請需要對所有接口調用返回結果進行驗證,還填寫了各接口的驗證值即上述代碼文件中check_char的值,但并不局限于上述代碼文件記載的內容。

s210,利用預設數據變化接口文件,以及目標測試數據文件中定義的基本數據類型變化規則,生成目標數據變化規則文件;

仍以上述用戶填寫的目標測試數據文件對應的代碼文件為例進行說明,提取其包括的基本數據類型變化規則,生成的目標數據變化規則文件可以是如下所示的代碼文件,但并不局限于該代碼文件。

可選的,在實際應用中,可以通過遍歷目標測試數據文件記錄每個結構體成員信息即基本數據類型信息,檢測該基本數據類型信息中是否存在對基本數據類型變化規則的定義,若存在,利用定義的基本數據類型變化規則,調用相應接口并對其賦值;若不存在,可以由用戶根據變量類型以及初始值對相應接口進行賦值,從而確定相應的目標數據變化規則文件。

需要說明的是,本申請對目標數據變化規則文件的具體生成過程不作限定。

步驟s211,解析目標測試數據文件以及目標測試場景文件,確定相應的回調函數信息以及接口調用信息。

需要說明的是,本申請對解析測試數據文件以及測試場景文件,確定相應的回調函數以及接口調用函數的代碼文件的實現方法不作限定,且對于得到的回調函數以及接口調用函數的代碼文件的內容本實施例在此不作詳述。

步驟s212,將得到的回調函數信息以及場景調用信息嵌入預設客戶端模板文件,得到測試客戶端文件;

步驟s213,利用預設編譯腳本模板文件和所述測試客戶端文件,根據所述目標數據變化規則文件,編譯得到測試客戶端的可執行文件;

在實際應用中,為了實現測試場景的測試,用戶可以根據實際測試需要,將針對測試客戶端的性能測試參數添加到上述配置文件中,以便測試客戶端基于這些性能測試參數運行,并完成測試場景的測試任務。

其中,性能測試參數可以包括連接方式、連接數量、發送速率、請求數量、統計周期等等,本申請對此不作限定,可以根據實際測試需要確定,本申請在此不再一一詳述。

步驟s214,執行測試客戶端的可執行文件,得到測試結果。

基于上述分析,本申請只需要用戶填寫當前測試場景需要的相關數據,不需要編寫整個測試客戶端的代碼,來獲得可執行文件,大大降低了代碼編寫工作量,提高了工作效率。

如圖3所示,本申請實施例提供了一種測試客戶端生成裝置的結構框圖,該裝置可以包括:

文件獲得模塊31,用于獲得針對測試客戶端編寫的thrift文件;

文件轉化模塊32,用于按照預設要求將所述thrift文件轉化成測試數據文件以及測試場景文件;

本實施例中,關于thrift文件及其轉化得到的測試數據文件和測試場景文件的內容,可以參照上述方法實施例對應部分的描述,本實施例在此不再詳述。

目標文件配置模塊33,用于利用獲得的針對所述測試客戶端的配置文件,對所述測試數據文件和所述測試場景文件進行配置,得到目標測試數據文件以及目標測試場景文件;

其中,配置文件包括填寫的針對所述測試客戶端的測試功能的測試數據,以及實現所述測試功能的測試接口驗證參數;

文件生成模塊34,用于根據預設數據變化接口文件和預設客戶端模板文件,利用所述目標測試數據文件和所述目標測試場景文件,生成測試客戶端文件。

在本實施例中,為了根據用戶填寫的數據信息,自動生成測試客戶端文件,上述文件編譯模塊34可以包括:

規則文件生成單元,用于利用所述目標測試數據文件中定義的基本數據類型變化規則以及預設數據變化接口文件,生成目標數據變化規則文件;

測試客戶端文件獲得單元,用于利用所述目標測試數據文件和所述目標測試場景文件,根據預設客戶端模板文件,獲得測試客戶端文件。

在本實施中,該測試客戶端文件獲得單元可以包括:

解析子單元,用于解析所述目標測試數據文件以及所述目標測試場景文件,確定的相應的回調函數信息以及接口調用信息;

信息嵌入子單元,用于將得到的所述回調函數信息以及所述接口調用信息嵌入所述客戶端的預設模板文件,獲得測試客戶端文件。

其中,上述實施例中測試客戶端文件的具體生成過程可以參照上述方法實施例對應部分的描述,本實施例在此不再贅述。

作為本申請另一實施例,在上述實施例的基礎上,得到測試客戶端文件后,可以通過編譯器,編譯得到相應的可執行文件,所以,如圖4所示,裝置還可以包括:

文件編譯模塊35,用于利用預設編譯腳本模板文件和所述測試客戶端文件,編譯得到所述測試客戶端的可執行文件;

測試模塊36,用于執行所述測試可執行文件,獲得所述測試客戶端的測試結果

可選的,如圖5所示,該文件轉化模塊32可以包括:

第一文件生成單元321,用于利用所述thrift文件中定義的結構體信息,生成測試數據文件;

第二文件生成單元322,用于利用所述thrift文件中定義的服務接口信息,生成測試場景文件。

在本實施例中,如圖6所示,該第一文件生成單元321可以包括:

信息處理單元3211,利用預設定義規則對所述thrift文件中定義的結構體信息進行處理,得到相應的結構體成員信息;

檢測單元3212,用于檢測確定的所述結構體成員信息是否屬于基本數據類型信息;如果否,觸發所述信息處理單元利用所述預設定義規則繼續對不屬于基本數據類型信息的結構體成員信息進行處理,直至所述檢測單元得到的所述結構體成員信息都屬于基本數據類型信息;

第一信息提取單元3213,用于提取滿足第一預設要求的基本數據類型信息,生成測試數據文件。

另外,參照圖6,第二文件生成單元322可以包括:

信息確定單元3221,用于利用所述thrift文件中定義的服務接口信息,確定遠程調用接口信息以及對應的接口驗證信息;

第二信息提取單元3222,用于提取滿足第二預設要求的遠程調用接口信息以及對應的接口驗證信息,生成測試場景文件。

綜上所述,當需要實現某rpc服務的測試,編寫相應的測試客戶端時,本實施例將通過客戶端模板文件,由用戶直接填寫所需要的測試數據及其對應的服務接口驗證信息,并據此實現對客戶端模板文件的配置,得到所需要的測試客戶端,進而完成對對rpc服務的性能以及功能的驗證,不需要用戶編寫整個測試客戶端的代碼文件,大大減少了工作量,提高了測試效率。

本申請實施例還提供了一種電子設備,其可以包括如上述裝置實施例描述的測試客戶端生成裝置,關于其組成結構及其功能,可以參照上述裝置實施例的描述,本實施例在此不再詳述。

其中,在實際應用中,電子設備具體可以是電腦、工控機等可以裝載編譯工具的設備,本申請對該電子設備的具體產品類型不作限定。

如圖7所示,本申請實施例還提供的一種電子設備的硬件結構框圖,該系統可以包括:處理器71、存儲器72、顯示器73、通信接口74以及通信總線75;

其中,處理器71、存儲器72、顯示器73以及通信接口74通過通信總線65完成相互間的通信。

可選的,該通信接口74可以是usb接口或者其他串口等等。

處理器71,用于執行程序;

存儲器72,用于存放程序以及獲得的各種數據等;

顯示器73,可以用于顯示性能測試結果以及測試過程等;

在本實施例中,該處理器71可以是中央處理器cpu,或者是特定集成電路asic(applicationspecificintegratedcircuit),或者是被配置成實施本發明實施例的一個或多個集成電路。

存儲器72可以包含高速ram存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器等。

其中,上述程序可具體用于:

得針對測試客戶端編寫的thrift文件;

按照預設要求將所述thrift文件轉化成測試數據文件以及測試場景文件;

利用獲得的針對所述測試客戶端的配置文件,對所述測試數據文件和所述測試場景文件進行配置,得到目標測試數據文件以及目標測試場景文件,所述配置文件包括填寫的針對所述測試客戶端的測試功能的測試數據,以及實現所述測試功能的測試接口驗證參數;

根據預設數據變化接口文件和預設客戶端模板文件,利用所述目標測試數據文件和所述目標測試場景文件,生成測試客戶端文件。

利用預設編譯腳本模板文件和所述測試客戶端文件,編譯得到所述測試客戶端的可執行文件;

執行所述測試客戶端的可執行文件,獲得所述測試客戶端的測試結果。

綜上,本實施例利用可復用的模板文件,由用戶直接填寫針對當前測試場景的數據,即可得到測試客戶端,不需要編譯整個測試客戶端的代碼,大大減少了工作量,提高了測試效率。

此外,需要說明的是,關于上述各實施例中,諸如第一、第二等之類的關系術語僅僅用來將一個操作、單元或模塊與另一個操作、單元或模塊區分開來,而不一定要求或者暗示這些單元、操作或模塊之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法或者系統不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法或者系統所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法或者系統中還存在另外的相同要素。

本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法對應,所以描述的比較簡單,相關之處參見方法部分說明即可。

專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。

結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。

對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 额尔古纳市| 崇义县| 昭觉县| 中宁县| 普兰县| 南阳市| 台山市| 揭西县| 德保县| 区。| 余江县| 宜城市| 诸城市| 大城县| 凤冈县| 百色市| 日喀则市| 乐昌市| 民县| 乐亭县| 三门峡市| 东至县| 台东县| 靖西县| 什邡市| 高陵县| 沾化县| 共和县| 滦南县| 天台县| 雅安市| 都江堰市| 阳朔县| 韶关市| 芦溪县| 乌拉特中旗| 都兰县| 通江县| 江阴市| 芜湖市| 博湖县|