基于業(yè)務(wù)模型進(jìn)行數(shù)據(jù)庫性能測試的方法
【專利摘要】提供一種基于業(yè)務(wù)模型進(jìn)行數(shù)據(jù)庫性能測試的方法。該方法包括:基于業(yè)務(wù)建立所述業(yè)務(wù)的業(yè)務(wù)模型;根據(jù)所述業(yè)務(wù)模型配置與所述業(yè)務(wù)模型對應(yīng)的測試信息,將配置好的測試信息保存在文件中形成測試文件;依據(jù)所述業(yè)務(wù)模型和對所述測試文件進(jìn)行讀取所獲得的所述配置信息,測試與目標(biāo)業(yè)務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫的性能;以及將所述數(shù)據(jù)庫的性能的結(jié)果作為測試結(jié)果輸出。
【專利說明】基于業(yè)務(wù)模型進(jìn)行數(shù)據(jù)庫性能測試的方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)庫測試,尤其涉及一種基于業(yè)務(wù)模型進(jìn)行數(shù)據(jù)庫性能測試的方法。
【背景技術(shù)】
[0002]隨著數(shù)據(jù)業(yè)務(wù)的不斷發(fā)展,數(shù)據(jù)庫性能在很大程度上成了一個企業(yè)效率的體現(xiàn)。而對數(shù)據(jù)庫性能的了解,我們只能通過一些測試軟件來完成。
[0003]目前數(shù)據(jù)庫性能測試的軟件存在著兩個方面的問題,一是、不能根據(jù)特定的業(yè)務(wù)進(jìn)行量身的定制。二是、不能全面復(fù)雜的測試數(shù)據(jù)的性能?,F(xiàn)有的技術(shù)中一種是只有固定的事務(wù)模型進(jìn)行測試的軟件,它可以測試一些特定的業(yè)務(wù)功能,例如訂單下發(fā),而像一些比較特別的業(yè)務(wù)就不能很好的進(jìn)行測試。而另外有一種就只能簡單的數(shù)據(jù)庫查詢、添加等測試,并不能達(dá)到好的效果。
[0004]比如我們經(jīng)常使用通用的測試工具如tpcc, sysbench,業(yè)務(wù)模型相對比較簡單。tpcc模擬的是銀行用戶轉(zhuǎn)賬模型,而我們的應(yīng)用系統(tǒng)模型跟tpcc用戶轉(zhuǎn)賬模型相差較大,如果采用tpcc來測試我們的數(shù)據(jù)庫,由于本身的模型的差別較大,測試的結(jié)果精確度不夠,可信度不高。而sysbench本身的結(jié)果更加簡單,只能配置簡單的sql進(jìn)行測試,數(shù)據(jù)庫各個表和字段無法按照真實的業(yè)務(wù)進(jìn)行模擬,表和表之間的關(guān)系也沒有辦法表示,測試的結(jié)果相差也是很大。
[0005]目前能夠真實模擬業(yè)務(wù)的方式就是在線運行真實的應(yīng)用,通過真實應(yīng)用測試數(shù)據(jù)的壓力,而完全從業(yè)務(wù)角度進(jìn)行測試,需要使用大量的應(yīng)用服務(wù)器進(jìn)行測試,線上數(shù)據(jù)庫和應(yīng)用服務(wù)器的比例是1:50左右,想模擬真實的業(yè)務(wù)測試具體數(shù)據(jù)庫的瓶頸需要使用大量的測試資源,靈活性也受到限制,并不能測試到最后數(shù)據(jù)庫的瓶頸。
【發(fā)明內(nèi)容】
[0006]針對上述缺陷,本申請?zhí)峁┮环N數(shù)據(jù)庫性能測試的方法,解決在滿足業(yè)務(wù)要求的情況下優(yōu)化當(dāng)前數(shù)據(jù)庫性能測試的問題。
[0007]本申請的基于業(yè)務(wù)模型進(jìn)行數(shù)據(jù)庫性能測試的方法,包括:基于業(yè)務(wù)建立所述業(yè)務(wù)的業(yè)務(wù)模型;根據(jù)所述業(yè)務(wù)模型配置與所述業(yè)務(wù)模型對應(yīng)的測試信息,將配置好的測試信息保存在文件中形成測試文件;依據(jù)所述業(yè)務(wù)模型和對所述測試文件進(jìn)行讀取所獲得的所述配置信息,測試與目標(biāo)業(yè)務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫的性能;以及將所述數(shù)據(jù)庫的性能的結(jié)果作為測試結(jié)果輸出。
[0008]根據(jù)本申請的實施例,在該方法中,所述配置與所述業(yè)務(wù)模型對應(yīng)的測試信息還包括:配置連接數(shù)據(jù)庫信息,配置創(chuàng)建表和定義字段信息,以及配置建立業(yè)務(wù)模型信息。
[0009]根據(jù)本申請的實施例,在該方法中,所述配置連接數(shù)據(jù)庫信息還包括:配置連接不同類型的數(shù)據(jù)庫,通過變更數(shù)據(jù)庫的類型信息,在不同類型的數(shù)據(jù)庫之間切換。
[0010]根據(jù)本申請的實施例,在該方法中,所述配置創(chuàng)建表和定義字段信息,還包括:根據(jù)被測試數(shù)據(jù)庫中的表創(chuàng)建業(yè)務(wù)表;配置創(chuàng)建的業(yè)務(wù)表的表名和字段;定義所述字段,包括定義字段名稱、字段類型、字段描述,并且,采用“;”區(qū)分字段;所述字段名稱與數(shù)據(jù)庫中表的字段名稱一致;以及各個創(chuàng)建的業(yè)務(wù)表中的字段類型為隨機生成的不同的數(shù)據(jù)類型,字段的數(shù)值則根據(jù)業(yè)務(wù)規(guī)則來隨機生成。
[0011]根據(jù)本申請的實施例,在該方法中,所述業(yè)務(wù)模型建立還包括:把業(yè)務(wù)模型中所使用到的關(guān)系數(shù)據(jù)抽象成一個公用的集合,所述業(yè)務(wù)表中的數(shù)據(jù)從這個公用集合中取得,保證表和表之間的關(guān)系。
[0012]根據(jù)本申請的實施例,在該方法中,所述配置創(chuàng)建表和定義字段信息,還包括:對創(chuàng)建的業(yè)務(wù)表和字段的順序進(jìn)行定制,創(chuàng)建的業(yè)務(wù)表中的信息跟目標(biāo)業(yè)務(wù)的信息保持一致,并對各個業(yè)務(wù)表的字段長度、取值范圍進(jìn)行配置。
[0013]根據(jù)本申請的實施例,在該方法中,所述配置建立業(yè)務(wù)模型信息,還包括:根據(jù)目標(biāo)業(yè)務(wù)復(fù)雜度和/或目標(biāo)業(yè)務(wù)執(zhí)行邏輯,來配置所建立的業(yè)務(wù)模型的執(zhí)行的方式。
[0014]根據(jù)本申請的實施例,在該方法中,所述配置建立業(yè)務(wù)模型信息,還包括:在配置好的測試文件中添加事務(wù)模型。
[0015]根據(jù)本申請的實施例,在該方法中,所述配置測試文件,還包括:測試文件中設(shè)定有不同的標(biāo)簽;以及對測試文件中不同的標(biāo)簽進(jìn)行配置,定義每個標(biāo)簽中的信息,從而能對不同的信息加以標(biāo)識,以便測試數(shù)據(jù)庫性能時對測試文件的讀取。
[0016]根據(jù)本申請的實施例,在該方法中,所述測試文件進(jìn)行讀取,還包括:根據(jù)讀取的測試文件中標(biāo)簽的標(biāo)識,解析出用于測試所述與目標(biāo)業(yè)務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫的性能的指令,模擬所述實際業(yè)務(wù)的流程以執(zhí)行處理。
[0017]根據(jù)本申請的實施例,在該方法中,所述模擬所述實際業(yè)務(wù)的流程執(zhí)行處理,還包括:讀取出的所述業(yè)務(wù)模型中的各個事務(wù)的信息,并使用結(jié)構(gòu)體鏈表保存;以及依據(jù)各個事務(wù)的信息,執(zhí)行解析出的指令。
[0018]根據(jù)本申請的實施例,在該方法中,所述業(yè)務(wù)模型建立之前,還包括:對各種數(shù)據(jù)庫進(jìn)行抽象,對數(shù)據(jù)庫表中字段類型及字段長度進(jìn)行統(tǒng)一。
[0019]與現(xiàn)有技術(shù)相比,根據(jù)本申請的技術(shù)方案,其優(yōu)點之一是可以根據(jù)具體業(yè)務(wù)定制業(yè)務(wù)模型進(jìn)行測試,可以對程序執(zhí)行方式進(jìn)行配置,更好的模擬了實際的業(yè)務(wù)。不但能保證結(jié)果的正確性,還能保證測試的真實性。其另一優(yōu)點是設(shè)備利用率高,可以用很少的設(shè)備模擬大量的應(yīng)用服務(wù)器,可以節(jié)約大量的測試資源,靈活性更好。
[0020]基于本申請的方案,其對當(dāng)前的數(shù)據(jù)庫容量有更好的測試,從而估計結(jié)果最優(yōu),根據(jù)實際的業(yè)務(wù)場景,在測試結(jié)果的幫助下,能選擇更好的硬件或進(jìn)行更好的性能調(diào)優(yōu),更合理的利用資源。
【專利附圖】
【附圖說明】
[0021]為了更清楚地說明本申請實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0022]圖1是本申請基于業(yè)務(wù)模型的數(shù)據(jù)庫性能測試的一【具體實施方式】的功能架構(gòu)圖;[0023]圖2是本申請基于業(yè)務(wù)模型的數(shù)據(jù)庫性能測試方法的一【具體實施方式】的流程圖;
[0024]圖3是本申請基于業(yè)務(wù)模型的數(shù)據(jù)庫性能測試方法的一【具體實施方式】中配置測試文件的流程圖;以及
[0025]圖4是本申請基于業(yè)務(wù)模型的數(shù)據(jù)庫性能測試方法的一【具體實施方式】的讀取測試文件執(zhí)行測試的流程圖。
【具體實施方式】
[0026]為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
[0027]本申請依據(jù)實際的業(yè)務(wù)建立業(yè)務(wù)模型,通過模擬真實的用戶操作以及還原實際業(yè)務(wù)流程,來達(dá)到更全面的測試出數(shù)據(jù)庫性能的目的。可以根據(jù)不同的業(yè)務(wù)來定制不同的業(yè)務(wù)模型,節(jié)約更多的資源,配置操作通用性、移植性高。
[0028]圖1描述了基于業(yè)務(wù)模型的數(shù)據(jù)庫性能測試方法的功能框架,其示意性地示出了本申請所述方法的三個主要的處理組成部分,其包括配置測試文件模塊110,讀取測試文件執(zhí)行測試模塊120,輸出測試結(jié)果模塊130。
[0029]在配置測試文件模塊110中,完成對測試信息進(jìn)行配置,其完成測試信息的配置后,將測試信息保存在測試文件中,這里,測試文件可以選擇使用xml文件。讀取測試文件執(zhí)行測試模塊120獲取所述xml文件并進(jìn)行解析,執(zhí)行模擬業(yè)務(wù)操作過程的指令,進(jìn)行測試處理。完成測試處理獲得的測試結(jié)果傳送到輸出測試結(jié)果模塊130,以將所述數(shù)據(jù)庫性能的測試結(jié)果輸出。
[0030]圖2的流程更具體地體現(xiàn)本申請一【具體實施方式】的整體流程以及對應(yīng)上述輸入配置、讀取執(zhí)行和輸出模塊的具體處理方式。
[0031]在配置測試文件模塊110中,建立目標(biāo)業(yè)務(wù)對應(yīng)的業(yè)務(wù)模型200。對數(shù)據(jù)庫抽象和事務(wù)的抽象及關(guān)系數(shù)據(jù)庫中各個表數(shù)據(jù)之間的關(guān)系抽象。業(yè)務(wù)模型通常在測試之前要確定,此后就可按正常的業(yè)務(wù)模型配置,配置信息根據(jù)業(yè)務(wù)主要流程定制和配置。
[0032]數(shù)據(jù)庫的抽象
[0033]測試工具目前支持兩種最主流的數(shù)據(jù)Oracle和MySQL (實際工作需要),而目前許多測試工具只能測試Oracle或者只能測試MySQL。利用本申請的測試方法,配置連接數(shù)據(jù)庫信息,這兩者都能很好的支持(無需考慮數(shù)據(jù)庫類型)。
[0034]對不同數(shù)據(jù)庫的表字段類型中存在的差異的地方,測試程序可以進(jìn)行兼容性處理,比如Oracle表示字符類型是varchar2,而在MySQL中是varchar,測試程序統(tǒng)一使用的字符類型String表示,比如Oracle和MySQL中日期類型及默認(rèn)值是不同的,在程序中統(tǒng)一的使用Date表示日期類型,同時用戶可以根據(jù)數(shù)據(jù)庫類型配置具體日期的默認(rèn)值,比如cl#Date {systimestamp}表示是字段cl是日期類型,同時使用systimestamp作為它的默認(rèn)值(Oracle中日期的默認(rèn)值),c2#Date {nowO }表示字段c2是日期類型,它的默認(rèn)值是now (MySQL日期的默認(rèn)值),這樣,盡可能抽象和統(tǒng)一配置,簡化了配置測試文件的成本。對長度不同的字段,本方法的處理方式是取實際業(yè)務(wù)表中的每個字段的平均長度,簡化配置的復(fù)雜度,同時更好的模擬了真實場景。因而,業(yè)務(wù)模型無需考慮數(shù)據(jù)庫類型,字段類型也盡可能的統(tǒng)一,從一種數(shù)據(jù)庫切換到另外一種數(shù)據(jù),配置測試文件基本上不需要太大的改動(配置信息基本上無需修改),如平滑的從Oracle切換成MySQL。
[0035]對事備的柚象
[0036]從數(shù)據(jù)庫相關(guān)的業(yè)務(wù)來說,事務(wù)密集型的業(yè)務(wù)主要就是由一系列的相關(guān)事務(wù)組成,并且事務(wù)之間有一定的邏輯順序,每一步操作都跟上一步事務(wù)操作整整相連,同時也直接影響到下一步的操作,在本申請的配置完成后得到的測試文件中,保留了業(yè)務(wù)相關(guān)最重要的一部分,就是事務(wù)的相關(guān)性,每個事務(wù)用一個結(jié)構(gòu)體來表示,由很多的結(jié)構(gòu)體組成了一個隊列,必須保證在上一個事務(wù)完成之前才能運行本事務(wù),本事務(wù)操作成功以后調(diào)用下一個事務(wù)處理,這樣,將業(yè)務(wù)邏輯抽象成有序的幾個事務(wù)。舉例說,在交易中首先需要確認(rèn)商品是否有庫存,這個就涉及到一個事務(wù)操作,在確認(rèn)存在庫存的情況下,用戶才可以下訂單創(chuàng)建一筆交易,在創(chuàng)建一筆交易成功的情況下,用戶才可以使用銀行卡進(jìn)行支付,每個過程都包含一些若干事務(wù)的處理。在建立業(yè)務(wù)模型時,就可以根據(jù)這些處理過程進(jìn)行靈活事務(wù)配置,保證業(yè)務(wù)處理真實性。
[0037]業(yè)務(wù)有由很多個關(guān)聯(lián)事務(wù)組成,事務(wù)之間是順序執(zhí)行的,同時上一個事務(wù)執(zhí)行結(jié)果,直接影響到后一個事務(wù)是否執(zhí)行。本申請專利申請的方案中,事務(wù)當(dāng)中詳細(xì)的語句也是可以配置的。例如:一個業(yè)務(wù)包含Tl,T2, T3三個事務(wù),現(xiàn)在流程是Τ1-T2-T3,如果業(yè)務(wù)模型可以發(fā)生變化,比如把T2這個事務(wù)拆分成T2-1,T2-2,當(dāng)前業(yè)務(wù)的流程變成Τ1->Τ2-1->Τ2-2->Τ3,配置也是很靈活的,把配置文件中Τ2替換成Τ2-1和Τ2-2就可以了 ;如果業(yè)務(wù)流程發(fā)生變化,順序上有所調(diào)整,配置文件修改下事務(wù)順序也就可以了 ;如果事務(wù)中具體的sql語句執(zhí)行有所改變,具體調(diào)整事務(wù)中的sql語句即可。
[0038]對關(guān)系數(shù)據(jù)庫中各個表數(shù)據(jù)之間的關(guān)系抽象
[0039]在關(guān)系數(shù)據(jù)庫模型中,最重要的就是各個表之間的關(guān)聯(lián)關(guān)系,在真實的業(yè)務(wù)場景中,也存在這樣的情況,比如上面提到的例子,你在創(chuàng)建交易過程,默認(rèn)交易記錄里面插入一條交易信息,標(biāo)明“誰”、“什么時候”、“購買了一件什么樣的物品”,對應(yīng)的這個物品信息肯定是在庫存庫中的(否則創(chuàng)建這種交易毫無意義),而交易記錄與庫存信息是存在聯(lián)系的,在建立業(yè)務(wù)模型時,通過把這些關(guān)系的數(shù)據(jù)抽象成一個公用的集合,來保證各個表之間的聯(lián)系,即表關(guān)系的抽象處理。每個表的數(shù)據(jù)都是從公共的集合中提取的,保證了所有表的某些屬性保持一致,保留了關(guān)系數(shù)據(jù)庫中最重要的表和表之間的關(guān)系。公共的集合在建立業(yè)務(wù)模型過程中得到的,從業(yè)務(wù)表的數(shù)據(jù)集和業(yè)務(wù)模型特點,我們都可以得到這個共享集合。如:每個表的數(shù)據(jù)都從共享的集合提取數(shù)據(jù),也就是表和共享的集合產(chǎn)生了關(guān)系,共享的集合在每個表之間搭了一座橋。想把表A和表B關(guān)聯(lián)起來,最重要的就是在表A和表B中間搭建一座橋,這個共享的集合就是這么一座橋梁。
[0040]數(shù)據(jù)庫中各個表相關(guān)聯(lián)的屬性都在一個集合(模型)中,各個表引用的數(shù)據(jù)都從這個集合中取,這個集合把各個表關(guān)聯(lián)起來了。在程序一開始的測試過程中,各個表是相互獨立的,無法與其他的表關(guān)聯(lián) 起來,無法找到共同點。通過把共同的屬性保存在一個共享的集合中,把各個表關(guān)聯(lián)起來,保證了關(guān)系數(shù)據(jù)庫中最基本的特點。舉個列子,一般我們?nèi)プ砸粋€網(wǎng)站需要填寫很多的信息,比如姓名,手機號碼,郵箱,收貨地址等。假設(shè)這些信息都是存放在不同的表中。如何知道這些信息關(guān)聯(lián)到那一個人,此時可以通過一個用戶編號來關(guān)聯(lián)起來,比如在姓名表中加入用戶的編號,手機號碼表,郵箱,收貨地址表中加上同一個編號,通過用戶的編號,我們可以知道某一個用戶相關(guān)的所有信息,在這個里面,用戶的編號就是那個共享集合元素。各個表都跟共享集合有關(guān)系,可以認(rèn)為各個表間接的有這種關(guān)系。每次程序運行過程當(dāng)中,共享的元素開始需要初始化一次,后面使用的時候會直接從這個集合中去獲取。
[0041]通過有順序的執(zhí)行事務(wù),保證事務(wù)執(zhí)行的有序性,保留了業(yè)務(wù)最重要的特性;通過把表之間關(guān)系的抽象成一個共用的集合,來保證各個表之間數(shù)據(jù)的一致性,保留了關(guān)系數(shù)據(jù)庫最重要的一部分,從而保證了本申請測試方法能夠真實的模擬實際業(yè)務(wù)。
[0042]在配置測試文件模塊110中,實施對測試文件進(jìn)行配置的配置步驟210,完成對測試信息進(jìn)行配置。這里,測試文件可以選擇使用xml文件。配置測試文件的過程如圖3所示。其中,測試信息包括,連接數(shù)據(jù)庫信息,創(chuàng)建表和定義字段信息,建立業(yè)務(wù)模型信息。
[0043]其中,xml文件中的各個層次的標(biāo)簽,方便進(jìn)行配置,同時添加一個標(biāo)簽基本上對之前配置沒有影響,很好的符合了設(shè)計模式中的對添加開發(fā),對修改封閉的原則。讀取xml文件也很方便,通過對應(yīng)的幾個接口來做就可以,相當(dāng)?shù)姆奖愫涂旖荨?br>
[0044]并且,xml富標(biāo)簽功能,使得測試工具可以非常靈活的進(jìn)行配置,固定的信息配置,比如用戶名和密碼,數(shù)據(jù)庫schema及端口等,可以通過固定的標(biāo)簽進(jìn)行配置,對于一些存在可變的信息,比如不確定的字段數(shù)目和變化的表的數(shù)目,也提供靈活的配置功能。對于表的字段,通過一個有規(guī)則的寬字符來表示,每個字段和字段之間以“#”分割,字符串的長度是不受限制的,因此理論上表的字段也是沒有限制的,同時在測試工具中,使用了隊列來表示字段,理論上長度也是不受限制的,對于表名配置,通過多個相同的表標(biāo)簽來配置,因為xml本身標(biāo)簽長度是可以動態(tài)調(diào)整的,表數(shù)量也是可以動態(tài)配置,同樣在測試過程中,表是用一個鏈表,長度也是無限制的,可以動態(tài)配置的。
[0045]配置步驟210優(yōu)選為先配置連接數(shù)據(jù)庫信息310,再配置創(chuàng)建表和定義字段信息320,最后配置建立業(yè)務(wù)模型信息330,完成配置測試信息后,將測試信息保存在測試文件中。
[0046]下面將具體介紹配置測試文件的過程,如圖3所示。
[0047]在配置連接數(shù)據(jù)庫信息310時,對數(shù)據(jù)庫類型,數(shù)據(jù)庫用戶名,數(shù)據(jù)庫密碼,數(shù)據(jù)庫集合標(biāo)識schema,數(shù)據(jù)庫ip,數(shù)據(jù)庫端口這幾個部分進(jìn)行配置。
[0048]比如,在支持MySQL和Oracle兩類不同的數(shù)據(jù)庫時,數(shù)據(jù)庫類型可以選擇MySQL或者Oracle,這里,schema在Oracle代表的是Oracle中實例名SID,在上述配置連接數(shù)據(jù)庫信息310以“db標(biāo)簽”做為標(biāo)識時,則為例如:
[0049]
【權(quán)利要求】
1.一種基于業(yè)務(wù)進(jìn)行數(shù)據(jù)庫性能測試的方法,所述方法包括: 基于業(yè)務(wù)建立所述業(yè)務(wù)的業(yè)務(wù)模型以模擬所述業(yè)務(wù)的流程,其中,所述業(yè)務(wù)包含一個或多個事務(wù); 根據(jù)所述業(yè)務(wù)模型配置與所述業(yè)務(wù)模型對應(yīng)的測試信息,將配置好的測試信息保存在文件中形成測試文件; 依據(jù)所述業(yè)務(wù)模型和對所述測試文件進(jìn)行讀取所獲得的所述配置信息,測試與目標(biāo)業(yè)務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫的性能;以及 將所述數(shù)據(jù)庫的性能的結(jié)果作為測試結(jié)果輸出。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述業(yè)務(wù)模型配置與所述業(yè)務(wù)模型對應(yīng)的測試信息還包括: 配置連接數(shù)據(jù)庫信息,配置創(chuàng)建表和定義字段信息,以及配置建立業(yè)務(wù)模型信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述配置連接數(shù)據(jù)庫信息還包括: 配置連接不同類型的數(shù)據(jù)庫,通過變更數(shù)據(jù)庫的類型信息,在不同類型的數(shù)據(jù)庫之間切換。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述配置創(chuàng)建表和定義字段信息,還包括: 根據(jù)被測試數(shù)據(jù)庫中的表創(chuàng)建業(yè)務(wù)表; 配置創(chuàng)建的業(yè)務(wù)表的表名和字段; 定義所述字段,包括定義字段名稱、字段類型、字段描述,并且,采用“;”區(qū)分字段; 所述字段名稱與數(shù)據(jù)庫中表的字段名稱一致; 各個創(chuàng)建的業(yè)務(wù)表中的字段類型為隨機生成的不同的數(shù)據(jù)類型,字段的數(shù)值則根據(jù)業(yè)務(wù)規(guī)則來隨機生成。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述業(yè)務(wù)模型建立還包括: 把業(yè)務(wù)模型中所使用到的關(guān)系數(shù)據(jù)抽象成一個公用的集合,所述業(yè)務(wù)表中的數(shù)據(jù)從這個公用集合中取得,保證表和表之間的關(guān)系。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述配置創(chuàng)建表和定義字段信息,還包括: 對創(chuàng)建的業(yè)務(wù)表和字段的順序進(jìn)行定制,創(chuàng)建的業(yè)務(wù)表中的信息跟目標(biāo)業(yè)務(wù)的信息保持一致,并對各個業(yè)務(wù)表的字段長度、取值范圍進(jìn)行配置。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述配置建立業(yè)務(wù)模型信息,還包括: 根據(jù)目標(biāo)業(yè) 務(wù)復(fù)雜度和/或目標(biāo)業(yè)務(wù)執(zhí)行邏輯,來配置所建立的業(yè)務(wù)模型的執(zhí)行的方式。
8.根據(jù)權(quán)利要求2或7所述的方法,其特征在于,所述配置建立業(yè)務(wù)模型信息,還包括:在配置好的測試文件中添加事務(wù)模型。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述配置測試文件,還包括: 測試文件中設(shè)定有不同的標(biāo)簽; 對測試文件中不同的標(biāo)簽進(jìn)行配置,定義每個標(biāo)簽中的信息,從而能對不同的信息加以標(biāo)識,以便測試數(shù)據(jù)庫性能時對測試文件的讀取。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,對所述測試文件進(jìn)行讀取,還包括:根據(jù)讀取的測試文件中標(biāo)簽的標(biāo)識,解析出用于測試所述與目標(biāo)業(yè)務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫的性能的指令,模擬所述實際業(yè)務(wù)的流程以執(zhí)行處理。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述模擬所述實際業(yè)務(wù)的流程執(zhí)行處理,還包括: 讀取出的所述業(yè)務(wù)模型中的各個事務(wù)的信息,并使用結(jié)構(gòu)體鏈表保存; 依據(jù)各個事務(wù)的信息,執(zhí)行解析出的指令。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述業(yè)務(wù)模型建立之前,還包括: 對各種數(shù)據(jù)庫進(jìn)行 抽象,對數(shù)據(jù)庫表中字段類型及字段長度進(jìn)行統(tǒng)一。
【文檔編號】G06F11/36GK103810196SQ201210447972
【公開日】2014年5月21日 申請日期:2012年11月9日 優(yōu)先權(quán)日:2012年11月9日
【發(fā)明者】劉謀俊, 樓方鑫 申請人:阿里巴巴集團(tuán)控股有限公司