从事测试工作的同学可能会用过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() bugFac = tdc.BugFactory; //这里设置我们期望的条件 //此时就可以获得我们期望的bug List了 //有了这个bug List,我们就可以遍历每个bug,做我们期望做的事情,当然也可以直接返回bug数量 } |
如果需要,我们甚至可以把每个bug的具体情况在网站上都罗列起来,相信用户体验一定比去ALM亲自去看要好。
总之老板满意了,我们才踏实嘛。