51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1940|回复: 0
打印 上一主题 下一主题

[讨论] TFS 测试用例导入、导出工具

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-13 14:47:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TFS的测试管理提供了测试规划、创建、运行以及进度跟踪等功能。测试人员通过浏览器就几乎可以完成手个
测试的全部过程。

用过TFS测试用例的朋友们,很多人应该都知道,在TFS的Portal中以及相应的数据仓库中,没有直接或者间接
导入、导出测试用例的功能和方法。但是在实际的过程中,我接触到多个研发团队都有这个方面的需求,测试
用例在团队中使用Excel进行编制和管理的,测试人员也非常习惯于Excel工具的便捷和高效,因此完全用TFS
Portal中的原生功能就降低了测试人员编制测试用例的效率。

2013后的TFS版本,尽管在Portal中提供了与Excel直接进行复制和粘贴的功能,但是受制与条数的限制,操作
起来仍旧不太方便。因此,我编写了一个TFS测试用例导入、导出的工具。工具使用的是C#编写的一个Windo
wForm应用程序,通过调用TFS的链接库组件和Excel组件来实现的。

工具的导出用例结果





程序中引用的DLL库





程序的导入思路如下,按照测试团队现有的测试用例模板格式,把Excel中的用例数据读出来,在程序中组织
并形成TFS中测试用例WorkItem对象数据,之后通过TFS组件的功能把用例数据保存到TFS的数据库中。

导入界面功能





创建用例的代码如下:

复制代码
  1. public bool CreateWorkItem(Project tfsProject, List<TFSWorkItemModel> tfsModels)
  2.         {
  3.             WorkItemType workItemType = tfsProject.WorkItemTypes["测试用例"];
  4.             TFSUserCaseModel tfsModel = null;
  5.             List<WorkItem> allWorkItem = new List<WorkItem>();
  6.             for (int i = 0; i < tfsModels.Count; i++)
  7.             {
  8.                 tfsModel = (TFSUserCaseModel)tfsModels[i];
  9.                 WorkItem workItem = new WorkItem(workItemType);
  10.                 workItem.Title = tfsModel.Title;
  11.                 workItem.AreaPath = tfsModel.Area;
  12.                 workItem.IterationPath = tfsModel.Iteration;
  13.                 workItem.Fields["测试类型"].Value = tfsModel.TestType;
  14.                 workItem.Fields["用例设计人"].Value = tfsModel.Designer;
  15.                 workItem.Fields["用例创建阶段"].Value = tfsModel.CreatedPhase;
  16.                 workItem.Fields["指派给"].Value = tfsModel.AssignTo;     
  17.                 workItem.Fields["步骤"].Value = TestStepConvert.ConvertToStep(tfsModel.Steps);

  18.                 if (!string.IsNullOrEmpty(tfsModel.RequirementID))
  19.                 {
  20.                     WorkItemLinkTypeEnd workItemLinkTypeEnd = tfsProject.Store.WorkItemLinkTypes.LinkTypeEnds["测试"];
  21.                     WorkItemLink workItemLink = new WorkItemLink(workItemLinkTypeEnd, int.Parse(tfsModel.Re
  22. quirementID));
  23.                     workItem.Links.Add(workItemLink);
  24.                 }

  25.                 if (workItem.Validate().Count > 0)
  26.                 {               
  27.                     StringBuilder sb = new StringBuilder();
  28.                     string userCaseErrorMessage =  string.Format("用例:{0} 格式不正确。",workItem.Title );
  29.                     sb.Append(userCaseErrorMessage );
  30.                     foreach (Field item in workItem.Validate())
  31.                     {
  32.                         sb.Append( "--" + item.Name);
  33.                     }
  34.                     invalidWorkItems.Add(sb.ToString());
  35.                 }
  36.                 allWorkItem.Add(workItem);

  37.             }

  38.             if (invalidWorkItems.Count <= 0)
  39.             {
  40.                 foreach (var item in allWorkItem)
  41.                 {
  42.                     try
  43.                     {
  44.                         item.Save();
  45.                     }
  46.                     catch
  47.                     {
  48.                         throw new LinkedWITException("wrong requirement ID");
  49.                     }
  50.                 }
  51.             }
  52.             return true;
  53.         }
复制代码

复制代码




     程序的导出思路如下,链接到TFS团队项目中,并加载出团队项目中的所有查询,把查询结果数据中包
含的测试用例类型的工作项数据导出到Excel中。

导出功能界面



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-2 21:49 , Processed in 0.065292 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表