一種測試管理系統(tǒng)及方法
【專利摘要】本發(fā)明提供一種測試管理系統(tǒng)及方法。所述測試管理系統(tǒng)包括:腳本執(zhí)行控制模塊,用于選擇一個或多個待測試腳本,并控制所選擇腳本的執(zhí)行;腳本執(zhí)行日志顯示模塊,與所述腳本執(zhí)行控制模塊相連,用于在日志顯示界面上實時顯示所執(zhí)行腳本的測試日志信息。本發(fā)明還提供一種測試管理方法,所述測試管理方法包括:選擇一個或多個測試腳本;創(chuàng)建一個子進程,并在所述子進程執(zhí)行所述測試腳本;利用管道獲取所述子進程的輸出信息;將所述輸出信息輸出到日志顯示界面顯示。本發(fā)明的一種測試管理系統(tǒng)及方法,具有以下有益效果:采用管道技術使得腳本執(zhí)行的測試日志信息可以實時的顯示在日志顯示界面,大大方便了測試人員的對測試的跟蹤和管理。
【專利說明】一種測試管理系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及一種測試系統(tǒng),特別是涉及一種測試管理系統(tǒng)及方法。
【背景技術】
[0002]隨著計算機技術的發(fā)展和普及,測試在系統(tǒng)開發(fā)中的重要性也不斷提高,需要測試的內(nèi)容越來越多,這使得測試用例的種類和數(shù)量不斷上升。為了降低測試人員的工作強度,提高測試人員的工作效率,自動化測試也成為一種必然的發(fā)展趨勢。目前,自動化測試通常是通過編寫與測試用例對應的測試腳本來實現(xiàn)的,測試內(nèi)容很多,導致相應的測試腳本數(shù)量也非常繁多。雖然,也出現(xiàn)了對測試腳本的一些管理系統(tǒng),以方便測試人員對眾多的測試腳本進行管理,但現(xiàn)有的測試腳本管理系統(tǒng)僅僅是對測試腳本文件進行管理,并不能實時反饋測試腳本的執(zhí)行日志,不方便測試人員實時跟蹤測試的執(zhí)行情況。
[0003]鑒于此,如何提供一個有效的測試管理系統(tǒng),實現(xiàn)對測試腳本文件以及測試腳本執(zhí)行的可視化管理,成為本領域技術人員亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]鑒于以上所述現(xiàn)有技術的缺點,本發(fā)明的目的在于提供一種測試管理系統(tǒng),用于解決現(xiàn)有技術中不能對測試腳本文件以及測試腳本執(zhí)行的進行可視化管理的問題。
[0005]為實現(xiàn)上述目的及其他相關目的,本發(fā)明提供一種測試管理系統(tǒng),所述測試管理系統(tǒng)包括:腳本執(zhí)行控制模塊,用于選擇一個或多個待測試腳本,并控制所選擇腳本的執(zhí)行;腳本執(zhí)行日志顯示模塊,與所述腳本執(zhí)行控制模塊相連,用于在日志顯示界面上實時顯示所執(zhí)行腳本的測試日志信息。
[0006]可選地,所述在日志顯示界面上實時顯示所執(zhí)行的腳本的測試日志信息的方法包括:創(chuàng)建一個子進程,在所述子進程執(zhí)行所選擇腳本;利用管道獲取所述子進程的輸出信息;將所述輸出信息輸出到所述日志顯示界面顯示。
[0007]可選地,所述子進程的輸出信息為所述子進程的標準輸出信息,將所述子進程的錯誤輸出重定向到所述子進程的標準輸出,以同時獲取所述子進程的錯誤輸出信息。
[0008]可選地,所述管道包括命名管道和匿名管道中的任一種。
[0009]可選地,所述測試管理系統(tǒng)還包括測試套管理模塊,所述測試套管理模塊以測試套為單位進行管理,每個所述測試套包括至少一個測試腳本;所述測試套管理模塊用于顯示所有所述測試套,并在選擇一測試套時,顯示所選擇測試套中的所有測試腳本;所述腳本執(zhí)行控制模塊與所述測試套管理模塊相連,將所有所述測試套中的所述測試腳本作為待測試腳本。
[0010]可選地,所選擇腳本包括屬于多個測試套的測試腳本。
[0011]可選地,所述測試套管理模塊還用于對所述測試套的添加或/和刪除。
[0012]可選地,所述測試套管理模塊還用于實現(xiàn)對所述測試套中的所述測試腳本的內(nèi)容進行編輯修改。
[0013]可選地,所述測試套管理模塊還用于實現(xiàn)對所述測試套中的所述測試腳本進行添加或/和刪除。
[0014]可選地,所述測試管理系統(tǒng)采用TCL/TK語言實現(xiàn)。
[0015]本發(fā)明還提供一種測試管理方法,所述測試管理方法包括:選擇一個或多個測試腳本;創(chuàng)建一個子進程,并在所述子進程執(zhí)行所述測試腳本;利用管道獲取所述子進程的輸出信息;將所述輸出信息輸出到日志顯示界面顯示。
[0016]可選地,所述測試管理方法還包括:采用測試套為單位對所述測試腳本進行管理,所述測試套包括一個或多個所述測試腳本。
[0017]如上所述,本發(fā)明的一種測試管理系統(tǒng)及方法,具有以下有益效果:采用管道技術使得腳本執(zhí)行的測試日志信息可以實時的顯示在日志顯示界面,大大方便了測試人員的對測試的跟蹤,采用了圖形化的界面測試套管理方式,將測試環(huán)境等條件相同的測試腳本歸入到同一個測試套中,并提供對測試腳本的修改,簡化了測試人員對測試腳本的管理,更方便測試人員根據(jù)需要選擇或調(diào)整測試腳本進行測試。
【專利附圖】
【附圖說明】
[0018]圖1顯示為本發(fā)明的一種測試管理系統(tǒng)的一實施例的模塊結構示意圖。
[0019]圖2顯示為本發(fā)明的一種測試管理系統(tǒng)的一實施例的界面示意圖。
[0020]圖3顯示為本發(fā)明的一種測試管理方法的一實施例的流程示意圖。
[0021]圖4顯示為本發(fā)明的一種測試管理方法的一實施例的流程示意圖。
[0022]元件標號說明
[0023]I測試管理系統(tǒng)
[0024]11測試套管理模塊
[0025]12腳本執(zhí)行控制模塊
[0026]13腳本執(zhí)行日志顯示模塊
[0027]SI ?S4 步驟
【具體實施方式】
[0028]以下通過特定的具體實例說明本發(fā)明的實施方式,本領域技術人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。
[0029]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構想,遂圖式中僅顯示與本發(fā)明中有關的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。
[0030]本發(fā)明提供一種測試管理系統(tǒng)。在一個實施例中,如圖1所示,所述測試管理系統(tǒng)I包括:腳本執(zhí)行控制模塊12和腳本執(zhí)行日志顯示模塊13。其中:
[0031]腳本執(zhí)行控制模塊12,用于選擇一個或多個待測試腳本,并控制所選擇腳本的執(zhí)行。具體地,腳本執(zhí)行控制模塊12首先根據(jù)測試要求選擇一個或者多個待測試腳本,并控制所選擇的一個或多個待測試腳本執(zhí)行。
[0032]腳本執(zhí)行日志顯示模塊13,與所述腳本執(zhí)行控制模塊相連,用于在日志顯示界面上實時顯示所執(zhí)行腳本的測試日志信息。具體地,所述在日志顯示界面上實時顯示所執(zhí)行的腳本的測試日志信息的方法包括:創(chuàng)建一個子進程,在所述子進程執(zhí)行所選擇腳本;利用管道獲取所述子進程的輸出信息;將所述輸出信息輸出到所述日志顯示界面顯示。在一個實施例中,所述子進程的輸出信息為所述子進程的標準輸出信息,將所述子進程的錯誤輸出重定向到所述子進程的標準輸出,以同時獲取所述子進程的錯誤輸出信息,這通常是通過修改相應的腳本語言代碼實現(xiàn)的。所述管道可以為命名管道,所述管道也可以為匿名管道,通常,采用匿名管道的效率會高一些。匿名管道主要用于本地父進程和子進程之間的通信。在父進程中創(chuàng)建一個匿名管道并且設置成可讀寫,在創(chuàng)建成功后,父進程和子進程均可以對匿名通道進行讀寫操作。
[0033]在一個實施例中,本測試管理系統(tǒng)I上的控制包括通過點擊相應的執(zhí)行按鈕來實現(xiàn)的;或者上述控制可以是通過選擇相應的菜單命令來實現(xiàn),或者通過在測試選擇界面右鍵選擇相應的功能條實現(xiàn)。
[0034]在一個實施例中,所述測試管理系統(tǒng)I不僅包括還包括腳本執(zhí)行控制模塊12和腳本執(zhí)行日志顯示模塊13,還包括測試套管理模塊11。所述測試套管理模塊11以測試套為單位進行管理,每個所述測試套包括至少一個測試腳本;所述測試套管理模塊11用于顯示所有所述測試套,并在選擇一測試套時,顯示所選擇測試套中的所有測試腳本;所述腳本執(zhí)行控制模塊12與所述測試套管理模塊11相連,將所有所述測試套中的所述測試腳本作為待測試腳本。進一步地,這些測試套在測試套管理模塊11中顯示,當某一個測試套被選擇時,將顯示該測試套中的所有測試腳本供進一步腳本執(zhí)行控制模塊12對該測試套中的測試腳本進行選擇。在一個實施例中,所述腳本執(zhí)行控制模塊12所選擇的待測試腳本為一個測試套中的一個或多個測試腳本。在一個實施例中,所述腳本執(zhí)行控制模塊12所選擇的待測試腳本為多個測試套中的一個或多個測試腳本。
[0035]在一個實施例中,所述測試套管理模塊11還用于對所述測試套的添加或/和刪除。在一個實施例中,所述測試套管理模塊11還用于實現(xiàn)對所述測試套中的所述測試腳本的內(nèi)容進行編輯修改。當選中某個測試腳本進行編輯時,所述測試套管理模塊11將彈出一個編輯界面對該測試腳本進行編輯修改,并提供保存功能。在一個實施例中,所述測試套管理模塊11還用于實現(xiàn)對所述測試套中的所述測試腳本進行添加或/和刪除,即對測試套中所包含的測試腳本進行添加或/和刪除。
[0036]在一個實施例中,所述測試管理系統(tǒng)采用TCL/TK語言實現(xiàn)。其中,可以將所述子進程的錯誤輸出重定向到所述子進程的標準輸出,以同時獲取所述子進程的錯誤輸出信息,這也是通過修改TCL/TK腳本語言代碼實現(xiàn)的。
[0037]在一個實施例中,如圖2所示,所述測試管理系統(tǒng)的界面由六部分組成。其中,測試套目錄界面以及測試套管理區(qū)域界面屬于測試套管理模塊11,腳本執(zhí)行控制界面屬于腳本執(zhí)行控制模塊12,日志輸出區(qū)域界面屬于腳本執(zhí)行日志顯示模塊13,即腳本執(zhí)行日志顯示模塊13的日志顯示界面。菜單欄是對測試管理系統(tǒng)功能操作的匯總,以更方便于用戶使用。
[0038]1.菜單欄:提供程序的基本操作,例如測試套(由多個腳本組成)的添加、腳本的運行和程序的退出等;所述操作也可以在操作相應的部分通過右鍵點擊顯示的菜單中選擇。
[0039]2.測試套目錄界面:顯示當前選中測試套的目錄,提供添加測試套的功能。所述功能操作可以通過右鍵點擊顯示的菜單中選擇,也可以通過在菜單欄中選擇相應的功能操作。
[0040]3.腳本執(zhí)行控制界面:提供腳本批量執(zhí)行的選擇以及腳本的執(zhí)行。所述功能操作可以通過右鍵點擊顯示的菜單中選擇,也可以通過在菜單欄中選擇相應的功能操作。
[0041]4.測試套管理區(qū)域界面:羅列添加的測試套,并提供測試套的單選、多選、全選等功能。所述功能操作可以通過右鍵點擊顯示的菜單中選擇,也可以通過在菜單欄中選擇相應的功能操作。被選中的測試套中所有的腳本將在腳本顯示區(qū)域中顯示。
[0042]5.腳本顯示區(qū)域界面:羅列被選中的測試套下所有的測試腳本,并提供腳本內(nèi)容的查看以及編輯和保存功能。所述功能操作可以通過右鍵點擊顯示的菜單中選擇,也可以通過在菜單欄中選擇相應的功能操作。當選中測試腳本進行編輯時,將彈出相應的編輯界面供用戶對所選中的測試腳本進行編輯,并提供保存功能。
[0043]6.日志輸出區(qū)域界面:提供腳本執(zhí)行時日志的實時輸出。用戶可以通過此界面實時的觀察到測試腳本的運行信息。
[0044]本發(fā)明還提供一種測試管理方法。該測試管理方法主要通過管道和多線程技術來實現(xiàn)了腳本執(zhí)行和日志實時輸出的功能。在一個實施例中,如圖3所示,所述測試管理方法包括以下步驟:
[0045]步驟SI,選擇一個或多個測試腳本。在一個實施例中,測試人員可以根據(jù)測試的實際要求選擇要測試的測試腳本。
[0046]步驟S2,創(chuàng)建一個子進程,并在所述子進程執(zhí)行所述測試腳本。具體地,主進程創(chuàng)建一個用于運行測試腳本的子進程,所述子進程通常為打開的該測試腳本的腳本語言對應的命令解析器的一個實例;并將所述測試腳本的絕對路徑以及運行命令發(fā)送給所述子進程,所述子進程根據(jù)命令執(zhí)行所述測試腳本。
[0047]步驟S3,利用管道獲取所述子進程的輸出信息。在一個實施例中,父進程利用管道獲取所述子進程的輸出信息,既可以使用簡單的匿名管道來獲取所述子進程的輸出信息,也可以使用命名管道來獲取所述子進程的輸出信息。所述子進程的輸出信息為標準輸出信息,S卩(StdOUt)輸出的信息。在一個實施例中,可以通過修改代碼將所述子進程的錯誤輸出(Stderr)信息重定向到標準輸出(stdout)中,這樣,所述子進程的錯誤輸出信息也將在所述子進程的標準輸出中輸出,即所述標準輸出信息包括原有的標準輸出信息,也包括錯誤輸出信息。
[0048]步驟S4,將所述輸出信息輸出到日志顯示界面顯示。具體地,主進程將所獲取到的所述子進程的輸出信息,可以包括標準輸出信息和錯誤輸出信息,輸出到日志顯示界面中顯不O
[0049]在一個實施例中,所述測試管理方法還包括以下步驟:采用測試套為單位對所述測試腳本進行管理,所述測試套包括一個或多個所述測試腳本。具體地,當某一個測試套被選擇時,將顯示該測試套中的所有測試腳本供進一步對該測試套中的測試腳本進行選擇。采用測試套管理的方法可以將相同運行環(huán)境需求的測試用例整合在一起,以更方便于測試人員的管理。
[0050]在一個實施例中,如圖4所示,所述測試管理方法中,在主進程中通過“open”命令創(chuàng)建匿名管道、子進程以及多線程(多線程用于讀寫子進程的輸入輸出),取得子進程的句柄“tclshfd”。
[0051]主進程和子進程通過匿名管道進行通訊,具體過程如下:命令putstclshfd “source+腳本絕對路徑”,表示通過匿名管道向子進程發(fā)送“source+腳本絕對路徑”的字符串,當子進程收到該字符串之后,就會調(diào)用source命令去執(zhí)行該自動化腳本;通過在主進程中設計readbuf過程來獲取匿名管道里面的數(shù)據(jù)并做相應處理,而readbuf中又調(diào)用putslog過程將腳本執(zhí)行過程中產(chǎn)生的日志輸出到主界面的日志區(qū)域。
[0052]所述測試管理方法中也可以針對如Python,Ruby等其他腳本語言編寫的腳本進行管理和執(zhí)行。所述測試管理方法會對測試腳本的腳本語言進行判斷,比如,根據(jù)腳本語言的后綴判定所述測試腳本采用的腳本語言。當執(zhí)行其他腳本語言編寫的腳本時,所述測試管理方法會對該在創(chuàng)建子進程時,打開的該測試腳本的腳本語言對應的命令解析器的一個實例。例如,對于采用Python語言編寫的腳本,所述測試管理方法將通過“open | python-1r+”創(chuàng)建的子進程運行相應的測試腳本,實現(xiàn)對python語言編寫的自動化腳本的執(zhí)行。
[0053]綜上所述,本發(fā)明的一種測試管理系統(tǒng)及方法,具有以下有益效果:采用管道技術使得腳本執(zhí)行的測試日志信息可以實時的顯示在日志顯示界面,大大方便了測試人員的對測試的跟蹤,采用了圖形化的界面測試套管理方式,將測試環(huán)境等條件相同的測試腳本歸入到同一個測試套中,并提供對測試腳本的修改,簡化了測試人員對測試腳本的管理,更方便測試人員根據(jù)需要選擇或調(diào)整測試腳本進行測試。所以,本發(fā)明有效克服了現(xiàn)有技術中的種種缺點而具高度產(chǎn)業(yè)利用價值。
[0054]上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬【技術領域】中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發(fā)明的權利要求所涵蓋。
【權利要求】
1.一種測試管理系統(tǒng),其特征在于,所述測試管理系統(tǒng)包括: 腳本執(zhí)行控制模塊,用于選擇一個或多個待測試腳本,并控制所選擇腳本的執(zhí)行; 腳本執(zhí)行日志顯示模塊,與所述腳本執(zhí)行控制模塊相連,用于在日志顯示界面上實時顯示所執(zhí)行腳本的測試日志信息。
2.根據(jù)權利要求1所述的測試管理系統(tǒng),其特征在于:所述在日志顯示界面上實時顯示所執(zhí)行的腳本的測試日志信息的方法包括:創(chuàng)建一個子進程,在所述子進程執(zhí)行所選擇腳本;利用管道獲取所述子進程的輸出信息;將所述輸出信息輸出到所述日志顯示界面顯/Jn ο
3.根據(jù)權利要求2所述的測試管理系統(tǒng),其特征在于:所述子進程的輸出信息為所述子進程的標準輸出信息,將所述子進程的錯誤輸出重定向到所述子進程的標準輸出,以同時獲取所述子進程的錯誤輸出信息。
4.根據(jù)權利要求2所述的測試管理系統(tǒng),其特征在于:所述管道包括命名管道和匿名管道中的任一種。
5.根據(jù)權利要求1所述的測試管理系統(tǒng),其特征在于:所述測試管理系統(tǒng)還包括測試套管理模塊,所述測試套管理模塊以測試套為單位進行管理,每個所述測試套包括至少一個測試腳本;所述測試套管理模塊用于顯示所有所述測試套,并在選擇一測試套時,顯示所選擇測試套中的所有測試腳本;所述腳本執(zhí)行控制模塊與所述測試套管理模塊相連,將所有所述測試套中的所述測試腳本作為待測試腳本。
6.根據(jù)權利要求5所述的測試管理系統(tǒng),其特征在于:所選擇腳本包括屬于多個測試套的測試腳本。
7.根據(jù)權利要求5所述的測試管理系統(tǒng),其特征在于:所述測試套管理模塊還用于對所述測試套的添加或/和刪除。
8.根據(jù)權利要求5所述的測試管理系統(tǒng),其特征在于:所述測試套管理模塊還用于實現(xiàn)對所述測試套中的所述測試腳本的內(nèi)容進行編輯修改。
9.根據(jù)權利要求5所述的測試管理系統(tǒng),其特征在于:所述測試套管理模塊還用于實現(xiàn)對所述測試套中的所述測試腳本進行添加或/和刪除。
10.根據(jù)權利要求1所述的測試管理系統(tǒng),其特征在于:所述測試管理系統(tǒng)采用TCL/TK語言實現(xiàn)。
11.一種測試管理方法,其特征在于:所述測試管理方法包括: 選擇一個或多個測試腳本; 創(chuàng)建一個子進程,并在所述子進程執(zhí)行所述測試腳本; 利用管道獲取所述子進程的輸出信息; 將所述輸出信息輸出到日志顯示界面顯示。
12.根據(jù)權利要求11所述的一種測試管理方法,其特征在于:采用測試套為單位對所述測試腳本進行管理,所述測試套包括一個或多個所述測試腳本。
【文檔編號】G06F11/34GK104331358SQ201410603683
【公開日】2015年2月4日 申請日期:2014年10月30日 優(yōu)先權日:2014年10月30日
【發(fā)明者】薛雪, 谷穎 申請人:上海斐訊數(shù)據(jù)通信技術有限公司