專利名稱:自動化測試日志處理系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及日志存儲領域,尤其涉及一種自動化測試日志處理系統(tǒng)。
背景技術(shù):
在自動化測試執(zhí)行過程中,測試系統(tǒng)會把運行日志信息存儲在計算機或服務器的存儲空間中。在測試執(zhí)行結(jié)束后,測試人員經(jīng)常需要對測試日志進行分析,來定位測試用例的出錯原因。
目前多數(shù)自動化測試系統(tǒng)的日志信息都是以純文本的格式存儲,而生成日志文件的方法通常有兩種。
第一種,測試用例庫中的每個測試用例都對應生成一個日志文件。這樣,執(zhí)行完一個測試用例庫后,生成很多日志文件分散存儲在用戶指定的存儲空間內(nèi)。該方法處理速度快,實現(xiàn)起來也比較簡單。但是在自動化測試案例比較多的情況下,生成的日志文件多且分散,往往需要對照測試用例庫來尋找相應日志文件。
第二種,一次執(zhí)行的測試用例庫對應生成一個日志文件。這樣,一次執(zhí)行的測試用例庫的所有日志信息都存儲在一個日志文件內(nèi)。該方法處理簡便,占存儲空間小。但是由于各個測試用例的日志信息可能長短、格式各異,在冗長的日志信息中搜尋各個測試用例日志的分段比較困難。另外,測試人員在統(tǒng)計測試結(jié)果時,往往比較關(guān)心一些關(guān)鍵信息。如果在打印日志時,沒有給這些關(guān)鍵信息做標記,就只能在大堆的日志信息中來回搜索,不利于日志信息的分析統(tǒng)計。
以上介紹的日志存儲和瀏覽方法雖然簡單快速,但是浪費了測試人員大量的時間和精力,將自動化測試的高效特性大打折扣。
發(fā)明內(nèi)容
鑒于以上所述的一個或多個問題,本發(fā)明提出了一種自動化測試日志處理系統(tǒng),以方便測試人員點擊察看相應的日志信息以及進行分析統(tǒng)計。
根據(jù)本發(fā)明的自動化測試日志處理系統(tǒng)包括測試用例執(zhí)行模塊,用于執(zhí)行用戶指定的測試用例庫,向日志存儲模塊發(fā)送對應于測試用例庫中的測試用例的日志數(shù)據(jù)和日志存儲控制消息;日志存儲模塊,用于根據(jù)日志存儲控制消息對日志數(shù)據(jù)進行處理,生成特定格式的日志信息,并將日志信息存儲到日志數(shù)據(jù)庫中;日志數(shù)據(jù)庫,用于存儲日志信息;以及日志瀏覽模塊,用于從日志數(shù)據(jù)庫讀取日志信息,并根據(jù)日志信息生成日志結(jié)構(gòu)視圖。其中,日志存儲控制消息包括測試用例層次結(jié)構(gòu)信息和日志標記。
日志存儲模塊包括數(shù)據(jù)處理模塊,用于根據(jù)測試用例層次結(jié)構(gòu)信息將日志數(shù)據(jù)處理為與測試用例庫中的測試用例對應的層次結(jié)構(gòu);以及標記插入模塊,用于將日志標記插入日志數(shù)據(jù)中,以生成日志信息。
日志瀏覽模塊包括日志讀取模塊,用于從日志數(shù)據(jù)庫讀取日志信息;視圖構(gòu)建模塊,用于對日志信息進行分析,以獲取對應于日志信息的日志層次結(jié)構(gòu)信息和日志標記,并根據(jù)日志層次結(jié)構(gòu)信息和/或日志標記生成日志結(jié)構(gòu)視圖。
日志瀏覽模塊還包括節(jié)點遍歷模塊,用于遍歷日志結(jié)構(gòu)視圖的所有層次節(jié)點,讀取層次節(jié)點處的日志數(shù)據(jù),并根據(jù)層次節(jié)點處的日志數(shù)據(jù)生成日志顯示視圖;以及映射建立模塊,用于建立日志結(jié)構(gòu)視圖和日志顯示視圖之間的映射關(guān)系。其中,映射建立模塊通過計算層次節(jié)點在純?nèi)罩緮?shù)據(jù)中的偏移量來建立日志結(jié)構(gòu)視圖和日志顯示視圖之間的映射關(guān)系。
自動化測試日志處理系統(tǒng)還包括條件設置模塊,用于接收用戶設置的瀏覽條件,并將瀏覽條件發(fā)送給日志瀏覽模塊,以獲取符合瀏覽條件的日志數(shù)據(jù)。
瀏覽條件是測試用例庫中的測試用例的特征值和/或標記插入模塊插入的日志標記。測試用例執(zhí)行模塊實時地向日志存儲模塊發(fā)送對應于測試用例庫中的測試用例的日志數(shù)據(jù)和日志存儲控制消息。層次節(jié)點是日志層次結(jié)構(gòu)或日志標記。
通過根據(jù)本發(fā)明的自動化測試日志處理系統(tǒng),存儲生成具有與測試用例對應層次關(guān)系的日志文件,并提供日志瀏覽模塊,方便測試人員點擊察看相應的日志信息。另外還提供日志的過濾顯示,方便測試人員進行分析統(tǒng)計。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)本發(fā)明實施例的自動化測試日志處理系統(tǒng)的框圖;圖2是根據(jù)本發(fā)明實施例的日志存儲的流程圖;以及圖3是根據(jù)本發(fā)明實施例的日志瀏覽模塊的流程圖。
具體實施例方式
下面參考附圖,詳細說明本發(fā)明的具體實施方式
。
圖1是根據(jù)本發(fā)明實施例的自動化測試日志處理系統(tǒng)的框圖。如圖1所示,該系統(tǒng)包括四個模塊測試用例執(zhí)行模塊102,用于運行用戶指定的測試用例庫,并在運行的過程中,實時向日志存儲模塊發(fā)送日志數(shù)據(jù)以及日志存儲控制消息。其中,日志存儲控制消息包括測試用例層次結(jié)構(gòu)信息和用戶插入的日志標記。。
日志存儲模塊104,用于接收和存儲測試用例執(zhí)行模塊傳送過來的日志數(shù)據(jù),同時對接收到的日志存儲控制消息作出響應,將響應消息回送測試用例執(zhí)行模塊。日志存儲模塊將根據(jù)日志存儲控制消息中的測試用例層次結(jié)構(gòu)信息生成和測試用例對應的層次結(jié)構(gòu),并在接收到的日志數(shù)據(jù)中插入日志標記。在測試用例執(zhí)行模塊執(zhí)行完測試用例庫中的一個測試用例后,向日志存儲模塊發(fā)送用例結(jié)束消息。日志存儲模塊將暫存在其緩沖區(qū)中的特殊格式的日志數(shù)據(jù)存入日志數(shù)據(jù)庫。當測試用例執(zhí)行模塊運行完整個測試用例庫后,向日志存儲模塊發(fā)送測試結(jié)束消息。此時,日志存儲模塊將完成整個日志文件的存儲,關(guān)閉日志數(shù)據(jù)庫。
日志數(shù)據(jù)庫106,用于接收測試存儲模塊傳送過來的特殊格式的日志信息。日志數(shù)據(jù)庫中的測試用例日志信息具有與測試用例同步的層次結(jié)構(gòu),并在此層次結(jié)構(gòu)的基礎上插入了用戶定義的標記信息。
日志瀏覽模塊108,用于從日志數(shù)據(jù)庫讀取日志信息,分析日志層次結(jié)構(gòu)和標記,然后根據(jù)日志層次結(jié)構(gòu)和標記構(gòu)建日志結(jié)構(gòu)視圖。其中,每個日志層次結(jié)構(gòu)或標記都將作為日志結(jié)構(gòu)視圖中的一個層次節(jié)點。然后,按順序遍歷日志結(jié)構(gòu)中的所有層次節(jié)點,一一讀取各層次節(jié)點的日志數(shù)據(jù),將這些日志數(shù)據(jù)依次加入到日志顯示視圖。在遍歷的過程中,計算并記錄每個層次節(jié)點在純?nèi)罩緮?shù)據(jù)中的偏移量。這樣,就建立了日志結(jié)構(gòu)視圖中各層次節(jié)點和日志顯示視圖中日志數(shù)據(jù)的映射關(guān)系。
其中,日志存儲模塊可以包括數(shù)據(jù)處理模塊,用于根據(jù)測試用例層次結(jié)構(gòu)信息將日志數(shù)據(jù)處理為與測試用例庫中的測試用例對應的層次結(jié)構(gòu);以及標記插入模塊,用于將日志標記插入日志數(shù)據(jù)中,以生成日志信息。
日志瀏覽模塊可以包括日志讀取模塊,用于從日志數(shù)據(jù)庫讀取日志信息;視圖構(gòu)建模塊,用于對日志信息進行分析,以獲取對應于日志信息的日志層次結(jié)構(gòu)信息和日志標記,并根據(jù)日志層次結(jié)構(gòu)信息和/或日志標記生成日志結(jié)構(gòu)視圖;節(jié)點遍歷模塊,用于遍歷日志結(jié)構(gòu)視圖的所有層次節(jié)點,讀取層次節(jié)點處的日志數(shù)據(jù),并根據(jù)層次節(jié)點處的日志數(shù)據(jù)生成日志顯示視圖;以及映射建立模塊,用于建立日志結(jié)構(gòu)視圖和日志顯示視圖之間的映射關(guān)系。其中,映射建立模塊通過計算層次節(jié)點在純?nèi)罩緮?shù)據(jù)中的偏移量來建立日志結(jié)構(gòu)視圖和日志顯示視圖之間的映射關(guān)系。
根據(jù)本發(fā)明實施例的自動化測試日志處理系統(tǒng)還可以包括條件設置模塊,用于接收用戶設置的瀏覽條件,并將瀏覽條件發(fā)送給日志瀏覽模塊,以獲取符合瀏覽條件的日志數(shù)據(jù)。這些瀏覽條件可以是測試用例自身的特征值也可以是在測試用例執(zhí)行模塊插入的日志標記。這樣就可以只顯示符合瀏覽條件的測試用例日志信息,還可以得到具體的過濾結(jié)果統(tǒng)計數(shù)據(jù),方便用戶對日志信息的分析統(tǒng)計。
圖2是根據(jù)本發(fā)明實施例的日志存儲流程圖。如圖2所示,在該日志存儲過程中,測試用例執(zhí)行模塊開始執(zhí)行測試用例庫(S202),發(fā)送開始消息給日志存儲模塊(S204)。此時日志存儲模塊進入等待執(zhí)行狀態(tài)(S206)。測試用例執(zhí)行模塊讀取測試用例信息(S208),將測試用例信息提取出的用例層次結(jié)構(gòu)消息發(fā)送給日志存儲模塊(S210)。收到這些消息后,日志存儲模塊創(chuàng)建與測試用例相同的層次結(jié)構(gòu)(S212)。測試用例執(zhí)行模塊開始執(zhí)行測試用例(S214),同時將日志數(shù)據(jù)以及日志標記傳送給日志存儲模塊(S216)。日志存儲模塊對日志進行格式標記,并存放到臨時緩沖區(qū)(S218)。當一個測試用例運行結(jié)束時(S220),測試用例執(zhí)行模塊發(fā)送用例結(jié)束消息給日志存儲模塊(S222)。日志存儲模塊接收到用例結(jié)束消息后,把緩沖區(qū)中的標記日志寫入對應的層次節(jié)點中去(S224)。接著,測試用例執(zhí)行模塊判斷是否還有其他測試用例需要運行(S226),如果“是”,返回并重復以上過程,如果“否”,則測試結(jié)束(S228),向日志存儲模塊發(fā)送測試結(jié)束消息(S230)。日志存儲模塊接收到測試結(jié)束消息后,完成日志文件存儲,并關(guān)閉日志數(shù)據(jù)庫(S232)。
圖3是根據(jù)本發(fā)明實施例的日志瀏覽流程圖。如圖3所示,在該日志瀏覽過程中,日志瀏覽模塊首先讀入在日志存儲過程完成的日志文件(S302),分析日志層次結(jié)構(gòu)和日志標記(S304),根據(jù)日志層次和標記構(gòu)建日志結(jié)構(gòu)視圖(S306),其中每個日志層次結(jié)構(gòu)或標記都將作為日志結(jié)構(gòu)視圖中的一個層次節(jié)點。然后按順序遍歷日志結(jié)構(gòu)中的所有層次節(jié)點,一方面,提取每個層次節(jié)點下的日志數(shù)據(jù)(S308)。將這些日志數(shù)據(jù)順序加入到日志顯示視圖(S310)。另一方面,計算日志結(jié)構(gòu)視圖中每個層次節(jié)點在純?nèi)罩緮?shù)據(jù)中的偏移量(S312)。經(jīng)過上面的流程后,我們獲得了日志結(jié)構(gòu)視圖和日志顯示視圖。另外還已知了層次節(jié)點在純?nèi)罩緮?shù)據(jù)中的偏移量,即已知了日志結(jié)構(gòu)視圖中各層次節(jié)點和日志顯示視圖中日志數(shù)據(jù)的映射關(guān)系。此時點擊日志結(jié)構(gòu)視圖中的任意層次節(jié)點,在日志顯示視圖中將顯示對應的日志數(shù)據(jù)。
綜上所述,本發(fā)明克服了傳統(tǒng)日志處理方法在存儲和分析上的不足,將自動化測試案例的層次關(guān)系映射到日志文件中,使得日志內(nèi)容能夠按照特定的層次關(guān)系進行組織。另外,本發(fā)明在日志文件中插入了相關(guān)標記,以用來標識測試用例的步驟,例如在初始化配置、運行關(guān)鍵步驟、和去除配置等地方插入標記,也可在測試人員關(guān)心的其它位置插入標記。這樣,在瀏覽日志內(nèi)容的時候,可以通過層次關(guān)系和標記快速定位測試用例的關(guān)鍵內(nèi)容。在此基礎上,本發(fā)明還提供了相應的日志瀏覽模塊,達到了根據(jù)層次和標記來瀏覽的效果。
以上所述僅為本發(fā)明的實施例而已,并不用于限制本發(fā)明,對于本領域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
權(quán)利要求
1.一種自動化測試日志處理系統(tǒng),其特征在于,包括測試用例執(zhí)行模塊,用于執(zhí)行用戶指定的測試用例庫,向日志存儲模塊發(fā)送對應于所述測試用例庫中的測試用例的日志數(shù)據(jù)和日志存儲控制消息;所述日志存儲模塊,用于根據(jù)所述日志存儲控制消息對所述日志數(shù)據(jù)進行處理,生成特定格式的日志信息,并將所述日志信息存儲到日志數(shù)據(jù)庫中;所述日志數(shù)據(jù)庫,用于存儲所述日志信息;以及日志瀏覽模塊,用于從所述日志數(shù)據(jù)庫讀取所述日志信息,并根據(jù)所述日志信息生成日志結(jié)構(gòu)視圖。
2.根據(jù)權(quán)利要求1所述的自動化測試日志處理系統(tǒng),其特征在于,所述日志存儲控制消息包括測試用例層次結(jié)構(gòu)信息和日志標記。
3.根據(jù)權(quán)利要求2所述的自動化測試日志處理系統(tǒng),其特征在于,所述日志存儲模塊包括數(shù)據(jù)處理模塊,用于根據(jù)所述測試用例層次結(jié)構(gòu)信息將所述日志數(shù)據(jù)處理為與所述測試用例庫中的測試用例對應的層次結(jié)構(gòu);以及標記插入模塊,用于將所述日志標記插入所述日志數(shù)據(jù)中,以生成所述日志信息。
4.根據(jù)權(quán)利要求3所述的自動化測試日志處理系統(tǒng),其特征在于,所述日志瀏覽模塊包括日志讀取模塊,用于從所述日志數(shù)據(jù)庫讀取所述日志信息;視圖構(gòu)建模塊,用于對所述日志信息進行分析,以獲取對應于所述日志信息的所述日志層次結(jié)構(gòu)信息和所述日志標記,并根據(jù)所述日志層次結(jié)構(gòu)信息和/或所述日志標記生成所述日志結(jié)構(gòu)視圖。
5.根據(jù)權(quán)利要求4所述的自動化測試日志處理系統(tǒng),其特征在于,所述日志瀏覽模塊還包括節(jié)點遍歷模塊,用于遍歷所述日志結(jié)構(gòu)視圖的所有層次節(jié)點,讀取所述層次節(jié)點處的日志數(shù)據(jù),并根據(jù)所述層次節(jié)點處的日志數(shù)據(jù)生成日志顯示視圖;以及映射建立模塊,用于建立所述日志結(jié)構(gòu)視圖和所述日志顯示視圖之間的映射關(guān)系。
6.根據(jù)權(quán)利要求5所述的自動化測試日志處理系統(tǒng),其特征在于,所述映射建立模塊通過計算所述層次節(jié)點在純?nèi)罩緮?shù)據(jù)中的偏移量來建立所述日志結(jié)構(gòu)視圖和所述日志顯示視圖之間的映射關(guān)系。
7.根據(jù)上述權(quán)利要求中的任一項所述的自動化測試日志處理系統(tǒng),其特征在于,還包括條件設置模塊,用于接收用戶設置的瀏覽條件,并將所述瀏覽條件發(fā)送給所述日志瀏覽模塊,以獲取符合所述瀏覽條件的日志數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的自動化測試日志處理系統(tǒng),其特征在于,所述瀏覽條件是所述測試用例庫中的測試用例的特征值和/或所述標記插入模塊插入的所述日志標記。
9.根據(jù)權(quán)利要求8所述的自動化測試日志處理系統(tǒng),其特征在于,所述測試用例執(zhí)行模塊實時地向所述日志存儲模塊發(fā)送對應于所述測試用例庫中的測試用例的日志數(shù)據(jù)和日志存儲控制消息。
10.根據(jù)權(quán)利要求9所述的自動化測試日志處理系統(tǒng),其特征在于,所述層次節(jié)點是所述日志層次結(jié)構(gòu)或所述日志標記。
全文摘要
本發(fā)明提出了一種自動化測試日志處理系統(tǒng),包括測試用例執(zhí)行模塊,用于執(zhí)行用戶指定的測試用例庫,向日志存儲模塊發(fā)送對應于測試用例庫中的測試用例的日志數(shù)據(jù)和日志存儲控制消息;日志存儲模塊,用于根據(jù)日志存儲控制消息對日志數(shù)據(jù)進行處理,生成特定格式的日志信息,并將日志信息存儲到日志數(shù)據(jù)庫中;日志數(shù)據(jù)庫,用于存儲日志信息;以及日志瀏覽模塊,用于從日志數(shù)據(jù)庫讀取日志信息,并根據(jù)日志信息生成日志結(jié)構(gòu)視圖。通過根據(jù)本發(fā)明的自動化測試日志處理系統(tǒng),存儲生成具有與測試用例對應層次關(guān)系的日志文件,并提供日志瀏覽模塊,方便測試人員點擊察看相應的日志信息。另外還提供日志的過濾顯示,方便測試人員進行分析統(tǒng)計。
文檔編號G06F17/30GK101093514SQ20071014204
公開日2007年12月26日 申請日期2007年8月20日 優(yōu)先權(quán)日2007年8月20日
發(fā)明者楊奎, 劉鳳萍, 沙金剛, 樊志強 申請人:中興通訊股份有限公司