TFS 测试用例导入、导出工具
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 = ; 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 > )
{
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 <= )
{
foreach (var item in allWorkItem)
{
try
{
item.Save();
}
catch
{
throw new LinkedWITException("wrong requirement ID");
}
}
}
return true;
}
程序的导出思路如下,链接到TFS团队项目中,并加载出团队项目中的所有查询,把查询结果数据中包含的测试用例类型的工作项数据导出到Excel中。
导出功能界面

TFS 测试用例导入、导出工具的更多相关文章
- java简易excel导入导出工具(封装POI)
Octopus 如何导入excel 如何导出excel github项目地址 Octopus Octopus 是一个简单的java excel导入导出工具. 如何导入excel 下面是一个excel文 ...
- 一个基于POI的通用excel导入导出工具类的简单实现及使用方法
前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...
- Octopus——excel导入导出工具
Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...
- sqlserver自带的导入导出工具,分别导入大批量mysql和oracle数据时的感受
sqlserver自带的导入导出工具,分别导入大批量mysql和oracle数据时,mysql经常出现格式转换出错,不好导入 导入的数据量比较大时,还不如自己写个工具导入 今天在导oracle时,想 ...
- pt-archiver(数据导入导出工具)
数据导入导出工具pt-archiver 工具可以将MySQL的表数据导出到一个新表或者一个文件,也有自己的应用场景,比如数据归档,删除数据,数据合并等. 具体用法: pt-archiver [OPTI ...
- HData——ETL 数据导入/导出工具
HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC.Hive.HDFS.HBase.MongoDB.FTP.Http.CSV.Excel.Kafka等)之间数据 ...
- MySQL多线程数据导入导出工具Mydumper
http://afei2.sinaapp.com/?p=456 今天在线上使用mysqldump将数据表从一个库导入到另外一个库,结果速度特别慢,印象中有个多线程的数据导入导出工具Mydumper,于 ...
- Java基础学习总结(49)——Excel导入导出工具类
在项目的pom文件中引入 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifac ...
- Excel导入导出工具(简单、好用且轻量级的海量Excel文件导入导出解决方案.)
Excel导入导出工具(简单.好用且轻量级的海量Excel文件导入导出解决方案.) 置顶 2019-09-07 16:47:10 $9420 阅读数 261更多 分类专栏: java 版权声明:本 ...
随机推荐
- 关于NOMINMAX这个预处理宏
标准库在<algorithm>头中定义了两个模板函数std::min() 和 std::max().通常用它可以计算某个值对的最小值和最大值.可惜在 Visual C++ 无法使用它们,因 ...
- (中等) POJ 2991 Crane , 几何+线段树。
Description ACM has bought a new crane (crane -- jeřáb) . The crane consists of n segments of variou ...
- CSS中link与import的区别
一.import的用法 1,在html文件中 <style type="text/css"> @import url(http://www.dreamdu.com/st ...
- AnsiString用法(转)
源:AnsiString用法 //Ansistring 转 char void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiStrin ...
- STM32F412应用开发笔记之八:迪文串口屏显示驱动
迪文的显示屏使用起来比较方便,其使用串口通讯,即可支持RS232,又可以支持TTL电平.在NUCLEO-F412ZG实验板上,USART2已经引到了CN9上,我们就利用USART2来实现与迪文串口屏的 ...
- IOS开发-ObjC-NSString
NSString是oc语言Foundation框架中常用的类,我根据每个方法的功能将NSString的常用方法分为创建字符串.初始化字符串.判断和比较字符串.大写和小写相互转化.字符串的截取.类型转换 ...
- PHP读取Excel文件(PHPExcel)
/* * 读取Excel文件 * */ require_once (dirname(dirname(dirname(__FILE__))).'/PHPExcel/PHPExcel ...
- 2)Javascript设计模式:Singleton模式
Singleton模式 var User = (function() { var instance; function _User(){} _User.prototype.say = function ...
- RACSingle 有效的两种方式
第一种当然是subscribeNext 另外还有一种就是作为Command的enablesingle也相当于被订阅了.
- Hibernate常见异常
1.数据库编码问题 主要错误信息 WARN: SQL Error: 1366, SQLState: 22001 ... ERROR: Data truncation: Incorrect string ...