在 4.1 節中,我們已經解決如何批量的創建 Test Case(TC)和 Configured Test Case(CTC),并與腳本相關聯。在本節中,我們將提供一個高級方案,以使得測試的準備更方便,流程更易管理。
在 CQTM 中,除了與測試腳本相關聯以外,對于 TMTestCase 和 TMConfiguredTestCase 還有其他一些重要的信息,比如“Description”, “Iterations”, “Points”, “Owner”等,如圖 9 所示。
圖 9. CQTM 中 Test Case 的屬性
我們當然可以在測試用例 (TC/CTC) 被創建后手動為每個用例輸入上述信息,但這樣做非常耗時,而且不易于統計所有用例的信息或在同一視圖中對它們進行比較。為何不可在同一次創建過程中批量導入這些信息呢?
假定我們有一個關于所有測試用例信息的列表,那么我們就可以在同一視圖中修改并管理它們。這會使得測試用例的準備和審查更為容易。更進一步的是,有了這樣一個列表,我們就可以在短時間內將這些信息準確無誤的導入到 CQTM 中。
這個方案在前述的普通方案的基礎上增加了效率——首先創建一個列表,其中包含所有測試用例所需的信息;然后在創建 TC/CTC 時,就可同時將相應的信息導入到 CQTM 中。
Checklist 簡介
Checklist 可以是 txt 格式,excel 格式或其他易于通過程序訪問(僅需讀取權限)的文件格式。
該文件的內容應當以類似表格的形式存在,每一行代表一個測試用例,每一列則代表測試用例的某個域的值。
圖 10 是一個 txt 格式的文件示例:
圖 10. txt 格式的 Checklist
在這種格式中,每個測試用例都從新的一行開始,每個域之間用逗號(,)分隔。如果某個域含有換行符或者逗號,則需要用一對雙引號(“”)將其括住。
圖 11 是一個 excel 格式的文件示例:
圖 11. excel 格式的 Checklist
在這種格式中,每行代表一個測試用例,每列代表測試用例的一個域。標題(headline,與測試腳本名稱相同)將用于匹配將在 CQTM 中創建的測試用例。
圖 12 展示了該表格和 CQTM 之間的域映射 :
圖 12. 域的映射關系
示例代碼
高級方案中的步驟與普通方案類似,但加入了一些其他功能,以及更復雜的邏輯控制;静襟E包括:
創建 CQSession 并登錄;從工作表獲取腳本信息;(更多信息,例如 owner,Iteration,description,points 等)創建 Test Plan;創建 Test Case;創建 Configured Test Case;創建 File Location;創建 External File;將腳本與 Test Case 或 Configured Test Case 相關聯。以下示例代碼闡述了與普通方案的一些主要不同點:
創建 Iteration。從工作表可以獲取測試用例相關的迭代(Iteration)信息。如果該迭代在 CQTM 中不存在,則可以通過提供 startDate 和 endDate 來創建它。
清單 8. 創建 Iteration
session.SetNameValue("IterationCreation", "true"); CQEntity entity = session.BuildEntity("TMIteration"); entity.SetFieldValue("Name", iterationName); entity.SetFieldValue("StartDate", startDate); entity.SetFieldValue("EndDate", endDate); entity.SetFieldValue("AssetRegistry", assetRegistry); entity.Validate(); entity.Commit();
創建 Test Plan/TC/CTC 時加入更多的信息。
由于從工作表中可以取得更多信息,因此可以盡可能的向 CQTM 中自動加入,以減少手動工作。以下列出一些可能添加的信息。
創建 Test Plan:owner 和 Iteration.
創建 Test Case:points, description, owner 和 Iteration.
創建 Configured Test Case:points, owner 和 Iteration.
以創建 Test Plan 為例:
清單 9. 加入更多信息
entity.SetFieldValue("AssetRegistry", assetRegistry); entity.SetFieldValue("Headline", headline); entity.SetFieldValue("owner", owner); //owner information entity.SetFieldValue("Iterations", iteration); //Iteration information
創建 File Location。
可以創建 File Location 以供 External File 使用。此處需要定義一定的命名規則來區分不同的 File Location。其名字應被返回以在創建 External File 時使用。
文章來源于領測軟件測試網 http://www.kjueaiud.com/