作者:精灵云高级工程师 | 陈龙
1、前言
最近工作需要需要接触RTC(IBM Rational TeamConcert),目标是提取RTC 的各种类型的workitems 信息。网上这类例子很少,个别例子都是java的接口,但是我只是取数据,使用java太复杂了。突然在网上看rtc有python的接口叫做rtcclient。网址:https://pypi.python.org/pypi/rtcclient/0.6.0。研究了几天,踩了很多坑。下面就分享我使用python rtcclient模块的一些心得。
2、安装rtcclient
Ps:我使用的linux为Centos7,自带python版本为2.7。
▼ 1、安装pip
| yum install python-pip -y
如果出现No pachage python-pip available. 这时候需要更新你的扩展包,输入以下命令:
| yum -y install
epel-release
这个时候再回去装pip就可以啦。
▼ 2、安装rtcclient
| pip install rtcclient
▼ 3、测试import
可以import 表示rtcclient 安装成功了
3、读取RTC中的workitems。
▼ 1、连接rtc
url 为rtc ccm的uri,如果你使用jazz 的admin用户登录,可以在变更管理的主页看到,如下图:
由于个别jazz的url配置问题,如果以上代码不能成功连接rtc。需要在连接rtc的时候指定ends_with_jazz=False.
myclient =
RTCClient(url,user,password,ends_with_jazz=False)
▼ 2、获取项目区域所有的workitems
| myclient.getWorkitems(“your project area name”)
▼ 3、query特定的workitem类型
获取的workitem中最长见的就是任务和缺项,见如下代码:
dc:type=”task” 就是代表查找类型为“任务”的workitem。那缺陷是什么呢?客户在变更管理的”管理项目区域”配置的“工作项” 区域查看,如下图:
这里可以看到缺陷的标识为defect。所以可以使用dc:type=”defect” 查询。这里需要提的是Return_prop是可选的,但是我强烈建议加上,因为如果不选,rtcclient会去拿workitem所有的属性,这会相当的耗费时间。下面的一章会详细讲解workitem的属性。
4、Workitem的属性
上面说到dc:type 就是workitem的一个属性,获取特定的workitem后可以使用如下代码直接打印出其值:
那workitem还有其他的什么属性呢,可以用如下代码获得:
| workitem.field_alias.values()
下面是我的一个任务类型的workitem的所有属性:
再次强调,在query workitem的时候,请指定你想要获取的属性,不然以上全部都会获取。如果全部获取,200个workitem的获取时间在1个小时左右。如果只获取单个属性,几秒就可以完成query。