51Testing软件测试论坛
标题:
TFS 测试用例导入、导出工具
[打印本页]
作者:
一月蔷薇_456
时间:
2018-4-13 14:47
标题:
TFS 测试用例导入、导出工具
TFS的测试管理提供了测试规划、创建、运行以及进度跟踪等功能。测试人员通过浏览器就几乎可以完成手个
测试的全部过程。
用过TFS测试用例的朋友们,很多人应该都知道,在TFS的Portal中以及相应的数据仓库中,没有直接或者间接
导入、导出测试用例的功能和方法。但是在实际的过程中,我接触到多个研发团队都有这个方面的需求,测试
用例在团队中使用Excel进行编制和管理的,测试人员也非常习惯于Excel工具的便捷和高效,因此完全用TFS
Portal中的原生功能就降低了测试人员编制测试用例的效率。
2013后的TFS版本,尽管在Portal中提供了与Excel直接进行复制和粘贴的功能,但是受制与条数的限制,操作
起来仍旧不太方便。因此,我编写了一个TFS测试用例导入、导出的工具。工具使用的是C#编写的一个Windo
wForm应用程序,通过调用TFS的链接库组件和Excel组件来实现的。
工具的导出用例结果
[attach]113458[/attach]
程序中引用的DLL库
[attach]113459[/attach]
程序的导入思路如下,按照测试团队现有的测试用例模板格式,把Excel中的用例数据读出来,在程序中组织
并形成TFS中测试用例WorkItem对象数据,之后通过TFS组件的功能把用例数据保存到TFS的数据库中。
导入界面功能
[attach]113460[/attach]
创建用例的代码如下:
复制代码
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.Re
quirementID));
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中。
导出功能界面
[attach]113461[/attach]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2