本申請屬于計算機數(shù)據(jù)處理
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)生成方法及裝置。
背景技術(shù):
:計算機產(chǎn)品在研發(fā)過程中前通常編寫測試代碼進(jìn)行功能測試,例如,根據(jù)已知產(chǎn)品的功能設(shè)計規(guī)格對產(chǎn)品進(jìn)行測試,或者根據(jù)產(chǎn)品研發(fā)的內(nèi)部工作過程進(jìn)行持續(xù)集成測試等,以驗證產(chǎn)品的每個功能是否符合要求。因此,良好健康的測試數(shù)據(jù)對產(chǎn)品的功能測試顯得十分重要。通常情況,現(xiàn)有技術(shù)中測試時使用的測試數(shù)據(jù)往往都是由作業(yè)人員提前構(gòu)造好的。而在現(xiàn)有的很多產(chǎn)品研發(fā)的測試階段,還存在同一份測試數(shù)據(jù)被多人或在多個功能模塊使用,這樣會造成數(shù)據(jù)的相互干擾問題,使得持續(xù)集成存在較大的不穩(wěn)定風(fēng)險,容易引起系統(tǒng)的持續(xù)集成任務(wù)執(zhí)行失敗。對于一些產(chǎn)品應(yīng)用,尤其是較為復(fù)雜的重大產(chǎn)品研發(fā),人工編寫測試數(shù)據(jù)無疑會增加編寫時間,從而增加測試成本。以某支付產(chǎn)品現(xiàn)有的系統(tǒng)舉例,賬務(wù)系統(tǒng)的功能模塊需要一份賬號數(shù)據(jù),內(nèi)部戶系統(tǒng)的功能模塊也需要一份賬戶數(shù)據(jù),賬務(wù)系統(tǒng)的賬號數(shù)據(jù)是從內(nèi)部戶系統(tǒng)獲取。當(dāng)兩個系統(tǒng)的持續(xù)集成同時在執(zhí)行并使用到同一個賬號時,由于兩個系統(tǒng)的業(yè)務(wù)場景不同,會造成某一個系統(tǒng)的持續(xù)集成失敗(由于測試數(shù)據(jù)被改動)。同時現(xiàn)有方式使用的測試數(shù)據(jù)也無法解決服務(wù)器上的持續(xù)集成和開發(fā)本地的用例回歸的同時執(zhí)行時的干擾問題。而且大量的測試數(shù)據(jù)預(yù)先或遇到持續(xù)集成失敗時進(jìn)行編寫或修改,相同測試數(shù)據(jù)的反復(fù)使用、存放等,這些數(shù)據(jù)操作行為均缺少可靠有效的整體管理,導(dǎo)致容易積壓大量的臟數(shù)據(jù),使得持續(xù)集成在測試數(shù)據(jù)的使用、數(shù)據(jù)隔離上存在很多干擾,以至于持續(xù)集成穩(wěn)定性不高?,F(xiàn)有技術(shù)中使用的預(yù)先構(gòu)造好的測試數(shù)據(jù)在測試時常常出現(xiàn)數(shù)據(jù)干擾問題,導(dǎo)致系統(tǒng)在持續(xù)集成任務(wù)執(zhí)行失敗,降低了持續(xù)集成的穩(wěn)定性。技術(shù)實現(xiàn)要素:本申請目的在于提供一種數(shù)據(jù)生成方法及裝置,可以以設(shè)定的數(shù)據(jù)關(guān)系的方式自動構(gòu)造 符合要求的不同的多份測試數(shù)據(jù),可以解決測試過程中的數(shù)據(jù)相互干擾問題,達(dá)到系統(tǒng)在持續(xù)集成的快速、穩(wěn)定運行的目的。本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法及裝置是這樣實現(xiàn)的:一種數(shù)據(jù)生成方法,所述方法包括:確定待生成數(shù)據(jù)中數(shù)據(jù)字段的生成規(guī)則;基于設(shè)定的待生成數(shù)據(jù)之間的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系確定用于生成目標(biāo)數(shù)據(jù)的第一數(shù)據(jù)單元信息;基于所述第一數(shù)據(jù)單元信息和所述數(shù)據(jù)字段的生成規(guī)則生成目標(biāo)數(shù)據(jù)。一種數(shù)據(jù)生成裝置,所述裝置包括:數(shù)據(jù)字段生成規(guī)則模塊,用于存儲預(yù)先設(shè)置確定的待生成數(shù)據(jù)中數(shù)據(jù)字段的生成規(guī)則信息;數(shù)據(jù)單元模塊,用于存儲基于設(shè)定的待生成數(shù)據(jù)之間的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系確定用于生成目標(biāo)數(shù)據(jù)的第一數(shù)據(jù)單元信息;數(shù)據(jù)生成模塊,用于基于所述數(shù)據(jù)字段生成規(guī)則和所述數(shù)據(jù)單元模塊中存儲設(shè)置的第一數(shù)據(jù)單元信息和數(shù)據(jù)字段的生成規(guī)則信息生成目標(biāo)數(shù)據(jù)。本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法及裝置,所述的數(shù)據(jù)生成方法可以基于預(yù)先定義的數(shù)據(jù)關(guān)系的方式自動、快速的構(gòu)造符要求的全局性的唯一測試數(shù)據(jù)。這些構(gòu)造生成的數(shù)據(jù)可以用于系統(tǒng)持續(xù)集成時的測試數(shù)據(jù),保障數(shù)據(jù)服務(wù)的唯一性,大大降低數(shù)據(jù)之間尤其是在系統(tǒng)持續(xù)集成應(yīng)用場景下測試數(shù)據(jù)的干擾問題,有效提高持續(xù)集成的穩(wěn)定性。并且,本申請實施方法可以通過對數(shù)據(jù)關(guān)系規(guī)則的管理即可實現(xiàn)對生成數(shù)據(jù)的有效管理,可以減少臟數(shù)據(jù)的產(chǎn)生,便于數(shù)據(jù)維護(hù),提高數(shù)據(jù)使用者的使用體驗。附圖說明為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法一種實施例的方法流程示意圖;圖2是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法另一種實施例的方法流程示意圖;圖3是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法另一種實施例的方法流程示意圖;圖4是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法另一種實施例的方法流程示意圖;圖5是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置一種實施例的模塊結(jié)構(gòu)示意圖;圖6是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置另一種實施例的模塊結(jié)構(gòu)示意圖;圖7是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置另一種實施例的模塊結(jié)構(gòu)示意圖;圖8是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置另一種實施例的模塊結(jié)構(gòu)示意圖。具體實施方式為了使本
技術(shù)領(lǐng)域:
的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。下面結(jié)合附圖對本申請所述的一種數(shù)據(jù)生成方法進(jìn)行詳細(xì)的說明。圖1是本申請所述一種數(shù)據(jù)生成方法一種實施例的方法流程圖。雖然本申請?zhí)峁┝巳鐚嵤├蛄鞒虉D所述的方法操作步驟,但基于常規(guī)或者無創(chuàng)造性的勞動可以包括更多或者更少的操作步驟。實施例中列舉的步驟順序僅僅為眾多步驟執(zhí)行順序中的一種方式,不代表唯一的執(zhí)行順序。在實際中的裝置或終端產(chǎn)品執(zhí)行時,可以按照實施例或者附圖所示的方法順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。本申請所述的數(shù)據(jù)生成方法可以基于預(yù)先定義的數(shù)據(jù)關(guān)系的方式自動、快速的構(gòu)造符要求的不同的多份數(shù)據(jù)。這些構(gòu)造生成的數(shù)據(jù)可以用于系統(tǒng)持續(xù)集成時的測試數(shù)據(jù),保障數(shù)據(jù)服務(wù)的唯一性,大大降低數(shù)據(jù)之間尤其是在系統(tǒng)持續(xù)集成應(yīng)用場景下測試數(shù)據(jù)的干擾問題,有效提高持續(xù)集成的穩(wěn)定性。并且,本申請實施方法可以通過對數(shù)據(jù)關(guān)系規(guī)則的管理即可實現(xiàn)對生成數(shù)據(jù)的有效管理,可以減少臟數(shù)據(jù)的產(chǎn)生,便于數(shù)據(jù)維護(hù),提高數(shù)據(jù)使用者的使用體驗。需要說明的是,本申請各個實施例提供的數(shù)據(jù)生成方法、裝置等,可以應(yīng)用于系統(tǒng)持續(xù)集成時使用的測試數(shù)據(jù),但并不限于此應(yīng)用場景。采用本申請所述方法生成的數(shù)據(jù)也可以作為用例使用的數(shù)據(jù)、采樣樣本數(shù)據(jù)、隨機驗證數(shù)據(jù)等等。下面本申請以系統(tǒng)持續(xù)集成使用的測試數(shù)據(jù)的應(yīng)用場景為實施例對本申請方案進(jìn)行說明,具體的如圖1所示,本申請?zhí)峁┑臄?shù)據(jù)生成方法的一種實施例中,所述方法可以包括:s1:確定待生成數(shù)據(jù)中數(shù)據(jù)字段的生成規(guī)則。在本實施例中,可以預(yù)先定義生成的數(shù)據(jù)中所包括的各個數(shù)據(jù)字段的生成規(guī)則,確定待生成數(shù)據(jù)中數(shù)據(jù)字段的生成規(guī)則信息。所述的生成規(guī)則可以根據(jù)測試數(shù)據(jù)的需求進(jìn)行自定義的設(shè)置,包括數(shù)據(jù)字段的含義、每個字段的取值方式或取值范圍。本申請中所述的待生成數(shù) 據(jù)可以理解為使用者通過本申請實施方案需要生成的目標(biāo)數(shù)據(jù)。在本申請實施例中,可以統(tǒng)一通過數(shù)據(jù)關(guān)系規(guī)則化的描述信息,自動生成獨立的多份完整測試數(shù)據(jù),以解決數(shù)據(jù)干擾問題,提升系統(tǒng)持續(xù)集成穩(wěn)定性。具體的例如本實施例用戶賬號測試數(shù)據(jù)的應(yīng)用場景中,生成的測試數(shù)據(jù)可以以數(shù)據(jù)表的形式存在?;诓煌臉I(yè)務(wù)需求通常對測試中使用的數(shù)據(jù)表有一定的表格式和字段設(shè)置要求,本申請測試數(shù)據(jù)中的數(shù)據(jù)表格式和數(shù)據(jù)表中的每個字段的取值都可以通過預(yù)習(xí)定義設(shè)置好的規(guī)則描述出來。如整數(shù)類型int可以定義為取值范圍為[0~9],賬號可以定義為account_no,取值范圍方式為100{random(10,20)}0156,枚舉可以定義為code、時間可以定義為now()等,其中一些數(shù)據(jù)字段如code或now()可以自定義設(shè)置枚舉內(nèi)容或者通過參數(shù)傳入(如調(diào)用系統(tǒng)時間或其他應(yīng)用、服務(wù)器的結(jié)果數(shù)據(jù))確定取值。本實施例系統(tǒng)持續(xù)集成使用的測試數(shù)據(jù)的應(yīng)用場景中可以定義需要生成的兩張數(shù)據(jù)表:用戶賬號數(shù)據(jù)表account、支付數(shù)據(jù)表api的字段如下表1和表2所示。表1:account數(shù)據(jù)表生成規(guī)則描述信息表名account字段生成規(guī)則描述idint[0-999]account_no1088{random(10,15)}0156statusdefault{i,f,s}create_timenow()modify_timenow()表2:api數(shù)據(jù)表生成規(guī)則描述信息表名api字段生成規(guī)則描述idint[0-999]account_no1088{random(10,15)}0156apiicbc{random(9,4)}create_timenow()modify_timenow()所述的生成規(guī)則可以描述對應(yīng)到的每張數(shù)據(jù)表,對數(shù)據(jù)表中的每個字段進(jìn)行生成規(guī)則的定義。在一些實施例中,對于不同數(shù)據(jù)表中的相同數(shù)據(jù)字段通??梢圆扇〔煌纳梢?guī)則,取值也可以不相同。在本申請實施例的應(yīng)用場景中,單個子系統(tǒng)持續(xù)集成需要的一份完整的測試數(shù)據(jù)往往包括多個數(shù)據(jù)表的信息數(shù)據(jù),并且由于業(yè)務(wù)之間的相關(guān)性,數(shù)據(jù)表之間也是往往具有一定的關(guān)聯(lián)關(guān)系。因此,在定義數(shù)據(jù)字段的生成規(guī)則時,可以采用不同數(shù)據(jù)表中相同 類型的數(shù)據(jù)字段或相同名稱的數(shù)據(jù)字段采用相同的數(shù)據(jù)字段生成規(guī)則,這樣可以進(jìn)一步保障生成數(shù)據(jù)的規(guī)則統(tǒng)一性,提高生成目標(biāo)數(shù)據(jù)的實用性和穩(wěn)定性,進(jìn)而提高系統(tǒng)持續(xù)集成的穩(wěn)定性。一般的,為保障每次測試數(shù)據(jù)生成的唯一性,在確定數(shù)據(jù)字段的生成規(guī)則時通常設(shè)置某一個或者多個數(shù)據(jù)字段按照一定規(guī)則方式生成。例如,可以設(shè)置某個字段以設(shè)定的初始值按照設(shè)定步長順序依次生成,或者在某個取值區(qū)間范圍內(nèi)隨機生成等。具體的例如上表中的id字段可以在實際取值設(shè)置時定義成在0至999之間取隨機整數(shù)類型的值,當(dāng)然,也可以設(shè)置為以0為初始取值,再下次生成該字段id數(shù)據(jù)時取值加1,一直取值到999時,下次取值歸零。具體實際的字段取值可以根據(jù)數(shù)據(jù)需求進(jìn)行自定義的設(shè)置。在本申請?zhí)峁┑囊粋€具體實施例中,所述數(shù)據(jù)字段的生成規(guī)則可以包括采用下述中的至少一種實施方式:s101:至少一個被設(shè)置成關(guān)鍵字段的數(shù)據(jù)字段以設(shè)定的初始值為起始值按照設(shè)定步長生成相對應(yīng)的數(shù)據(jù);或者,s102:至少一個被設(shè)置成關(guān)鍵字段的數(shù)據(jù)字段在設(shè)定取值區(qū)間范圍內(nèi)隨機生成數(shù)據(jù)。上述所述數(shù)據(jù)字段的生成規(guī)則可以使用其中的一項實施方式設(shè)置所有的數(shù)據(jù)字段生成規(guī)則,其他的實施方式中也可以采用其中的任意一項作為指定某些字段的生成規(guī)則,包括不同的數(shù)據(jù)字段采用不同的生成規(guī)則的實施方式。本申請實施例中可以預(yù)先定義確定待生成數(shù)據(jù)中各個數(shù)據(jù)字段的生成規(guī)則。當(dāng)然,所述數(shù)據(jù)字段的生成規(guī)則也可以包括除上述數(shù)據(jù)表之外的其他描述方式。在其他的可選實施方式中如可以預(yù)先定義可能使用到的1000個數(shù)據(jù)字段的生成規(guī)則,在實際根據(jù)應(yīng)用場景隨機生成一份測試用的目標(biāo)數(shù)據(jù)時可以實際用到其中的200個數(shù)據(jù)字段,并不限定使用生成規(guī)則定義的全部數(shù)據(jù)字段。s2:基于設(shè)定的待生成數(shù)據(jù)之間的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系確定用于生成目標(biāo)數(shù)據(jù)的第一數(shù)據(jù)單元信息。待生成數(shù)據(jù)之間往往具有業(yè)務(wù)上的關(guān)聯(lián)關(guān)系。如上述用戶賬號測試數(shù)據(jù)的應(yīng)用場景中,在一份測試數(shù)據(jù)中,account為測試時使用的用戶賬號信息的數(shù)據(jù)表,api為相同賬號的支付數(shù)據(jù)表。所述的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系可以根據(jù)業(yè)務(wù)場景的需求進(jìn)行自定義的設(shè)置,實現(xiàn)方式可以將account_no設(shè)置為數(shù)據(jù)表account和數(shù)據(jù)表api的關(guān)聯(lián)字段,可以表示基于的相同賬號將賬號數(shù)據(jù)和支付數(shù)據(jù)進(jìn)行關(guān)聯(lián)。在確定了待生成數(shù)據(jù)中各個數(shù)據(jù)表涉及到的所有數(shù)據(jù)字段的生成規(guī)則后,可以將具有設(shè)定的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系的一組數(shù)據(jù)表的關(guān)系信息集合在一個基本數(shù)據(jù)單元進(jìn)行定義描述,生成第一數(shù)據(jù)單元信息。在具體的實現(xiàn)方式上,所述第一數(shù)據(jù)單 元信息可以通過應(yīng)用編程設(shè)計語言描述實現(xiàn)。如本申請實施例中,在定義了數(shù)據(jù)表account和數(shù)據(jù)表api以及相應(yīng)數(shù)據(jù)表中數(shù)據(jù)字段的生成規(guī)則后,可以定義accountunit數(shù)據(jù)單元,所述accountunit數(shù)據(jù)單元可以描述具有關(guān)聯(lián)關(guān)系的組數(shù)據(jù)表的集合,可以用于生成具有一定關(guān)聯(lián)關(guān)系(如本實施例應(yīng)用場景中定義的第一關(guān)聯(lián)關(guān)系)的數(shù)據(jù),如生成賬號數(shù)據(jù)表account和支付數(shù)據(jù)表api。所述賬號數(shù)據(jù)表account和支付數(shù)據(jù)表api可以通過在所述第一數(shù)據(jù)單元信息中設(shè)置的關(guān)聯(lián)字段進(jìn)行關(guān)聯(lián)。下表3為本申請實施例中以數(shù)據(jù)單元的形式表示所述第一數(shù)據(jù)單元信息的描述信息。表3:第一數(shù)據(jù)單元描述信息數(shù)據(jù)單元名accountunit表名規(guī)則生成數(shù)據(jù)條數(shù)accountaccount.account_no=api.account_no1apiaccount.account_no=api.account_no1關(guān)鍵字段account.account_no,api.api上述數(shù)據(jù)單元accountunit集合了具有第一業(yè)務(wù)關(guān)聯(lián)關(guān)系的數(shù)據(jù)表account、api,并且還可以定義數(shù)據(jù)表之間的關(guān)聯(lián)字段,如上述數(shù)據(jù)單元中設(shè)置的通過數(shù)據(jù)表名引起數(shù)據(jù)字段方式的關(guān)鍵字段account.account_no、api.api。上述數(shù)據(jù)單元accountunit中描述的生成數(shù)據(jù)條數(shù)可以表示在實際生成目標(biāo)數(shù)據(jù)時需要產(chǎn)生的數(shù)據(jù)記錄的條數(shù),如表名為account的生成數(shù)據(jù)條數(shù)為1,可以表示利用account數(shù)據(jù)表中的生成規(guī)則生成一條account數(shù)據(jù)表。本申請實施例中,可以在所述第一數(shù)據(jù)單元信息中為數(shù)據(jù)表設(shè)置用于與其他數(shù)據(jù)表或其他數(shù)據(jù)單元信息產(chǎn)生關(guān)聯(lián)的關(guān)聯(lián)字段,如上述賬號表account和支付表api中的account_no為兩張表的關(guān)聯(lián)字段。本申請的一種實施例中,可以設(shè)置不同數(shù)據(jù)表設(shè)置的關(guān)聯(lián)字段中相同的關(guān)聯(lián)字段為相同的取值。這樣可以基于關(guān)聯(lián)字段建立數(shù)據(jù)表之間有序的關(guān)聯(lián)關(guān)系,便于測試業(yè)務(wù)中具有業(yè)務(wù)關(guān)系的多個數(shù)據(jù)表的生成和生成數(shù)據(jù)的管理。因此,本申請的一種實施例中,所述第一數(shù)據(jù)單元信息被設(shè)置成:將所述第一數(shù)據(jù)單元信息中設(shè)置的待生成數(shù)據(jù)的相同關(guān)聯(lián)字段設(shè)置為相同的取值。如上述待生成數(shù)據(jù)賬號數(shù)據(jù)表account和支付數(shù)據(jù)表api中的account_no、api為兩張表的關(guān)聯(lián)字段,本實施例方案在生成最終測試數(shù)時需要將上述兩張數(shù)據(jù)表中的關(guān)聯(lián)字段account_no和api的取值分別設(shè)置成相同的取值。具體的可以采用編程設(shè)計語言的相關(guān)字段控制設(shè)置成相同關(guān)聯(lián)字段的取值為相同,例如若先生成賬號數(shù)據(jù)表account,則account數(shù)據(jù)表中的關(guān)聯(lián)字段account_no會先于api數(shù)據(jù)表中的account_no生成。在account數(shù)據(jù)表中的 account_no通過設(shè)置的數(shù)據(jù)字段生成規(guī)則的描述信息隨機生成當(dāng)前的一份測試數(shù)據(jù)data_test中的賬號信息,那么在當(dāng)前測試數(shù)據(jù)data_test的api數(shù)據(jù)表中的關(guān)聯(lián)字段account_no可以被設(shè)置成與account數(shù)據(jù)表中的account_no的取值相同,生成api數(shù)據(jù)表時api數(shù)據(jù)表中的account_no與account數(shù)據(jù)表中的account_no取值相同。這樣,在同一份測試數(shù)據(jù)中將同一個用戶賬號的不同數(shù)據(jù)表進(jìn)行關(guān)聯(lián)起來,可以保障通過數(shù)據(jù)關(guān)系規(guī)則的描述生產(chǎn)需要的測試數(shù)據(jù)。同時基于關(guān)聯(lián)字段將數(shù)據(jù)表進(jìn)行關(guān)聯(lián)還可以便于數(shù)據(jù)關(guān)聯(lián)的管理和維護(hù)。本申請實施例可以以數(shù)據(jù)單元的形式確定用于描述具有關(guān)聯(lián)關(guān)系的一組數(shù)據(jù)表的第一數(shù)據(jù)單元信息,所述的數(shù)據(jù)單元可以基于描述的數(shù)據(jù)表之間的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系生成相應(yīng)的數(shù)據(jù)。s3:基于所述第一數(shù)據(jù)單元信息和所述數(shù)據(jù)字段的生成規(guī)則生成目標(biāo)數(shù)據(jù)。如前所述,在本申請實施例方案中,可以預(yù)先定義待生成數(shù)據(jù)中每個數(shù)據(jù)字段的生成規(guī)則,以及用于描述具有關(guān)聯(lián)關(guān)系的一組數(shù)據(jù)表集合的第一數(shù)據(jù)單元信息。這樣各個系統(tǒng)在持續(xù)集成每次需要使用測試數(shù)據(jù)時,可以基于預(yù)先定義設(shè)置數(shù)據(jù)表或者數(shù)據(jù)單元之間關(guān)系規(guī)則的方式自動、快速的生成符合要求的測試數(shù)據(jù)。本申請?zhí)峁┑臄?shù)據(jù)生成方法,通過對數(shù)據(jù)生成規(guī)則、數(shù)據(jù)單元要素的描述(如本實施例中定義的數(shù)據(jù)表中數(shù)據(jù)字段的生成規(guī)則、第一數(shù)據(jù)單元信息),達(dá)到數(shù)據(jù)即用即生的狀態(tài),并且可以保障每次生成的數(shù)據(jù)的唯一性,滿足系統(tǒng)持續(xù)集成的測試數(shù)據(jù)要,解決由于數(shù)據(jù)干擾問題引起的持續(xù)集成任務(wù)執(zhí)行失敗,大大提高了系統(tǒng)持續(xù)集成的穩(wěn)定性。具體的實現(xiàn)方式上,可以通過程序?qū)崿F(xiàn)自動化生成想要的數(shù)據(jù),包括但不限于如js、c#之類的應(yīng)用編程設(shè)計語言。并且在本申請實施方案中,測試數(shù)據(jù)編程設(shè)計人員可以實現(xiàn)僅需要關(guān)心對數(shù)據(jù)關(guān)系規(guī)則的管理即可實現(xiàn)對生成數(shù)據(jù)的統(tǒng)一、高效管理,可以減少臟數(shù)據(jù)的產(chǎn)生,便于數(shù)據(jù)維護(hù),提高數(shù)據(jù)使用者的使用體驗。上述所述方法可以通過數(shù)據(jù)單元自動構(gòu)建符合要求的多份測試數(shù)據(jù)。在其他的一些實施應(yīng)用場景中,單個數(shù)據(jù)單元可能無法滿足測試數(shù)據(jù)需求。為了描述一份完整的可用的數(shù)據(jù),還可以將需要生成的數(shù)據(jù)描述成多個數(shù)據(jù)單元,甚至是多份相應(yīng)的數(shù)據(jù)單元組成。因此,在一些實際使用數(shù)據(jù)的應(yīng)用場景中,本申請實施方案還可以設(shè)置數(shù)據(jù)單元與數(shù)據(jù)單元自己的嵌套關(guān)系。具體的,本申請的另一種實施例中,所述數(shù)據(jù)生成方法還可以包括:s4:根據(jù)設(shè)定的第一數(shù)據(jù)單元信息之間的單元嵌套規(guī)則確定用于生成目標(biāo)數(shù)據(jù)的第二數(shù)據(jù)單元信息;相應(yīng)的,基于所述第一數(shù)據(jù)單元信息和所述數(shù)據(jù)字段的生成規(guī)則生成目標(biāo)數(shù)據(jù)包括基于 所述第一數(shù)據(jù)單元信息、第二數(shù)據(jù)單元信息和所述數(shù)據(jù)字段的生成規(guī)則生成目標(biāo)數(shù)據(jù)。圖2是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法另一種實施例的方法流程示意圖。基于數(shù)據(jù)之間的業(yè)務(wù)關(guān)系,一般的,數(shù)據(jù)單元和數(shù)據(jù)單元之間會存在一定的關(guān)聯(lián)關(guān)系,例如生成的數(shù)據(jù)表與數(shù)據(jù)表之間的主鍵/外鍵關(guān)聯(lián)。本申請實施例所述的單元嵌套規(guī)則也可以包括一個數(shù)據(jù)單元的數(shù)據(jù)生成需要依賴另一個數(shù)據(jù)單元的數(shù)據(jù)的實施場景。基于數(shù)據(jù)單元信息之間的數(shù)據(jù)關(guān)系描述可以確定同樣可以生成需要的目標(biāo)數(shù)據(jù)的第二數(shù)據(jù)單元信息。具體的例如本實施例用戶賬號測試數(shù)據(jù)的應(yīng)用場景中,需要生成的測試數(shù)據(jù)除了賬號數(shù)據(jù)表account和支付數(shù)據(jù)表api之外,還需要生成每個測試使用的用戶賬號的業(yè)務(wù)數(shù)據(jù)表bill。所述的業(yè)務(wù)數(shù)據(jù)表bill可以用來記錄相關(guān)賬號的多條業(yè)務(wù)數(shù)據(jù),因此,可以設(shè)置業(yè)務(wù)數(shù)據(jù)表bill和賬號數(shù)據(jù)表account之間的數(shù)據(jù)關(guān)系。在本實施例中可以設(shè)置一個billunit數(shù)據(jù)單元,用于描述生成業(yè)務(wù)數(shù)據(jù)表bill的第二數(shù)據(jù)單元信息。所述的billunit數(shù)據(jù)單元billunit單元依賴于accountunit單元,在生成accountunit單元數(shù)據(jù)后,通過返回的account_no和api字段的值確定了業(yè)務(wù)數(shù)據(jù)表bill中實際的產(chǎn)生數(shù)據(jù)。下表4為本實施例應(yīng)用場景中設(shè)置的嵌套數(shù)據(jù)單元billunit描述信息的示意表。表4:第二數(shù)據(jù)單元描述信息本申請實施例中所述的第二數(shù)據(jù)單元信息可以是用于描述具有關(guān)聯(lián)關(guān)系的一組第一數(shù)據(jù)單元信息的集合,以數(shù)據(jù)關(guān)系化描述生成目標(biāo)數(shù)據(jù)的數(shù)據(jù)單元之間的規(guī)則信息。在實現(xiàn)方式上如前所述的數(shù)據(jù)單元,可以程序化設(shè)置嵌套數(shù)據(jù)單元billunit。所述嵌套數(shù)據(jù)單元billunit中設(shè)定的規(guī)則描述了生成業(yè)務(wù)數(shù)據(jù)表時需要依賴accountunit數(shù)據(jù)單元。如果accountunit數(shù)據(jù)單元還沒有生成,則billunit數(shù)據(jù)單元不能產(chǎn)生。當(dāng)然,在所述第二數(shù)據(jù)單元信息中也可以設(shè)置通過關(guān)聯(lián)字段將數(shù)據(jù)單元之間或者數(shù)據(jù)單元與數(shù)據(jù)表之間進(jìn)行關(guān)聯(lián),如上表4中設(shè)置的關(guān)鍵字段bill.id、bill.amount等。同樣,可以通過設(shè)置三張數(shù)據(jù)表account、api、bill中的關(guān)聯(lián)字段取值相同實現(xiàn)三張數(shù)據(jù)表的數(shù)據(jù)對應(yīng)關(guān)系。因此,本申請加入了描述數(shù)據(jù)單元之間嵌套規(guī)則的數(shù)據(jù)關(guān)系化規(guī)則的第二數(shù)據(jù)單元信息的實施例中,所述第二數(shù)據(jù)單元信息可以被設(shè)置成:將所述第二數(shù)據(jù)單元信息中設(shè)置的待生成數(shù)據(jù)的相同關(guān)聯(lián)字段設(shè)置為相同的取值。需要說明的,本申請中所述的關(guān)鍵字段可以為設(shè)置的不同數(shù)據(jù)表中的關(guān)聯(lián)字段,也可以包括待生成數(shù)據(jù)中設(shè)置的關(guān)鍵字段與設(shè)置的不同數(shù)據(jù)表的關(guān)聯(lián)字段可以全部或者部分相同。當(dāng)然,所述關(guān)鍵字段和關(guān)聯(lián)字段可以設(shè)置為全部不相同。本申請實施例通過預(yù)先定義設(shè)置需要生成數(shù)據(jù)的數(shù)據(jù)字段的生成規(guī)則、描述具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)單元和數(shù)據(jù)單元之間嵌套關(guān)系的嵌套數(shù)據(jù)單元這三個要素的描述,通過程序化實現(xiàn)即可自動化的生成想要的目標(biāo)數(shù)據(jù)。尤其是在系統(tǒng)持續(xù)集成時,可以通過本申請實施例方法快速生成符合要求的隨機測試數(shù)據(jù),保障數(shù)據(jù)服務(wù)唯一性的同時達(dá)到數(shù)據(jù)即用即生的狀態(tài),可以有效解決現(xiàn)有技術(shù)中各個系統(tǒng)在每次持續(xù)集成時無法做到測試數(shù)據(jù)的自動生成、預(yù)先構(gòu)造的相同的測試數(shù)據(jù)在持續(xù)集成中被多個不同的任務(wù)使用導(dǎo)致持續(xù)集成任務(wù)執(zhí)行失敗的問題,提高系統(tǒng)持續(xù)集成的穩(wěn)定性。需要說明的是,本申請實施例提供的技術(shù)方案在系統(tǒng)持續(xù)集成的應(yīng)用場景下每次使用數(shù)據(jù)時,可以通過執(zhí)行第一數(shù)據(jù)單元信息或第二數(shù)據(jù)單元信息確定的數(shù)據(jù)關(guān)系化規(guī)則描述信息快速生成符合要求的測試數(shù)據(jù)。但申請實施方案并不限于測試數(shù)據(jù)的生成應(yīng)用場景,在其他的數(shù)據(jù)需求應(yīng)用場景,如產(chǎn)生樣本數(shù)據(jù)、驗證數(shù)據(jù)等,均可以通過本申請中實施方案中的數(shù)據(jù)關(guān)系化規(guī)則進(jìn)行管理即可生成滿足規(guī)則設(shè)計需要的數(shù)據(jù)。如上表1、2所示,本申請實施方案可以通過數(shù)據(jù)字段的生成規(guī)則設(shè)置生成隨機的測試數(shù)據(jù),保障系統(tǒng)持續(xù)集成時每次執(zhí)行任務(wù)使用的數(shù)據(jù)可以是唯一的,以解決測試數(shù)據(jù)之間的干擾問題。本申請?zhí)峁┑募夹g(shù)方案在具體的實現(xiàn)過程中,還可以將時間戳、線程等作為生成數(shù)據(jù)實際值的計算因子,以實現(xiàn)進(jìn)一步的保障每次生成數(shù)據(jù)的唯一性。因此,本申請所述數(shù)據(jù)生成方法的另一種實施例中,所述方法還可以包括:s5:以時間戳、線程標(biāo)識中的至少一項信息數(shù)據(jù)作為數(shù)據(jù)字段取值的計算因子,相應(yīng)的,所述生成目標(biāo)數(shù)據(jù)包括:根據(jù)所述計算因子確定相應(yīng)數(shù)據(jù)字段的實際取值,生成目標(biāo)數(shù)據(jù)。圖3是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法另一種實施例的方法流程示意圖。具體的實施過程中,所述的時間戳可以以當(dāng)前系統(tǒng)時間為取值對象,所述的線程標(biāo)識可以以指定應(yīng)用的線程的id為取值對象。在計算數(shù)據(jù)字段最終的實際取值時可以加入這些計算因子,例如將獲取的計算因子信息處理后最為系數(shù)計算數(shù)據(jù)字段的實際取值,或者也可以將所述計算因子之間添加至指定的數(shù)據(jù)字段中確定實際取值。具體的可以根據(jù)數(shù)據(jù)處理需求進(jìn)行自定義的設(shè)置。本申請采用基于數(shù)據(jù)關(guān)系規(guī)則的方式生成數(shù)據(jù)的實施方案,還可以實現(xiàn)解決數(shù)據(jù)管理的 問題。例如數(shù)據(jù)的生成、數(shù)據(jù)隔離、數(shù)據(jù)生命周期管理等。這樣在大量測試數(shù)據(jù)需求的應(yīng)用場景中可以實現(xiàn)對測試數(shù)據(jù)的整體管理,減少臟數(shù)據(jù)的產(chǎn)生,提高整個測試任務(wù)運行的穩(wěn)定性。圖4是本申請?zhí)峁┑囊环N數(shù)據(jù)生成方法另一種實施例的方法流程示意圖,具體的,如圖4所示,本申請所述方法的另一種實施例中,所述方法還可以包括:s6:設(shè)置生成的所述目標(biāo)數(shù)據(jù)的有效生命周期,并在達(dá)到所述有效生命周期時執(zhí)行包括下述中的任意一項操作:銷毀達(dá)到所述有效生命周期的目標(biāo)數(shù)據(jù);將所述達(dá)到有效生命周期的目標(biāo)數(shù)據(jù)按照設(shè)定方式隔離至指定位置。具體的實施過程中,可以設(shè)置生成的目標(biāo)數(shù)據(jù)使用完一次后就自動銷毀,或者將其進(jìn)行隔離,以減少數(shù)據(jù)長期使用導(dǎo)致產(chǎn)生大量臟數(shù)據(jù)的問題。本實施例申請方案可以進(jìn)一步實現(xiàn)生成數(shù)據(jù)的整體、規(guī)范、高效管理,節(jié)約數(shù)據(jù)維護(hù)成本。本申請?zhí)峁┑臄?shù)據(jù)生成方法,可以通過數(shù)據(jù)生成規(guī)則、數(shù)據(jù)單元這個兩個或者以及嵌套數(shù)據(jù)單元這三個要求的描述確定需要生成的數(shù)據(jù)之間對應(yīng)關(guān)系,可以自動生成符合要求的獨立的數(shù)據(jù),可以有效解決測試過程中的數(shù)據(jù)干擾問題,達(dá)到持續(xù)集成快速穩(wěn)定運行的目的。并且,設(shè)計人員可以實現(xiàn)僅需要關(guān)心對數(shù)據(jù)關(guān)系規(guī)則的管理即可實現(xiàn)對生成數(shù)據(jù)的統(tǒng)一、高效管理,可以減少臟數(shù)據(jù)的產(chǎn)生,便于數(shù)據(jù)維護(hù),提高數(shù)據(jù)使用者的使用體驗?;诒旧暾埶龅臄?shù)據(jù)生成方法,本申請還提供一種數(shù)據(jù)生成裝置。所述數(shù)據(jù)生成裝置可以用于系統(tǒng)持續(xù)集成時自動生成滿足需求的測試數(shù)據(jù),并且生成的測試數(shù)據(jù)可以有效解決因長期或多次使用相同的預(yù)選設(shè)置的測試數(shù)據(jù)而可能存在的數(shù)據(jù)干擾、大量臟數(shù)據(jù)產(chǎn)生的問題。當(dāng)然,本申請?zhí)峁┑臄?shù)據(jù)生成裝置生成的數(shù)據(jù)不限于作為應(yīng)用、系統(tǒng)等開發(fā)測試時的測試數(shù)據(jù)使用,利用申請所述數(shù)據(jù)生成裝置同樣可以達(dá)到以設(shè)定的數(shù)據(jù)關(guān)系的方式自動、快速構(gòu)造符合要求的不同的多份數(shù)據(jù)。具體的,圖5是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置一種實施例的模塊結(jié)構(gòu)示意圖,如圖5所示,所述裝置可以包括:數(shù)據(jù)字段生成規(guī)則模塊101,可以用于存儲預(yù)先設(shè)置確定的待生成數(shù)據(jù)中數(shù)據(jù)字段的生成規(guī)則信息;數(shù)據(jù)單元模塊102,可以用于存儲基于設(shè)定的待生成數(shù)據(jù)之間的第一業(yè)務(wù)關(guān)聯(lián)關(guān)系確定用于生成目標(biāo)數(shù)據(jù)的第一數(shù)據(jù)單元信息;數(shù)據(jù)生成模塊103,可以用于基于所述數(shù)據(jù)字段生成規(guī)則101和所述數(shù)據(jù)單元模塊102中存儲設(shè)置的第一數(shù)據(jù)單元信息和數(shù)據(jù)字段的生成規(guī)則信息生成目標(biāo)數(shù)據(jù)。進(jìn)一步的,在一些例如對應(yīng)用進(jìn)行系統(tǒng)持續(xù)集成等的應(yīng)用場景中,需要使用的測試數(shù)據(jù) 往往是多樣、復(fù)雜的,基于測試對象業(yè)務(wù)的關(guān)系,往往需要多個數(shù)據(jù)單元結(jié)合以及相互作用才能生成滿足測試需要的數(shù)據(jù)。這樣,數(shù)據(jù)單元和數(shù)據(jù)單元之間往往存在著如并列、嵌套的關(guān)系。圖6是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置另一種實施例的模塊結(jié)構(gòu)示意圖,如圖6所示,所述裝置還可以包括:數(shù)據(jù)單元嵌套模塊104,可以用于存儲根據(jù)設(shè)定的第一數(shù)據(jù)單元信息之間的單元嵌套規(guī)則確定用于生成目標(biāo)數(shù)據(jù)的第二數(shù)據(jù)單元信息;相應(yīng)的,所述數(shù)據(jù)生成模塊103基于所述數(shù)據(jù)字段生成規(guī)則101和所述數(shù)據(jù)單元模塊102中存儲設(shè)置的第一數(shù)據(jù)單元信息和數(shù)據(jù)字段的生成規(guī)則信息生成目標(biāo)數(shù)據(jù)包括:所述數(shù)據(jù)生成模塊103基于所述數(shù)據(jù)字段生成規(guī)則101、數(shù)據(jù)單元模塊102、數(shù)據(jù)單元嵌套模塊104中存儲設(shè)置的第一數(shù)據(jù)單元信息、第二數(shù)據(jù)單元信息、數(shù)據(jù)字段的生成規(guī)則信息生成目標(biāo)數(shù)據(jù)。在本申請實施例方案中,可以預(yù)先定義待生成數(shù)據(jù)中每個數(shù)據(jù)字段的生成規(guī)則,以及用于描述具有關(guān)聯(lián)關(guān)系的一組數(shù)據(jù)表集合的第一數(shù)據(jù)單元信息。這樣各個系統(tǒng)在持續(xù)集成每次需要使用測試數(shù)據(jù)時,可以基于預(yù)先定義設(shè)置數(shù)據(jù)表或者數(shù)據(jù)單元之間關(guān)系規(guī)則的方式自動、快速的生成符合要求的測試數(shù)據(jù)。本申請?zhí)峁┑臄?shù)據(jù)生成裝置,通過對數(shù)據(jù)生成規(guī)則、數(shù)據(jù)單元要素的描述,可以達(dá)到數(shù)據(jù)即用即生的效果,并且可以保障每次生成的數(shù)據(jù)的唯一性,滿足系統(tǒng)持續(xù)集成的測試數(shù)據(jù)要,解決由于數(shù)據(jù)干擾問題引起的持續(xù)集成任務(wù)執(zhí)行失敗,大大提高了系統(tǒng)持續(xù)集成的穩(wěn)定性。上述所述數(shù)據(jù)生成裝置的實施方式中,數(shù)據(jù)單元模塊102存儲的具有第一關(guān)聯(lián)關(guān)系數(shù)據(jù)表的規(guī)則信息或者數(shù)據(jù)單元嵌套模塊104中存儲的具有第二關(guān)聯(lián)關(guān)系的數(shù)據(jù)單元模塊之間的規(guī)則信息或者數(shù)據(jù)單元模塊與數(shù)據(jù)表之間的規(guī)則信息可以通過設(shè)置關(guān)聯(lián)字段的方式實現(xiàn)數(shù)據(jù)關(guān)系。本申請的一種實施例中,在生成一份完整獨立的數(shù)時可以將需要生成的數(shù)據(jù)表中的關(guān)聯(lián)字段設(shè)置為相同的取值,如上述系統(tǒng)持續(xù)集成使用的測試數(shù)據(jù)的應(yīng)用場景中可以以用戶賬戶“account_no”為關(guān)聯(lián)字段將所有需要生成的數(shù)據(jù)表進(jìn)行關(guān)聯(lián)。在最終生成多份數(shù)據(jù)表時,每份數(shù)據(jù)表中的關(guān)聯(lián)字段“account_no”可以設(shè)置為取值相同。因此,本申請所述數(shù)據(jù)生成裝置的另一種實施例中,所述數(shù)據(jù)單元模塊102中存儲的第一數(shù)據(jù)單元信息被設(shè)置成:將所述第一數(shù)據(jù)單元信息中設(shè)置的待生成數(shù)據(jù)的相同關(guān)聯(lián)字段設(shè)置為相同的取值。當(dāng)然,如果所述裝置還包括了不同數(shù)據(jù)單元模塊之間的數(shù)據(jù)單元嵌套模塊,相應(yīng)的,本申請所述裝置的另一種實施例中,所述數(shù)據(jù)單元嵌套模塊104中存儲的第二數(shù)據(jù)單元信息被設(shè)置成:將所述第二數(shù)據(jù)單元信息中設(shè)置的待生成數(shù)據(jù)的相同關(guān)聯(lián)字段設(shè)置為相同的取值。所述的數(shù)據(jù)字段的生成規(guī)則具體的可以根據(jù)實際生成的數(shù)據(jù)需求進(jìn)行自定義的設(shè)置。本申請所述裝置的一種實施例提供了一種數(shù)據(jù)生成規(guī)則信息的實施方式。具體的,本申請所述裝置的另一種實施例中,所述數(shù)據(jù)字段生成規(guī)則模塊中存儲的數(shù)據(jù)字段的生成規(guī)則可以包括采用下述中的至少一種實施方式:至少一個被設(shè)置成關(guān)鍵字段的數(shù)據(jù)字段以設(shè)定的初始值為起始值按照設(shè)定步長生成相對應(yīng)的數(shù)據(jù);至少一個被設(shè)置成關(guān)鍵字段的數(shù)據(jù)字段在設(shè)定取值區(qū)間范圍內(nèi)隨機生成數(shù)據(jù)。需要說明的,本申請中所述的關(guān)鍵字段可以為設(shè)置的不同數(shù)據(jù)表中的關(guān)聯(lián)字段,也可以包括待生成數(shù)據(jù)中設(shè)置的關(guān)鍵字段與設(shè)置的不同數(shù)據(jù)表的關(guān)聯(lián)字段可以全部或者部分相同。當(dāng)然,所述關(guān)鍵字段和關(guān)聯(lián)字段可以設(shè)置為全部不相同。圖7是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置另一種實施例的模塊結(jié)構(gòu)示意圖。如圖7所示,在具體的實施過程中,還可以根據(jù)時間戳、線程等信息作為最終生成數(shù)據(jù)提取值的計算因子,可以進(jìn)一步保障每次生成數(shù)據(jù)的不同,進(jìn)一步提供數(shù)據(jù)尤其是作為系統(tǒng)持續(xù)集成時使用的測試數(shù)據(jù)唯一性,提供系統(tǒng)持續(xù)集成的穩(wěn)定性。具體的,本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置的另一種實施例中,所述裝置還可以包括:計算因子提取模塊105,可以用于以時間戳、線程標(biāo)識中的至少一項信息數(shù)據(jù)作為數(shù)據(jù)字段取值的計算因子;相應(yīng)的,所述數(shù)據(jù)生成模塊103生成目標(biāo)數(shù)據(jù)可以包括:根據(jù)所述計算因子確定相應(yīng)數(shù)據(jù)字段的實際取值,生成目標(biāo)數(shù)據(jù)。體的實施過程中,所述的時間戳可以以當(dāng)前系統(tǒng)時間為取值對象,所述的線程標(biāo)識可以以指定應(yīng)用的線程的id為取值對象。在計算數(shù)據(jù)字段最終的實際取值時可以加入這些計算因子,例如將獲取的計算因子信息處理后最為系數(shù)計算數(shù)據(jù)字段的實際取值,或者也可以將所述計算因子之間添加至指定的數(shù)據(jù)字段中確定實際取值。具體的可以根據(jù)數(shù)據(jù)處理需求進(jìn)行自定義的設(shè)置。圖8是本申請?zhí)峁┑囊环N數(shù)據(jù)生成裝置另一種實施例的模塊結(jié)構(gòu)示意圖。如圖8所示,所述裝置還可以包括:數(shù)據(jù)管理模塊106,可以用于設(shè)置生成的所述目標(biāo)數(shù)據(jù)的有效生命周期,并在達(dá)到所述有效生命周期時執(zhí)行包括下述中的任意一項操作:銷毀達(dá)到所述有效生命周期的目標(biāo)數(shù)據(jù);將所述達(dá)到有效生命周期的目標(biāo)數(shù)據(jù)按照設(shè)定方式隔離至指定位置。本實施例中采用基于數(shù)據(jù)關(guān)系規(guī)則的方式生成數(shù)據(jù)的實施方案,還可以實現(xiàn)解決數(shù)據(jù)管理的問題。例如數(shù)據(jù)的生成、數(shù)據(jù)隔離、數(shù)據(jù)生命周期管理等。這樣在大量測試數(shù)據(jù)需求的應(yīng)用場景中可以實現(xiàn)對測試數(shù)據(jù)的整體管理,減少臟數(shù)據(jù)的產(chǎn)生,提高整個測試任務(wù)運行的穩(wěn)定性。本實施例申請方案可以實現(xiàn)生成數(shù)據(jù)的整體、規(guī)范、高效、便捷的管理,節(jié)約數(shù)據(jù)維護(hù)成本。本申請實施例提供的數(shù)據(jù)生成裝置可以基于預(yù)先定義的數(shù)據(jù)關(guān)系的方式自動、快速的構(gòu)造符要求的不同的多份數(shù)據(jù)。這些構(gòu)造生成的數(shù)據(jù)可以用于系統(tǒng)持續(xù)集成時的測試數(shù)據(jù),保障數(shù)據(jù)服務(wù)的唯一性,大大降低數(shù)據(jù)之間尤其是在系統(tǒng)持續(xù)集成應(yīng)用場景下測試數(shù)據(jù)的干擾問題,有效提高持續(xù)集成的穩(wěn)定性。并且,本申請實施方法可以通過對數(shù)據(jù)關(guān)系規(guī)則的管理即可實現(xiàn)對生成數(shù)據(jù)的有效管理,可以減少臟數(shù)據(jù)的產(chǎn)生,便于數(shù)據(jù)維護(hù),提高數(shù)據(jù)使用者的使用體驗。本申請上述實施例所述的數(shù)據(jù)生成方法及裝置,可以通過包括但不限于計算機應(yīng)用編程設(shè)計語言如js、c++,或者數(shù)據(jù)庫語言、頁面設(shè)計語言等在內(nèi)計算機可讀程序,結(jié)合必要的硬件(如存儲器)以及邏輯處理單元(如cpu)的方式實現(xiàn)。盡管本申請內(nèi)容中提到數(shù)據(jù)字段定義、數(shù)據(jù)單元、數(shù)據(jù)表有關(guān)的數(shù)據(jù)處理,以及通過關(guān)聯(lián)字段進(jìn)行多個數(shù)據(jù)表關(guān)聯(lián)、生成數(shù)據(jù)隔離、存儲,以及js、c++編程設(shè)計語言等的數(shù)據(jù)定義、信息交互、存儲、編程設(shè)計的描述,但是,本申請并不局限于必須是完全標(biāo)準(zhǔn)、設(shè)計語言規(guī)則或者所提及的方式的數(shù)據(jù)交互、處理的情況。本申請中各個實施例所涉及的上述描述僅是本申請中的一些實施例中的應(yīng)用,在某些標(biāo)準(zhǔn)、方法、設(shè)計語言的基礎(chǔ)上略加修改后的處理方法也可以實行上述本申請各實施例的方案。當(dāng)然,在符合本申請上述各實施例的中所述的處理方法步驟的其他無創(chuàng)造性的變形,仍然可以實現(xiàn)相同的申請,在此不再贅述。雖然本申請?zhí)峁┝巳鐚嵤├蛄鞒虉D所述的方法操作步驟,但基于常規(guī)或者無創(chuàng)造性的勞動可以包括更多或者更少的操作步驟。實施例中列舉的步驟順序僅僅為眾多步驟執(zhí)行順序中的一種方式,不代表唯一的執(zhí)行順序。在實際中的裝置或客戶端產(chǎn)品執(zhí)行時,可以按照實施例或者附圖所示的方法順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。上述實施例闡明的裝置或模塊,具體可以由計算機芯片或?qū)嶓w實現(xiàn),或者由具有某種功能的產(chǎn)品來實現(xiàn)。為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當(dāng)然,在實施本申請時可以把各模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。當(dāng)然,也可以將 實現(xiàn)某功能的模塊由多個子模塊或子單元組合實現(xiàn)。本申請中所述的方法、單元、模塊、或裝置可以以可讀程序嵌入控制器方式實現(xiàn),所述控制器按具體要求實現(xiàn)。例如,控制器可以采取例如微處理器或處理器以及存儲可由該(微)處理器執(zhí)行的計算機可讀程序代碼(例如軟件或固件)的計算機可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲器控制器還可以被實現(xiàn)為存儲器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計算機可讀程序代碼方式實現(xiàn)控制器以外,完全可以通過將方法步驟進(jìn)行邏輯編程來使得控制器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對其內(nèi)部包括的用于實現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實現(xiàn)各種功能的裝置視為既可以是實現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。本申請所述裝置中的部分模塊可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)、類等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機存儲介質(zhì)中。通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的硬件的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,也可以通過數(shù)據(jù)遷移的實施過程中體現(xiàn)出來。該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,終端儀表設(shè)備、服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。本說明書中的各個實施例采用遞進(jìn)的方式描述,各個實施例之間相同或相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。本申請的全部或者部分可用于眾多通用或?qū)S玫挠嬎銠C系統(tǒng)環(huán)境或配置中。例如:個人計算機、手持設(shè)備或便攜式設(shè)備、基于微處理器的系統(tǒng)、可編程的電子設(shè)備、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。雖然通過實施例描繪了本申請,本領(lǐng)域普通技術(shù)人員知道,本申請有許多變形和變化而不脫離本申請的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請的精神。當(dāng)前第1頁12