根據預置規則自動生成測試用例的測試模板及測試方法
【技術領域】
[0001] 本發明涉及數據庫領域,具體是根據預置規則自動生成測試用例的測試模板及測 試方法。
【背景技術】
[0002] 在測試實施過程中,手工編寫測試用例需要占用大量的人力成本,而且同一功能 的測試用例,在執行步驟、測試前提、預期檢查上會有不同程度的相似的地方,這些重復性 的工作是必須的但是又非常占用測試時間,而且每一個測試人員編寫的測試用例格式和風 格都不盡相同,所以如果能夠統一風格并且能夠通過簡單的組織自動生成文本測試用例, 則可以大大減輕測試工作量,并且還能使文檔內容統一詳細完整。
[0003] 在所有測試過程中,異常測試是不可避免的,但是異常測試的觸發點、測試因素很 多,很難人工窮舉所有可能出現的情況,所以需要一種可預置規則自動生成用例的工具,以 加速測試過程并提高測試覆蓋率。
【發明內容】
[0004] 本發明的目的在于提供根據預置規則自動生成測試用例的測試模板及測試方法, 它通過可執行的、自描述的、可選參數的過程,自動組合形成測試用例,可以大大縮短測試 時間,減少測試人力需求。
[0005] 本發明為實現上述目的,通過以下技術方案實現:
[0006] 根據預置規則自動生成測試用例的測試模板,包括參數定義區和執行步驟定義 區,所述參數定義區的參數能夠任意定義,所述執行步驟定義區指定步驟里調用的測試腳 本,所述測試腳本包括descript ion函數、detail函數和process函數,所述descript ion函 數里實現輸出該步驟的概要信息,所述detail函數實現該步驟執行的具體測試步驟,所述 process函數實現該步驟需要執行的測試過程。
[0007] 所述測試模板使用yaml格式,所述參數定義區的參數以"參數名:參數值"的形式 指定參數,所述參數值為一個或多個,多個參數值之間使用逗號分隔,所述參數包括必定參 數和可選參數,所述必定參數為按規則書寫的參數,所述可選參數為自由設定的參數。所述 執行步驟定義區以"步驟名稱:對應腳本"的形式指定調用的測試腳本,所述步驟名稱包括: on_global_setup、on_setup、on_process、on_detect、on_exception、on_check、on_fail、 on_success和on_teardown〇
[0008] 使用根據預置規則自動生成測試用例的測試模板的測試方法,包括以下步驟:
[0009] 1)設置參數,指定自動生成文本測試用例;
[0010] 2)讀取參數,自動生成可執行測試用例集;
[0011] 3)解析生成的可執行測試用例集,自動執行測試用例;
[0012] 4)指定具體的測試用例,自動匹配正則表達式,執行測試用例;
[0013] 5)執行測試用例過程中,如果異常中斷執行,下一次執行時繼續執行上一次未執 行完成的用例;
[0014] 6)執行完成測試用例后,自動生成測試報告。
[0015] 本發明中,description、detail和process分別用于概要描述、操作流程描述、以 及執行實際的操作。這三個函數的實現都可以自定義,通過傳入不同的參數改變接口的行 為。比如:
[0016] description:執行' %參數1 % '操作后,啟動' %參數2% '程序 [0017] detai 1:第一步:執行' %參數1 % '操作
[0018] 第二步:啟動' %參數2 %'程序
[0019] 實例化時,若傳入以下參數:-參數1 ="釋放操作系統緩存"--參數2 ="排序", 則:
[0020] description:執行'釋放操作系統緩存'操作后,啟動'排序'程序
[0021] detail:第一步:執行'釋放操作系統緩存'操作 [0022]第二步:啟動'排序'程序
[0023] 那么規則,一個規則對應一組用例集合,由參數和過程組成。規則枚舉了這組用例 所有可能的參數,以及用例工作流所有可能的過程組合。表現為:
[0024] 參數:
[0025] 參數 1:ΓΑ'"Β"]
[0026] 參數2:["Χ","Υ","Ζ"]
[0027] 過程:
[0028] 步驟1:[〃過程1〃,〃過程5〃]
[0029] 步驟2:[〃過程2"]
[0030] 步驟2并發步驟:[〃異常過程Γ,〃異常過程2〃,〃異常過程3〃]
[0031 ]如上,參數組合即為所有參數矩陣的乘積,即
[0032] ["A","Β"]["X","Υ","Ζ"]=
[0033] | -參數 1 = 〃Α"-參數 2 = "X",一參數 1 = 〃Β"-參數 2 = "X"
[0034] 卜-參數! = 〃Α"-參數 2 = "Υ",一參數 1 = 〃Β"-參數 2 = "Υ"
[0035] | -參數 1 = 〃A"-參數 2 = ,一參數 1 = 〃Β"-參數 2 = "Ζ"
[0036]組合即為所有步驟矩陣的乘積,即:
[0037][〃過程1〃,〃過程5〃][〃過程2〃][〃異常過程1〃,〃異常過程2〃,〃異常過程3〃]=
[0038] |先"過程Γ再在"過程2"同時執行"異常過程1",先"過程5"再在"過程2"同時執 行"異常過程Γ
[0039] |先"過程Γ再在"過程2"同時執行"異常過程2",先"過程5"再在"過程2"同時執 行"異常過程2"
[0040] |先"過程Γ再在"過程2"同時執行"異常過程3",先"過程5"再在"過程2"同時執 行"異常過程3"
[0041] 執行時,遍歷過程組合的結果(即一個工作流),順序執行不同過程的"process 〃接 口(并發過程采用后臺啟動并發任務方式實現);執行不同工作流時,遍歷所有參數組合,即 每組參數都要執行一遍。因而,上述規則即生成6X6 = 36個用例。
[0042] 生成文字用例時,用與上述方法相同的規則遍歷調用description接口,得到用例 概述;遍歷detai 1接口,得到用例執行步驟。
[0043] 對比現有技術,本發明的有益效果在于:
[0044] 解決了手工編寫測試用例的重復性工作,根據提供的參數可以正交出所有可能的 用例組合,以及根據提供的測試維度自動正交生成可執行用例并統一調度運行,提高了測 試覆蓋率,減少了人工執行測試用例的時間。從而進一步簡化測試復雜度,提高測試覆蓋度 和測試工作效率減少人力縮短測試過程。
【附圖說明】
[0045] 附圖1為實施例1的用例生成的流程圖;
[0046] 附圖2為實施例1的用例執行的流程圖;
[0047] 附圖3為實施例1的測試報告的樣例圖。
【具體實施方式】
[0048]下面結合具體實施例,進一步闡述本發明。應理解,這些實施例僅用于說明本發明 而不用于限制本發明的范圍。此外應理解,在閱讀了本發明講授的內容之后,本領域技術人 員可以對本發明作各種改動或修改,這些等價形式同樣落于本申請所附權利要求書所限定 的范圍。
[0049] 實施例1:本發明所述是根據預置規則自動生成測試用例的測試模板及測試方法, 其中,所述根據預置規則自動生成測試用例的測試模板的格式是yaml格式,如下所示:
[0050]
[0051]
[0052] 所述測試模板分為兩部分,參數定義區和測試用例執行步驟定義區。1、參數定義 區的參數以"參數名:參數值"的形式指定,參數名和參數值的數量和內容是隨意指定的。這 些參數又分為必須指定的參數和可選參數,其中必須指定的參數在每個測試模板中必須按 規則書寫,而可選參數是可以自由設定的。同時參數值可以是多個或一個,多個的參數值中 間用逗號分隔。2、執行步驟定義區以"步驟名稱:對應腳本"形式指定,對應腳本可以指定多 個,腳本可以是一個個shell腳本或者python腳本。每個步驟里調用的腳本都必須包含有3 部分內容:description函數、detail函數、process函數。description函數里實現輸出該步 驟的概要信息;detail函數實現了該步驟執行的具體測試步驟;process函數實現了該步驟 需要執行的測試過程。而步驟名稱則是固定的,分別是以下9個步驟:
[0053] on_global_setup:表示"全局預置"步驟,即在整個TestSuite執行前后進行環境 初始化以及清理。執行器會在執行此TestSuite包含的用例前,以"一setup"為參數調用給 定腳本,在此TestSuite所有用例全部結束后,以" 一teardown"為參數調用給定腳本,以完 成清理動作。
[0054] on_Setup:表示的是測試用例的準備階段,執行器會在其他步驟之前調用這個步 驟中指定的腳本,為其他測試步驟創建測試環境。
[0055]