关闭

HP ALM Open Test Architecture API 介绍

发表于:2013-5-20 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:jinsdu    来源:51Testing软件测试网采编

  从事测试工作的同学可能会用过HP ALM(以前叫QC),这是一款基于web软件测试管理工具,功能非常强大。Test Case Design, Test Case Execution, Bug Tracking,这些想必大家都非常熟了,还有像Dashboard, Management, Requirements,这些可能不熟悉的。随着我们对ALM使用的逐渐深入,我们可能会有一些跟ALM相关的Idea,但是通过现有ALM功能不能手动解决,或者解决起来比较麻烦的,怎么办呢?

  接下来我将介绍ALM OTA API,向大家展示如何通过它来实现我们的想法,以抛砖引玉,期待引起有相同需求的同学,共同探讨。

  什么是ALM OTA API?

  如果你正在使用ALM,可以从 Help->Document Library-> 选择HP ALM Open Test Architecture API Reference 去获得。

  里面有详细的API介绍,并且包含丰富的例子。代码是用VB写的,不过我接下来的例子将用C#来诠释,以方便大家参考。

  简而言之,ALM OTA API 就是一个COM库,通过它我们就能用代码来与ALM交互。

  口说无凭,有例子才有真相:

  案例一:老板想方便的知道本项目这周跑了多少case,开了多少bug,怎么办?

  分析:我们可以在ALM手动的一点点去查,然后整理成报告,发给老板。但是每次都得查,要是一不小心眼花了,还可能导致统计出错,要是被老板发现了那问题就可大可小了。此时我们想一想,如果我们能做个网站,提供相应的功能,让老板能够随时查询这样岂不很好?!

  网站我们可以选择我们擅长的语言来写,至于如何写,不是本篇文章讨论的重点,我们关心的是如何让我们的网站与ALM通信,以获得数据。

  这里以统计bug为例,上一段小代码为大家参考:

  首先我们要先建立ALM连接:

public static TDConnection ConnectProject(string server, string user, string pass, string domain, string project)
         {
             TDConnection tdc = new TDConnection();
             try
             {
                 // Connect to ALM
                 tdc.InitConnectionEx(server);
                 tdc.Login(user, pass);
                 tdc.Connect(domain, project);
             }
             catch (Exception ex)
             {
                 // Report Exception
                 //Report.Failure("Failed to connect ALM! " + "Debug Trace: " + ex.ToString());
                 Console.WriteLine("Failed to connect to ALM! " + "Debug Trace: " + ex.Message.ToString());
             }
             return tdc;
         }

  然后我们就可以通过ALM全局连接tdc,去获得bug的List集合。

public int GetBugCount()
        {
            BugFactory bugFac = null;
            TDFilter bugFilter = null;
            TDAPIOLELib.List lst = null;

            bugFac = tdc.BugFactory;
            bugFilter = bugFac.Filter;

            //这里设置我们期望的条件
            //比如,期望统计是new或者open的bug,并且severity大于等于3
            bugFilter["BG_STATUS"] = "New Or Open";
            bugFilter["BG_SEVERITY"] = ">=3";

            //此时就可以获得我们期望的bug List了
            lst = bugFac.NewList(bugFilter.Text);

            //有了这个bug List,我们就可以遍历每个bug,做我们期望做的事情,当然也可以直接返回bug数量
            return lst.Count;

        }

  如果需要,我们甚至可以把每个bug的具体情况在网站上都罗列起来,相信用户体验一定比去ALM亲自去看要好。

  总之老板满意了,我们才踏实嘛。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号