之前在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的更多相关文章

  1. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  2. 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程

    说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...

  3. NET实现微信公共平台上传下载多媒体文件(转)

    举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这 ...

  4. Webwork 学习之路【07】文件上传下载

    Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...

  5. 【UEditor】 UEditor整合项目上传资源到阿里云服务器

    目录 关于此文 下载源码 JSP代码 Java代码 阿里云jar包引入配置 成功啦! 回到顶部 关于此文 项目中要实现编辑器生成带格式的html文档,存入模板,最后生成html的URL,所以选择了UE ...

  6. ASP.NET跨服务器上传文件的相关解决方案

    第一种:通过FTP来上传文件 首先,在另外一台服务器上设置好FTP服务,并创建好允许上传的用户和密码,然后,在ASP.NET里就可以直接将文件上传到这台 FTP 服务器上了.代码如下: <%@ ...

  7. java实现多线程断点续传,上传下载

    采用apache 的 commons-net-ftp-ftpclient import java.io.File; import java.io.FileOutputStream; import ja ...

  8. 微信公共服务平台开发(.Net 的实现)8-------处理图片(上传下载发送)

    举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这 ...

  9. phpcms前端页面上传文件

    PHPCMS其实有一个叫做附件的模块,上传用的就是这个东西,现在我们来看一下对应的文件:phpcms\modules\attachment \attachments.php就是这个文件,大概在29行上 ...

随机推荐

  1. [AFN]AFNetworking错误总结

    1. 错误打印  code=-1016 filed: text/html 错误原因:AFN默认不能解析请求回来的text/html数据 解决办法: AFN3.0的请看这里 AFHTTPSessionM ...

  2. 读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots

    读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots   以下为异常详细信息: Exception in thread &q ...

  3. 286. Walls and Gates

    题目: You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an ob ...

  4. SRM 620 DIV1 L2

    题意:有n个等长的string(设string的长度为m),string中的字符从'A'到'Z',容许对m列执行稳定的排序操作,问说是否能通过这m种操作将这n个string调整成对应的顺序. 题解: ...

  5. chrome开发配置(一)安装配置工具

    1.下载depot_tools,解压到本地,然后将解压后的depot_tools根目录添加到path环境变量: depot_tools下载地址 2.cmd 运行gclient,git比较大,有100M ...

  6. 在Visual C++下搭建OpenGL的开发环境

    1.确保你的电脑已经安装了visual c++编译器 如果还没安装的话,这里有个安装包,可以复制链接进行下载:http://pan.baidu.com/s/1bn4XTqn   2.下载GLUT 下载 ...

  7. Cookie工具类 - CookieUtil.java

    Cookie工具类,提供Cookie的创建.获取.删除方法. 源码如下:(点击下载 -CookieUtil.java ) import javax.servlet.http.Cookie; impor ...

  8. Uubuntu 14.04 LTS反编译apk

    使用apktool反编译apk 1.安装apktool apktool是Google提供的APK编译工具,能够反编译及回编译apk,需要Java环境的支持(在此不再赘述Java的安装与配置,详见< ...

  9. 深入浅出:Linux设备驱动之字符设备驱

    一.linux系统将设备分为3类:字符设备.块设备.网络设备.使用驱动程序: 字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面向流 ...

  10. linux硬件驱动层

    1.make menuconfig scripts/kconfig/lxdialog/menubox.o: In function `print_buttons':menubox.c:(.text+0 ...