上传Test Result和attachment到ALM
之前在HP的时候用ALM,还是很好用的功能很强大的一个测试管理工具,当时用C#依照ALM的API实现了一个上传测试结果的程序,现在贴出来:
这个程序的使用方式很自由,使得ALM几乎可以和所有测试工具做集成,只要测试工具能够提供xml的测试结果
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; using TDAPIOLELib; namespace ALMConnector
{
public class ALMConnection
{
private TDConnection almConnection;
private TestSetTreeManager tsTreeMan;
private TestSetFolder rootFolder;
// 初始化建立到ALM的connection
public ALMConnection(string almURL_)
{
almConnection = new TDConnection();
almConnection.InitConnectionEx(almURL_);
} ~ALMConnection()
{
// Extremely important to clean up and release resoures when done
DisconnectProject();
Logout();
almConnection.ReleaseConnection();
} public string ServerULR
{
get
{
return almConnection.ServerURL;
}
} public string UserName
{
get
{
return almConnection.UserName;
}
} public string DomainName
{
get
{
return almConnection.DomainName;
}
} public string ProjectName
{
get
{
return almConnection.ProjectName;
}
} public TDAPIOLELib.List ProjectList
{
get
{
return almConnection.ProjectsList;
}
}
//用户名密码登陆
public void Login(string userName_, string password_)
{
almConnection.Login(userName_, password_);
}
//连接到项目,得到项目的testsuite rootfolder
public void ConnectProject(string domainName_, string projectName_)
{
if (almConnection.Connected)
{
almConnection.Connect(domainName_, projectName_);
GetRootFolder();
}
}
//释放connection
public void DisconnectProject()
{
if (almConnection.Connected)
{
almConnection.Disconnect();
}
}
//登出
public void Logout()
{
if (almConnection.LoggedIn)
{
almConnection.Logout();
}
}
//获取到testset的folder
public bool FindTestSetFolder(string almFolderPath, out TestSetFolder almFolder)
{
almFolder = (TestSetFolder)tsTreeMan.get_NodeByPath(almFolderPath);
return !(almFolderPath == null);
} public TestSetFolder GetRootFolder()
{
if (tsTreeMan == null)
{
tsTreeMan = (TestSetTreeManager)almConnection.TestSetTreeManager;
}
if (rootFolder == null)
{
rootFolder = (TestSetFolder)tsTreeMan.Root;
}
return rootFolder;
}
//建立testset
public bool CreateTestSet(TestSetFolder targetFolder_, string newTestSetName_, out TestSet testSetInstance_)
{
List tsList = targetFolder_.FindTestSets(newTestSetName_);
if (tsList == null)
{
TestSetFactory tsFact = targetFolder_.TestSetFactory;
TestSet tsNew = tsFact.AddItem(DBNull.Value);
tsNew.Name = newTestSetName_;
tsNew.Status = "Open";
tsNew.Post(); testSetInstance_ = tsNew; return true;
}
else if (tsList.Count == )
{
testSetInstance_ = tsList[];
}
else
{
testSetInstance_ = null;
} return false;
}
//上传测试结果到testset
public bool AddTestResultToTestSet(TestSet tsRun, TestResult tsResult)
{
TSTestFactory tsTestFact = tsRun.TSTestFactory;
TSTest newTSTest = tsTestFact.AddItem(tsResult.TestId);
newTSTest.Status = tsResult.TestStatus;
newTSTest.Post(); return true;
}
//上传attachment到testset
public void UploadAttachmentToTestSet(TestSet tsRun, String reportPath)
{
TestSet tSet = null;
AttachmentFactory attfat = null;
Attachment attobj = null;
if (File.Exists(reportPath))
{
Console.WriteLine("Find Attachment File,Uploading ...");
tSet = tsRun;
attfat = tSet.Attachments;
attobj = attfat.AddItem(System.DBNull.Value);
attobj.FileName = reportPath;
attobj.Type = ;
attobj.Post();
}
}
}
}
上传Test Result和attachment到ALM的更多相关文章
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...
- 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程
说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...
- NET实现微信公共平台上传下载多媒体文件(转)
举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这 ...
- Webwork 学习之路【07】文件上传下载
Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...
- 【UEditor】 UEditor整合项目上传资源到阿里云服务器
目录 关于此文 下载源码 JSP代码 Java代码 阿里云jar包引入配置 成功啦! 回到顶部 关于此文 项目中要实现编辑器生成带格式的html文档,存入模板,最后生成html的URL,所以选择了UE ...
- ASP.NET跨服务器上传文件的相关解决方案
第一种:通过FTP来上传文件 首先,在另外一台服务器上设置好FTP服务,并创建好允许上传的用户和密码,然后,在ASP.NET里就可以直接将文件上传到这台 FTP 服务器上了.代码如下: <%@ ...
- java实现多线程断点续传,上传下载
采用apache 的 commons-net-ftp-ftpclient import java.io.File; import java.io.FileOutputStream; import ja ...
- 微信公共服务平台开发(.Net 的实现)8-------处理图片(上传下载发送)
举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这 ...
- phpcms前端页面上传文件
PHPCMS其实有一个叫做附件的模块,上传用的就是这个东西,现在我们来看一下对应的文件:phpcms\modules\attachment \attachments.php就是这个文件,大概在29行上 ...
随机推荐
- 【web性能】页面呈现、重绘、回流
在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类 ...
- iOS keyChain
keychain在ios中是保存在sqlite数据库中的. 这个数据库文件的位置: 真机: /private/var/Keychains/keychain-2.db 虚拟机: /Users/USER- ...
- python xml.etree ElementTree解析 编辑 xml
python有很多种xml解析方式,不过感觉etree的ElementTree 用起来最方便. #coding=utf-8 from xml.etree import ElementTree impo ...
- Oracle ->> 行转列, 列转行
除了Pivot和Unpivot这两个函数,还有像CASE WHEN + 聚合函数像MAX,SUM这类的来完成.今天发现Oracle下居然有这样一个和SQL SERVER 2012以后新增的新函数叫II ...
- Data Flow ->> Import Column & Export Column
这两个transformation的作用是把DT_TEXT, DT_NTEXT, DT_IMAGE类型的数据在文件系统和数据库间导出或者导入.比如把某个数据库表的image类型的字段导出到文件系统成为 ...
- 解决:并排的两个div底部对齐
我希望在页面上画2个栈,并列起来,并且其内容是动态的,高度.宽度都可变,但是要保持底部对齐,如图: 实现的代码如下: <html> <head> <meta http-e ...
- SGU 106 The equation 扩展欧几里得好题
扩展欧几里得的应用……见算法竞赛入门经典p.179 注意两点:1.解不等式的时候除负数变号 2.各种特殊情况的判断( a=0 && b=0 && c=0 ) ( a=0 ...
- ava中拦截器 过滤器 监听器都有什么区别
过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts2的action进行业务逻辑,比如过滤掉非法u ...
- linux系统的文件和文件类型
文件 当你创建一个文件的时候,系统保存了有关该文件的全部信息,包括:• 文件的位置.• 文件类型.• 文件长度.• 哪位用户拥有该文件,哪些用户可以访问该文件.• i节点.• 文件的修改时间.• 文件 ...
- python类的简单介绍
类是面向对象编程的核心, 它扮演相关数据及逻辑的容器角色.它们提供了创建“真实”对象(也就是实例)的蓝图.因为Python 并不强求你以面向对象的方式编程(与Java 不同), 此刻你也可以不学习类. ...