TFS的測試管理提供了測試規划、創建、運行以及進度跟蹤等功能。測試人員通過瀏覽器就幾乎可以完成手個測試的全部過程。
用過TFS測試用例的朋友們,很多人應該都知道,在TFS的Portal中以及相應的數據倉庫中,沒有直接或者間接導入、導出測試用例的功能和方法。但是在實際的過程中,我接觸到多個研發團隊都有這個方面的需求,測試用例在團隊中使用Excel進行編制和管理的,測試人員也非常習慣於Excel工具的便捷和高效,因此完全用TFS Portal中的原生功能就降低了測試人員編制測試用例的效率。
2013后的TFS版本,盡管在Portal中提供了與Excel直接進行復制和粘貼的功能,但是受制與條數的限制,操作起來仍舊不太方便。因此,我編寫了一個TFS測試用例導入、導出的工具。工具使用的是C#編寫的一個WindowForm應用程序,通過調用TFS的鏈接庫組件和Excel組件來實現的。
工具的導出用例結果
程序中引用的DLL庫
程序的導入思路如下,按照測試團隊現有的測試用例模板格式,把Excel中的用例數據讀出來,在程序中組織並形成TFS中測試用例WorkItem對象數據,之后通過TFS組件的功能把用例數據保存到TFS的數據庫中。
導入界面功能
創建用例的代碼如下:
public bool CreateWorkItem(Project tfsProject, List<TFSWorkItemModel> tfsModels) { WorkItemType workItemType = tfsProject.WorkItemTypes["測試用例"]; TFSUserCaseModel tfsModel = null; List<WorkItem> allWorkItem = new List<WorkItem>(); for (int i = 0; i < tfsModels.Count; i++) { tfsModel = (TFSUserCaseModel)tfsModels[i]; WorkItem workItem = new WorkItem(workItemType); workItem.Title = tfsModel.Title; workItem.AreaPath = tfsModel.Area;
workItem.IterationPath = tfsModel.Iteration; workItem.Fields["測試類型"].Value = tfsModel.TestType; workItem.Fields["用例設計人"].Value = tfsModel.Designer; workItem.Fields["用例創建階段"].Value = tfsModel.CreatedPhase;
workItem.Fields["指派給"].Value = tfsModel.AssignTo; workItem.Fields["步驟"].Value = TestStepConvert.ConvertToStep(tfsModel.Steps); if (!string.IsNullOrEmpty(tfsModel.RequirementID)) { WorkItemLinkTypeEnd workItemLinkTypeEnd = tfsProject.Store.WorkItemLinkTypes.LinkTypeEnds["測試"]; WorkItemLink workItemLink = new WorkItemLink(workItemLinkTypeEnd, int.Parse(tfsModel.RequirementID)); workItem.Links.Add(workItemLink); } if (workItem.Validate().Count > 0) { StringBuilder sb = new StringBuilder(); string userCaseErrorMessage = string.Format("用例:{0} 格式不正確。",workItem.Title ); sb.Append(userCaseErrorMessage ); foreach (Field item in workItem.Validate()) { sb.Append( "--" + item.Name); } invalidWorkItems.Add(sb.ToString()); } allWorkItem.Add(workItem); } if (invalidWorkItems.Count <= 0) { foreach (var item in allWorkItem) { try { item.Save(); } catch { throw new LinkedWITException("wrong requirement ID"); } } } return true; }
程序的導出思路如下,鏈接到TFS團隊項目中,並加載出團隊項目中的所有查詢,把查詢結果數據中包含的測試用例類型的工作項數據導出到Excel中。
導出功能界面