1.1、概要
本文主要内容是教大家学习如何利用Python对Jira缺陷进行管理操作。
在平时的测试中,大家对于缺陷管理平台一定不陌生,平时的缺陷都要去平台进行操作。今天我们就来看看Python是怎么样连接Jira进行操作的。
1.2、获取JIRA数据
某天领导要看XX项目的目前缺陷情况,总共有多少bug,多少未处理的,未处理的bug中严重程度是怎么样的,这些bug都属于谁来负责修改等。这一串问题足以把任何一个测试人员击垮,如果平时不做准备的话。
如果你有一个定期统计缺陷信息的习惯的话,我相信你会很淡定的把结果展示给你的领导,像下图这样。
图表中的数据应该全部来源于缺陷管理平台,如果平时有一个定期统计信息的习惯的话,那么你会很清楚的掌握目前项目的缺陷情况。今天我们重点不是将如何做好项目缺陷的统计,但是自动化的获取这些平台缺陷的信息的目的就是为了这些数据。
首先Python操作Jira平台只需要利用Jira库就可以了,安装也很简单
控制台输入:pip install jira
当安装好jira库后,我们就可以连接Jira平台了,先来一个简单的脚本:连接Jira并获取当前平台所有的项目。
from jira import JIRA
jr=JIRA('http://jira地址',basic_auth=('登录名','密码'))
#连接jira
print u'当前登录用户 :'+jr.user(jr.current_user())
#打印当前用户,通过jr.user(用户名)获取用户名称
print datetime.datetime.now().strftime('%Y年%m月%d日')
print '============================================'
for i in jr.projects():#jr.projects()获取所有项目,返回项目字典
print i,i.name
输出结果:
好了,第一步通过jr.projects获取到项目名称后,我们就可以获取该项目下的具体缺陷信息了。获取项目下缺陷用到search_issues('project=项目name')方法,具体写法:
issue=jr.search_issues('project=APPBUG')
for i in iss:
print i,i.id
issue返回的是项目下缺陷的list,其中包含每条缺陷的key,id值。当然我们获取这个列表的长度就是项目目前缺陷总数了。我们看看返回结果:
紧接着就是获取某条缺陷的具体信息了,像我们平时录入缺陷所要填的信息,比如:缺陷等级,缺陷状态,缺陷类型,创建时间,缺陷概要,缺陷内容,缺陷创建人,缺陷指派人,附件,备注等等信息。我们通过上面获取到的缺陷key值来获取具体的缺陷上,脚本里这样写:
isss=jr.issue('APPBUG-486')
#传入具体缺陷的key值
print isss.fields.issuetype
#打印缺陷的类型,类型根据自己jira平台设置的类型而定,如缺陷,改进等
print isss.fields. summar
#打印缺陷的主题即标题内容
print isss.fields.description
#打印缺陷的描述即具体内容
print isss.fields. status
#打印缺陷的当前状态,如:已解决,关闭
print isss.fields. resolution
#打印缺陷的解决结果,此处是开发人员填写
print isss.fields. priority
#打印缺陷的优先级,如:严重,重要,轻微等
print isss.fields. reporter
#打印缺陷的创建人名称
print isss.fields. assignee
#打印缺陷的指派人名称
print isss.fields. created
#打印缺陷的创建日期
print isss.fields.updated
#打印缺陷的修改日期
print '%s'%isss.fields.comment.comments
#打印缺陷的备注信息
print isss.fields.attachment
#打印缺陷的附件信息
print '%s'%isss.fields.components
#打印缺陷的所属模块信息
print isss.fields.environment
#打印缺陷的环境信息
基本上以上这些缺陷信息都是一个缺陷的必备内容了。此时我们就可以做进一步的开发了,比如获取项目中各种状态的缺陷数,利用isss.fields. status获取项目缺陷的状态分别统计个数,如果加上isss.fields. priority优先级判断,可以统计对应的状态的缺陷优先级个数。如下图