本申請(qǐng)涉及測(cè)試技術(shù)領(lǐng)域,尤其涉及一種測(cè)試數(shù)據(jù)生成方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)和計(jì)算機(jī)技術(shù)的迅速發(fā)展,越來(lái)越多的業(yè)務(wù)可以通過(guò)互聯(lián)網(wǎng)進(jìn)行處理。不同的業(yè)務(wù)可以由不同的業(yè)務(wù)系統(tǒng)支撐,具體的,業(yè)務(wù)系統(tǒng)可以接收用戶(hù)發(fā)送的、針對(duì)業(yè)務(wù)系統(tǒng)對(duì)應(yīng)的業(yè)務(wù)的處理請(qǐng)求,并根據(jù)處理請(qǐng)求進(jìn)行業(yè)務(wù)處理。
目前,業(yè)務(wù)系統(tǒng)的提供方為了提高業(yè)務(wù)質(zhì)量,經(jīng)常要對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行測(cè)試,以便于根據(jù)測(cè)試結(jié)果對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行改進(jìn)。在測(cè)試前或測(cè)試過(guò)程中,需要準(zhǔn)備大量的測(cè)試數(shù)據(jù),其中,測(cè)試數(shù)據(jù)可以包括在測(cè)試過(guò)程中會(huì)涉及的各字段的值。
在現(xiàn)有技術(shù)中,一般采用手工方式準(zhǔn)備測(cè)試數(shù)據(jù),如手動(dòng)指定上述各字段的值,但是,這種方式不僅效率低下,而且準(zhǔn)備的測(cè)試數(shù)據(jù)對(duì)測(cè)試場(chǎng)景的覆蓋面較小。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種測(cè)試數(shù)據(jù)生成方法及裝置,用以解決現(xiàn)有技術(shù)中采用手工方式準(zhǔn)備測(cè)試數(shù)據(jù)不僅效率低下,而且準(zhǔn)備的測(cè)試數(shù)據(jù)對(duì)測(cè)試場(chǎng)景的覆蓋面較小的問(wèn)題。
本申請(qǐng)實(shí)施例提供的一種測(cè)試數(shù)據(jù)生成方法,包括:
接收測(cè)試數(shù)據(jù)生成請(qǐng)求,所述測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶業(yè)務(wù)系統(tǒng)標(biāo)識(shí)和字段名稱(chēng);
根據(jù)所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí),確定預(yù)定的、與所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的規(guī)則集 合,所述規(guī)則集合中包含用于限定字段取值范圍的規(guī)則;
根據(jù)所述字段名稱(chēng),在所述規(guī)則集合中確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則;
根據(jù)確定的所述規(guī)則,生成測(cè)試數(shù)據(jù)。
本申請(qǐng)實(shí)施例提供的一種測(cè)試數(shù)據(jù)生成裝置,包括:
接收模塊,用于接收測(cè)試數(shù)據(jù)生成請(qǐng)求,所述測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶業(yè)務(wù)系統(tǒng)標(biāo)識(shí)和字段名稱(chēng);
規(guī)則集合確定模塊,用于根據(jù)所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí),確定預(yù)定的、與所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的規(guī)則集合,所述規(guī)則集合中包含用于限定字段取值范圍的規(guī)則;
規(guī)則確定模塊,用于根據(jù)所述字段名稱(chēng),在所述規(guī)則集合中確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則;
生成模塊,用于根據(jù)確定的所述規(guī)則,生成測(cè)試數(shù)據(jù)。
本申請(qǐng)實(shí)施例通過(guò)上述至少一種技術(shù)方案,無(wú)需手工準(zhǔn)備測(cè)試數(shù)據(jù),而是可以基于規(guī)則集合自動(dòng)地生成測(cè)試數(shù)據(jù),效率較高,不僅如此,由于規(guī)則集合可以是根據(jù)測(cè)試場(chǎng)景預(yù)先確定的,進(jìn)而基于該規(guī)則集合也可以生成足夠覆蓋測(cè)試場(chǎng)景的測(cè)試數(shù)據(jù)。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1為本申請(qǐng)實(shí)施例提供的測(cè)試數(shù)據(jù)生成方法的過(guò)程;
圖2為本申請(qǐng)實(shí)施例提供的在實(shí)際應(yīng)用場(chǎng)景下,一種具有層次的規(guī)則子集合示意圖;
圖3為本申請(qǐng)實(shí)施例提供的在實(shí)際應(yīng)用下,一種可以用于實(shí)施本申請(qǐng)的方案的系統(tǒng)的結(jié)構(gòu)圖;
圖4為本申請(qǐng)實(shí)施例提供的測(cè)試數(shù)據(jù)生成裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
為了解決背景技術(shù)中提到的問(wèn)題,在本申請(qǐng)實(shí)施例中,可以根據(jù)測(cè)試場(chǎng)景,預(yù)先指定在測(cè)試過(guò)程中會(huì)涉及的各字段的值應(yīng)符合的規(guī)則,進(jìn)而,可以由機(jī)器根據(jù)這些規(guī)則,自動(dòng)地生成可用于該測(cè)試場(chǎng)景的測(cè)試數(shù)據(jù)。為了便于描述,可以用“組”這個(gè)單位描述測(cè)試數(shù)據(jù)。響應(yīng)于測(cè)試數(shù)據(jù)生成請(qǐng)求,可以生成一組或多組測(cè)試數(shù)據(jù),其中,每一組測(cè)試數(shù)據(jù)可以包含:為上述的各字段,分別對(duì)應(yīng)生成的一個(gè)字段值。本申請(qǐng)實(shí)施例中對(duì)所述字段的數(shù)據(jù)類(lèi)型并不做限定。
例如,假定某次測(cè)試過(guò)程中會(huì)涉及3個(gè)字段,包括字段A、字段B、字段C,其中,字段A為數(shù)值變量,字段B為字符變量,字段B為字符串變量。則針對(duì)該次測(cè)試過(guò)程,生成的一組測(cè)試數(shù)據(jù)的一種示例可以是:{字段A=10,字段B=‘a(chǎn)’,字段C=“abc”}。
下面基于以上說(shuō)明,對(duì)本申請(qǐng)的方案進(jìn)行具體說(shuō)明。
圖1為本申請(qǐng)實(shí)施例提供的測(cè)試數(shù)據(jù)生成方法的過(guò)程,該過(guò)程的執(zhí)行主體可以是一般的終端或服務(wù)器,也可以是專(zhuān)用于測(cè)試的終端或服務(wù)器。所述終端包括但不限于:個(gè)人計(jì)算機(jī)、手機(jī)、平板電腦、智能手表、車(chē)載移動(dòng)臺(tái)等;所述服務(wù)器包括但不限于:個(gè)人計(jì)算機(jī)、大中型計(jì)算機(jī)、計(jì)算機(jī)集群等。執(zhí)行主體并不構(gòu)成對(duì)本申請(qǐng)的限定。
圖1中的過(guò)程具體可以包括以下步驟:
S101:接收測(cè)試數(shù)據(jù)生成請(qǐng)求,所述測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶業(yè)務(wù)系統(tǒng)標(biāo)識(shí) 和字段名稱(chēng)。
在本申請(qǐng)實(shí)施例中,測(cè)試數(shù)據(jù)生成請(qǐng)求可以由測(cè)試相關(guān)的任意設(shè)備或功能模塊發(fā)送,如用于執(zhí)行測(cè)試或管理測(cè)試數(shù)據(jù)的設(shè)備、用于獲取測(cè)試數(shù)據(jù)的模塊等。
所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí)可以唯一標(biāo)識(shí)業(yè)務(wù)系統(tǒng),其可以是該業(yè)務(wù)系統(tǒng)的名稱(chēng)、代號(hào),或是該業(yè)務(wù)系統(tǒng)內(nèi)指定設(shè)備的設(shè)備標(biāo)識(shí)等。所述字段名稱(chēng)可以是在測(cè)試過(guò)程中可能會(huì)涉及的字段的名稱(chēng),如業(yè)務(wù)參數(shù)對(duì)應(yīng)的字段、測(cè)試環(huán)境參數(shù)對(duì)應(yīng)的字段等。測(cè)試數(shù)據(jù)生成請(qǐng)求中攜帶的字段名稱(chēng)可以有多個(gè),在實(shí)際應(yīng)用中,多個(gè)字段名稱(chēng)可以保存在字段列表中,則測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶該字段列表即可。
本申請(qǐng)實(shí)施例對(duì)字段名稱(chēng)的命名方式并不做限定。既支持普通的字符串命名方式,也支持諸如對(duì)象圖導(dǎo)航語(yǔ)言(Object Graph Navigation Language,OGNL)等命名方式。例如,用普通的字符串命名方式命名的某字段名稱(chēng)為D,而用OGNL命名方式,可以將某對(duì)象a的字段D命名為:a.D。
在本申請(qǐng)實(shí)施例中,上面提到的測(cè)試場(chǎng)景可以是不同的業(yè)務(wù)系統(tǒng)下的業(yè)務(wù)場(chǎng)景,也可以是同一個(gè)業(yè)務(wù)系統(tǒng)下不同的業(yè)務(wù)場(chǎng)景。
測(cè)試場(chǎng)景可以是單個(gè)業(yè)務(wù)場(chǎng)景,在這種情況下,測(cè)試數(shù)據(jù)生成請(qǐng)求可以攜帶該業(yè)務(wù)場(chǎng)景所屬的業(yè)務(wù)系統(tǒng)的業(yè)務(wù)系統(tǒng)標(biāo)識(shí)和各字段名稱(chēng)。
測(cè)試場(chǎng)景也可以是多個(gè)業(yè)務(wù)場(chǎng)景組成的復(fù)合場(chǎng)景,在這種情況下,測(cè)試數(shù)據(jù)生成請(qǐng)求可以攜帶該復(fù)合場(chǎng)景涉及的多個(gè)業(yè)務(wù)系統(tǒng)的業(yè)務(wù)系統(tǒng)標(biāo)識(shí),以及每個(gè)所述業(yè)務(wù)系統(tǒng)的各字段名稱(chēng)。
S102:根據(jù)所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí),確定預(yù)定的、與所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的規(guī)則集合,所述規(guī)則集合中包含用于限定字段取值范圍的規(guī)則。
對(duì)于業(yè)務(wù)系統(tǒng)的字段,不同的字段的取值范圍可能不同,而且,某些字段的值的取值范圍可能還會(huì)依賴(lài)于其他字段的值,這些取值范圍一般是由業(yè)務(wù)系統(tǒng)的業(yè)務(wù)邏輯限定的。為了便于測(cè)試,還可以對(duì)業(yè)務(wù)邏輯限定的取值范圍進(jìn)一 步地進(jìn)行限定,以減小測(cè)試數(shù)據(jù)規(guī)模,提高測(cè)試效率。本申請(qǐng)實(shí)施例中所述的規(guī)則集合可以用于實(shí)現(xiàn)上述兩類(lèi)限定中的至少一種限定。
在本申請(qǐng)實(shí)施例中,可以分別為不同的業(yè)務(wù)系統(tǒng)預(yù)先設(shè)定不同的規(guī)則集合。則為業(yè)務(wù)系統(tǒng)設(shè)定的規(guī)則集合可以是:與該業(yè)務(wù)系統(tǒng)的業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的規(guī)則集合。相應(yīng)地,該規(guī)則集合中可以包含:用于限定該業(yè)務(wù)系統(tǒng)的部分字段或全部字段的取值范圍的規(guī)則。進(jìn)一步地,不同的業(yè)務(wù)系統(tǒng)可能會(huì)共用某些字段,因此,還可以針對(duì)至少兩個(gè)業(yè)務(wù)系統(tǒng),設(shè)定對(duì)應(yīng)于所述至少兩個(gè)業(yè)務(wù)系統(tǒng)的公共規(guī)則集合,該公共規(guī)則集合可以用于對(duì)所述至少兩個(gè)業(yè)務(wù)系統(tǒng)共用的字段的取值范圍進(jìn)行限定。
根據(jù)上面的說(shuō)明,步驟S102中的“與所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的規(guī)則集合”可以包括僅針對(duì)該業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)系統(tǒng)設(shè)定的規(guī)則集合,以及針對(duì)包括至少兩個(gè)業(yè)務(wù)系統(tǒng)設(shè)定的公共規(guī)則集合,所述至少兩個(gè)業(yè)務(wù)系統(tǒng)包括該業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)系統(tǒng)。
在本申請(qǐng)實(shí)施例中,對(duì)規(guī)則集合中包含的規(guī)則的表示形式并不做限定。在實(shí)際應(yīng)用中,所述規(guī)則可以用規(guī)則表達(dá)式、常量、變量、語(yǔ)句等形式進(jìn)行表示。
S103:根據(jù)所述字段名稱(chēng),在所述規(guī)則集合中確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
在本申請(qǐng)實(shí)施例中,字段名稱(chēng)對(duì)應(yīng)的規(guī)則可以用于:限定該字段名稱(chēng)對(duì)應(yīng)的字段的取值范圍。
在本申請(qǐng)實(shí)施例中,可以預(yù)先保存字段名稱(chēng)與規(guī)則之間的對(duì)應(yīng)關(guān)系,所述對(duì)應(yīng)關(guān)系可以保存在規(guī)則集合中,如直接保存在規(guī)則中,也可以保存與規(guī)則集合之外的數(shù)據(jù)中,如保存在用于對(duì)規(guī)則集合中的規(guī)則進(jìn)行索引的索引數(shù)據(jù)中。
進(jìn)一步地,在執(zhí)行步驟S103時(shí),可以根據(jù)字段名稱(chēng),在保存的各對(duì)應(yīng)關(guān)系中,查詢(xún)包含該字段名稱(chēng)的對(duì)應(yīng)關(guān)系,再根據(jù)查詢(xún)到的對(duì)應(yīng)關(guān)系確定該字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
S104:根據(jù)確定的所述規(guī)則,生成測(cè)試數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,可以分別針對(duì)測(cè)試數(shù)據(jù)生成請(qǐng)求中攜帶的每個(gè)字段名稱(chēng),根據(jù)確定的該字段名稱(chēng)對(duì)應(yīng)的規(guī)則,生成一個(gè)符合該規(guī)則的字段值。各字段名稱(chēng)與各對(duì)應(yīng)生成的字段值可以構(gòu)成:生成的一組測(cè)試數(shù)據(jù)。
類(lèi)似地,可以通過(guò)多次執(zhí)行上一段中的過(guò)程,生成多組測(cè)試數(shù)據(jù)。本申請(qǐng)實(shí)施例對(duì)生成的測(cè)試數(shù)據(jù)的數(shù)量并不做限定。在實(shí)際應(yīng)用中,可以根據(jù)測(cè)試需求生成相應(yīng)數(shù)量的測(cè)試數(shù)據(jù)。
通過(guò)上述方法,無(wú)需手工準(zhǔn)備測(cè)試數(shù)據(jù),而是可以基于規(guī)則集合自動(dòng)地生成測(cè)試數(shù)據(jù),效率較高,不僅如此,由于規(guī)則集合可以是根據(jù)測(cè)試場(chǎng)景預(yù)先確定的,進(jìn)而基于該規(guī)則集合也可以生成足夠覆蓋測(cè)試場(chǎng)景的測(cè)試數(shù)據(jù)。不僅如此,由于確定規(guī)則集合時(shí)針對(duì)不同的業(yè)務(wù)系統(tǒng)進(jìn)行了區(qū)分,因此,無(wú)論是針對(duì)一個(gè)業(yè)務(wù)系統(tǒng)中進(jìn)行測(cè)試,還是針對(duì)至少兩個(gè)有業(yè)務(wù)關(guān)聯(lián)的業(yè)務(wù)系統(tǒng)進(jìn)行測(cè)試,都可以正確地、效率較高地生成測(cè)試數(shù)據(jù)。
為了便于理解,下面對(duì)圖1中的步驟進(jìn)一步地說(shuō)明。
在實(shí)際應(yīng)用中,對(duì)于同一個(gè)業(yè)務(wù)系統(tǒng),其可能包含有多個(gè)業(yè)務(wù)場(chǎng)景,在不同的業(yè)務(wù)場(chǎng)景下,該業(yè)務(wù)系統(tǒng)的同一個(gè)字段的取值可能不同。
例如,對(duì)于一個(gè)售票系統(tǒng),其可以包括兩種業(yè)務(wù)場(chǎng)景,一種是在工作日售票場(chǎng)景,一種是周末售票場(chǎng)景,該售票系統(tǒng)包含的一個(gè)字段為票價(jià)字段。其中,在工作日售票場(chǎng)景,票價(jià)字段的取值可以是2元(針對(duì)兒童的票價(jià))、5元(針對(duì)老人的票價(jià))、10元(針對(duì)老人以外的成人的票價(jià))中的一種,而在周末售票場(chǎng)景,相對(duì)應(yīng)地,該票價(jià)字段的取值可以是4元、10元、20元中的一種。
可以看到,在不同的場(chǎng)景下,票價(jià)字段的取值范圍是不同的,那么在針對(duì)售票系統(tǒng)設(shè)定用于限定字段取值范圍的規(guī)則集合時(shí),可以根據(jù)不同的場(chǎng)景,對(duì)規(guī)則集合進(jìn)一步地細(xì)分(如細(xì)分成多個(gè)規(guī)則子集合),也即,根據(jù)場(chǎng)景定制相應(yīng)的規(guī)則。從而后續(xù)可以針對(duì)根據(jù)細(xì)分后的規(guī)則集合,為不同的場(chǎng)景的相同字段,生成不同的測(cè)試數(shù)據(jù)。如此一來(lái),可以進(jìn)一步地提高測(cè)試的可靠性。
根據(jù)上面的分析,當(dāng)業(yè)務(wù)系統(tǒng)有多個(gè)場(chǎng)景時(shí),對(duì)于步驟S103,所述規(guī)則 集合可以包含至少兩個(gè)規(guī)則子集合;根據(jù)所述字段名稱(chēng),在所述規(guī)則集合中確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則,具體可以包括:在所述規(guī)則集合包含的各規(guī)則子集合中,確定所述測(cè)試數(shù)據(jù)生成請(qǐng)求指定的規(guī)則子集合;根據(jù)所述字段名稱(chēng),在確定的規(guī)則子集合中,確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。測(cè)試數(shù)據(jù)生成請(qǐng)求可以通過(guò)攜帶特定參數(shù)(如要指定的規(guī)則子集合的標(biāo)識(shí)),以實(shí)現(xiàn)指定規(guī)則子集合。
更具體的,每個(gè)規(guī)則子集合可以分別對(duì)應(yīng)一種場(chǎng)景,測(cè)試數(shù)據(jù)生成請(qǐng)求可以對(duì)根據(jù)測(cè)試需求選取的場(chǎng)景,指定對(duì)應(yīng)的規(guī)則子集合,或者,測(cè)試數(shù)據(jù)生成請(qǐng)求也可以指定場(chǎng)景,然后由圖1的執(zhí)行主體根據(jù)測(cè)試數(shù)據(jù)生成請(qǐng)求指定的場(chǎng)景,確定與該場(chǎng)景對(duì)應(yīng)的規(guī)則子集合。
在實(shí)際應(yīng)用中,同一個(gè)規(guī)則集合中的各規(guī)則子集合可以用不同的標(biāo)識(shí)進(jìn)行區(qū)分,不同的規(guī)則集合中的規(guī)則子集合的標(biāo)識(shí)可以相同,這樣的話(huà),可以實(shí)現(xiàn)規(guī)則子集合的標(biāo)識(shí)的復(fù)用,可以節(jié)省系統(tǒng)資源。
當(dāng)然,各規(guī)則集合中的各規(guī)則子集合的標(biāo)識(shí)也可以均不相同,也即,規(guī)則子集合的標(biāo)識(shí)全局唯一,對(duì)于這種情況,若測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶有規(guī)則子集合的標(biāo)識(shí),已足以為測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶的字段名稱(chēng)確定對(duì)應(yīng)的規(guī)則,那么,測(cè)試數(shù)據(jù)生成請(qǐng)求也可以不攜帶業(yè)務(wù)系統(tǒng)標(biāo)識(shí),相應(yīng)地,步驟S102可以省略,步驟S103則可以變更為:根據(jù)所述字段名稱(chēng),在所述測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶的規(guī)則子集合的標(biāo)識(shí)對(duì)應(yīng)的規(guī)則子集合中,確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
需要說(shuō)明的是,上述的規(guī)則子集合的標(biāo)識(shí)或場(chǎng)景的標(biāo)識(shí),均是用于指定規(guī)則子集合的特定參數(shù)的示例。
在本申請(qǐng)實(shí)施例中,對(duì)于一個(gè)業(yè)務(wù)系統(tǒng)的多個(gè)場(chǎng)景,各場(chǎng)景相互之間可以對(duì)相對(duì)獨(dú)立的,也可以是有層次關(guān)系的。
例如,某業(yè)務(wù)系統(tǒng)的基本場(chǎng)景(稱(chēng)為第0層場(chǎng)景)可以包含兩個(gè)子場(chǎng)景(稱(chēng)為第1層場(chǎng)景),每個(gè)第1層場(chǎng)景又分別包含兩個(gè)子場(chǎng)景(稱(chēng)為第2層場(chǎng)景)。
而對(duì)于該業(yè)務(wù)系統(tǒng)的任一字段,該字段在第1層場(chǎng)景下一般具有最大的取 值范圍(稱(chēng)為第1取值范圍),該字段在第2層場(chǎng)景下的取值范圍(稱(chēng)為第2取值范圍)與第1取值范圍相同,或在第1取值范圍基礎(chǔ)上進(jìn)一步地縮小,該字段在第3層場(chǎng)景下的取值范圍(稱(chēng)為第3取值范圍)與第2取值范圍相同,或在第2取值范圍基礎(chǔ)上進(jìn)一步地縮小。
因此,可以根據(jù)各場(chǎng)景之間的層次關(guān)系,為各規(guī)則子集合也建立相應(yīng)的層次關(guān)系。下面對(duì)這種做法的優(yōu)點(diǎn)進(jìn)行說(shuō)明。
在實(shí)際應(yīng)用中,對(duì)于為同一個(gè)業(yè)務(wù)系統(tǒng)設(shè)定的各規(guī)則子集合,每個(gè)規(guī)則子集合中可以包含為對(duì)應(yīng)的場(chǎng)景涉及的部分或全部字段分別設(shè)定的規(guī)則,而對(duì)于某些字段中的每個(gè)字段,該字段可能同時(shí)涉及至少兩個(gè)場(chǎng)景(甚至全部場(chǎng)景),且在所述至少兩個(gè)場(chǎng)景下的取值范圍可能是相同的,因此,在每個(gè)規(guī)則子集合中包含的為該字段設(shè)定的規(guī)則也是相同的,這樣的話(huà),造成了大量冗余數(shù)據(jù),浪費(fèi)了系統(tǒng)資源。建立各規(guī)則子集合之間的層次關(guān)系,可以解決這個(gè)問(wèn)題。
沿用上例進(jìn)行說(shuō)明,假定根據(jù)上述的三層場(chǎng)景層次關(guān)系,對(duì)應(yīng)設(shè)定了三層規(guī)則子集合,第0層規(guī)則子集合用于限定字段的第1取值范圍,第1層規(guī)則子集合用于限定字段的第2取值范圍,第2層規(guī)則子集合用于限定字段的第3取值范圍。
對(duì)于某個(gè)字段X,假定字段X的第1、2、3取值范圍均相同。則可以只在在第0層規(guī)則子集合中設(shè)定用于限定字段X的取值范圍的規(guī)則即可;
對(duì)于某個(gè)字段Y,假定字段Y的第1、2取值范圍相同,與第3取值范圍不同。則可以在第0層規(guī)則子集合中設(shè)定用于限定字段Y的第1取值范圍的規(guī)則,以及在第2層規(guī)則子集合中設(shè)定用于限定字段Z的第3取值范圍的規(guī)則即可;
對(duì)于某個(gè)字段Z,假定字段Z的第1、2、3取值范圍均不相同。則可以在第0層規(guī)則子集合中設(shè)定用于限定字段Z的第1取值范圍的規(guī)則,以及在第1層規(guī)則子集合中設(shè)定用于限定字段Z的第2取值范圍的規(guī)則,以及在第2層規(guī)則子集合中設(shè)定用于限定字段Z的第3取值范圍的規(guī)則。
進(jìn)一步地,當(dāng)采用上例中的設(shè)定規(guī)則的方案時(shí),對(duì)步驟S103的具體實(shí)施方法也可以進(jìn)行該相應(yīng)的改進(jìn)。
具體的,所述規(guī)則集合包含的至少兩個(gè)規(guī)則子集合可以具有層次關(guān)系,在這種情況下,當(dāng)確定在所述確定的規(guī)則子集合中,不存在與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則時(shí),還可以執(zhí)行如下步驟:根據(jù)所述字段名稱(chēng)和所述層次關(guān)系,在所述規(guī)則集合包含的其他規(guī)則子集合中,確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
更具體的,若確定當(dāng)前層的規(guī)則子集合中,不存在與該字段名稱(chēng)對(duì)應(yīng)的規(guī)則,則可以去當(dāng)前層的前一層的規(guī)則子集合中查找該規(guī)則,以此類(lèi)推直到查找到該規(guī)則為止。當(dāng)然,在實(shí)際應(yīng)用中,還可以對(duì)可查找的層進(jìn)行限定(如限定最多可以查找到哪一層)。沿用上例進(jìn)行說(shuō)明。
假定測(cè)試數(shù)據(jù)生成請(qǐng)求指定的規(guī)則子集合屬于第1層規(guī)則子集合,對(duì)于字段Y,可以確定在第1層規(guī)則子集合中,并不存在字段Y對(duì)應(yīng)的規(guī)則,則可以在第0層規(guī)則子集合中查找字段Y對(duì)應(yīng)的規(guī)則,可以查找到該規(guī)則,且該規(guī)則為字段Y限定了第1取值范圍。
為了便于理解,對(duì)實(shí)際應(yīng)用中的一種規(guī)則子集合之間的層級(jí)關(guān)系進(jìn)行圖示說(shuō)明,如圖2所示。
圖2中示出了N個(gè)業(yè)務(wù)系統(tǒng),為了便于描述,僅示出了業(yè)務(wù)系統(tǒng)1相關(guān)的規(guī)則集合。
公共規(guī)則,以及業(yè)務(wù)系統(tǒng)1內(nèi)示出的各規(guī)則子集合可以統(tǒng)稱(chēng)為:業(yè)務(wù)系統(tǒng)1對(duì)應(yīng)的規(guī)則集合。業(yè)務(wù)系統(tǒng)1中一種包含三層規(guī)則子集合,分別是第0層的基礎(chǔ)規(guī)則、第1層的定制規(guī)則1和定制規(guī)則2,以及第2層的定制規(guī)則1.1、定制規(guī)則1.2、定制規(guī)則2.1、定制規(guī)則2.2。箭頭表示各規(guī)則子集合相互之間的嵌套關(guān)系。
通過(guò)這種有層次關(guān)系的規(guī)則子集合,可以為圖中的各業(yè)務(wù)系統(tǒng)的測(cè)試場(chǎng)景生成適用的測(cè)試數(shù)據(jù),而且生成的測(cè)試數(shù)據(jù)與測(cè)試場(chǎng)景的匹配程度較好,從而可以提高后續(xù)測(cè)試后獲得的測(cè)試結(jié)果的實(shí)用性和可靠性。
在本申請(qǐng)實(shí)施例中,除了針對(duì)業(yè)務(wù)系統(tǒng)預(yù)定的規(guī)則集合以外,測(cè)試數(shù)據(jù)生成請(qǐng)求也可以自行攜帶規(guī)則集合(稱(chēng)為自定義規(guī)則集合),用于生成測(cè)試數(shù)據(jù)。
自定義規(guī)則集合可以用于對(duì)一個(gè)或多個(gè)字段的取值范圍進(jìn)行限定。本申請(qǐng)實(shí)施例對(duì)自定義規(guī)則集合與設(shè)定的各規(guī)則集合相互之間的優(yōu)先級(jí)關(guān)系并不做限定。可以根據(jù)可以實(shí)際情況進(jìn)行優(yōu)先級(jí)設(shè)定。
在本申請(qǐng)實(shí)施例中,當(dāng)測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶的自定義規(guī)則集合的優(yōu)先級(jí)最高時(shí)。對(duì)于自定義規(guī)則集合對(duì)應(yīng)的各字段,所述各字段的取值范圍由自定義規(guī)則集合進(jìn)行限定,相應(yīng)地,可以根據(jù)規(guī)則集合限定的取值范圍,生成的對(duì)應(yīng)于所述各字段的測(cè)試數(shù)據(jù);而對(duì)于出所述各字段以外的其他字段,各所述其他字段的取值范圍由預(yù)定的各規(guī)則集合進(jìn)行限定,相應(yīng)地,可以根據(jù)預(yù)定的各規(guī)則集合限定的取值范圍,生成的對(duì)應(yīng)于各所述其他字段的測(cè)試數(shù)據(jù)。
根據(jù)上面的分析,當(dāng)測(cè)試數(shù)據(jù)生成請(qǐng)求還攜帶自定義規(guī)則集合時(shí),在針對(duì)自定義規(guī)則集合對(duì)應(yīng)的字段名稱(chēng),執(zhí)行步驟S104前,還可以執(zhí)行以下步驟:確定在所述自定義規(guī)則集合中,不存在與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。而對(duì)于其他字段名稱(chēng),則無(wú)需執(zhí)行該步驟。
當(dāng)所述測(cè)試數(shù)據(jù)生成請(qǐng)求還攜帶自定義規(guī)則集合時(shí),進(jìn)一步地可以執(zhí)行以下步驟:當(dāng)確定在所述自定義規(guī)則集合中,存在與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則時(shí),根據(jù)存在的所述規(guī)則,生成對(duì)應(yīng)于所述字段名稱(chēng)的測(cè)試數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,對(duì)于步驟S104,根據(jù)確定的所述規(guī)則,生成測(cè)試數(shù)據(jù),具體可以包括:根據(jù)確定的所述規(guī)則,生成對(duì)應(yīng)于所述字段名稱(chēng)的測(cè)試數(shù)據(jù)。前面已經(jīng)提到,規(guī)則可以用規(guī)則表達(dá)式、常量、變量、語(yǔ)句等形式進(jìn)行表示,下面以規(guī)則表達(dá)式作為示例進(jìn)行說(shuō)明。
在這種情況下,所述規(guī)則包括為所述字段名稱(chēng)指定的規(guī)則表達(dá)式,對(duì)于步驟S104,根據(jù)確定的所述規(guī)則,生成測(cè)試數(shù)據(jù),具體可以包括:根據(jù)所述規(guī)則表達(dá)式,生成符合所述規(guī)則表達(dá)式的、對(duì)應(yīng)于所述字段名稱(chēng)的測(cè)試數(shù)據(jù)。
規(guī)則具體可以是如下值對(duì):字段名稱(chēng)→規(guī)則表達(dá)式。該值對(duì)的含義是:用 該規(guī)則表達(dá)式限定該字段名稱(chēng)對(duì)應(yīng)的字段的取值范圍。舉例對(duì)規(guī)則表達(dá)式的幾種表示方式進(jìn)行說(shuō)明。
例如,規(guī)則表達(dá)式[0-100)可以表示:取值范圍為0到100,且包含0不包含100;規(guī)則表達(dá)式{a1,a2,a3}可以表示:按照預(yù)定選擇方法從a1、a2、a3這三個(gè)值中選擇一個(gè)值;規(guī)則表達(dá)式curr_data(這是一個(gè)用于取當(dāng)前日期的函數(shù)名稱(chēng)的示例)可以表示:取值為當(dāng)前的日期;規(guī)則表達(dá)中也可以增加對(duì)其他字段的依賴(lài),比如規(guī)則表達(dá)式{#E}可以表示:取值為E字段的值;等等。
對(duì)于步驟S104,可以按照確定的規(guī)則進(jìn)行解析執(zhí)行,生成測(cè)試數(shù)據(jù),并可以將生成的測(cè)試數(shù)據(jù)返回給測(cè)試數(shù)據(jù)生成請(qǐng)求的發(fā)送方。
需要說(shuō)明的是,本申請(qǐng)實(shí)施例對(duì)返回測(cè)試數(shù)據(jù)的方式并不做限定。在實(shí)際應(yīng)用中,可以將測(cè)試數(shù)據(jù)以嵌套map、json或可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)的數(shù)據(jù)格式返回。
基于以上對(duì)圖1中的步驟的說(shuō)明,本申請(qǐng)實(shí)施例還提供了在實(shí)際應(yīng)用中,一種可以用于實(shí)施本申請(qǐng)的方案的系統(tǒng)的結(jié)構(gòu)圖,如圖3所示。
圖3中的系統(tǒng)主要包括:規(guī)則配置裝置、測(cè)試數(shù)據(jù)生成裝置。箭頭方向表示本申請(qǐng)的方案的流程方向,圓柱形表示在流程中生成的數(shù)據(jù)。
規(guī)則配置裝置可以用于:為業(yè)務(wù)系統(tǒng)預(yù)先設(shè)定對(duì)應(yīng)的規(guī)則集合;對(duì)規(guī)則集合進(jìn)行層次化細(xì)分。
測(cè)試數(shù)據(jù)生成裝置可以用于:接收測(cè)試數(shù)據(jù)生成請(qǐng)求;并根據(jù)測(cè)試數(shù)據(jù)生成請(qǐng)求,從規(guī)則配置裝置設(shè)定的規(guī)則集合中,確定對(duì)應(yīng)的規(guī)則集合,并在規(guī)則集合中為每個(gè)字段名稱(chēng)確定對(duì)應(yīng)的規(guī)則,對(duì)確定的規(guī)則進(jìn)行解析,以及按照規(guī)則生成對(duì)應(yīng)于字段名稱(chēng)的測(cè)試數(shù)據(jù);輸出測(cè)試數(shù)據(jù)。
需要說(shuō)明的是,圖3只是可用于實(shí)施本申請(qǐng)的方案的系統(tǒng)的結(jié)構(gòu)圖的示例,本申請(qǐng)實(shí)施例對(duì)可用于實(shí)施本申請(qǐng)的方案的系統(tǒng)的結(jié)構(gòu)并不做限定。
以上為本申請(qǐng)實(shí)施例提供的測(cè)試數(shù)據(jù)生成方法,基于同樣的思路,本申請(qǐng)實(shí)施例還提供相應(yīng)的測(cè)試數(shù)據(jù)生成裝置,如圖4所示。
圖4為本申請(qǐng)實(shí)施例提供的測(cè)試數(shù)據(jù)生成裝置結(jié)構(gòu)示意圖,具體包括:
接收模塊401,用于接收測(cè)試數(shù)據(jù)生成請(qǐng)求,所述測(cè)試數(shù)據(jù)生成請(qǐng)求攜帶業(yè)務(wù)系統(tǒng)標(biāo)識(shí)和字段名稱(chēng);
規(guī)則集合確定模塊402,用于根據(jù)所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí),確定預(yù)定的、與所述業(yè)務(wù)系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的規(guī)則集合,所述規(guī)則集合中包含用于限定字段取值范圍的規(guī)則;
規(guī)則確定模塊403,用于根據(jù)所述字段名稱(chēng),在所述規(guī)則集合中確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則;
生成模塊404,用于根據(jù)確定的所述規(guī)則,生成測(cè)試數(shù)據(jù)。
所述規(guī)則集合包含至少兩個(gè)規(guī)則子集合;
所述規(guī)則確定模塊403具體可以用于:在所述規(guī)則集合包含的各規(guī)則子集合中,確定所述測(cè)試數(shù)據(jù)生成請(qǐng)求指定的規(guī)則子集合;根據(jù)所述字段名稱(chēng),在確定的規(guī)則子集合中,確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
所述規(guī)則集合包含的至少兩個(gè)規(guī)則子集合具有層次關(guān)系,當(dāng)所述規(guī)則確定模塊403確定在所述確定的規(guī)則子集合中,不存在與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則時(shí),所述規(guī)則確定模塊403還用于:根據(jù)所述字段名稱(chēng)和所述層次關(guān)系,在所述規(guī)則集合包含的其他規(guī)則子集合中,確定與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
當(dāng)所述測(cè)試數(shù)據(jù)生成請(qǐng)求還攜帶自定義規(guī)則集合時(shí),所述生成模塊404根據(jù)確定的所述規(guī)則,生成對(duì)應(yīng)于所述字段名稱(chēng)的測(cè)試數(shù)據(jù)前,所述規(guī)則確定模塊403還用于:確定在所述自定義規(guī)則集合中,不存在與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則。
當(dāng)所述測(cè)試數(shù)據(jù)生成請(qǐng)求還攜帶自定義規(guī)則集合時(shí),所述生成模塊404還用于:當(dāng)所述規(guī)則確定模塊403確定在所述自定義規(guī)則集合中,存在與所述字段名稱(chēng)對(duì)應(yīng)的規(guī)則時(shí),根據(jù)存在的所述規(guī)則,生成對(duì)應(yīng)于所述字段名稱(chēng)的測(cè)試數(shù)據(jù)。
所述規(guī)則包括為所述字段名稱(chēng)指定的規(guī)則表達(dá)式;
所述生成模塊404具體用于:根據(jù)所述規(guī)則表達(dá)式,生成符合所述規(guī)則表達(dá)式的、對(duì)應(yīng)于所述字段名稱(chēng)的測(cè)試數(shù)據(jù)。
具體的上述如圖4所示的裝置可以位于終端、服務(wù)器上。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器 (RAM)和/或非易失性?xún)?nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flashRAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(pán)(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪(fǎng)問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。