1.1、概要

  本文主要内容是教大家学习如何利用Python对Jira缺陷进行管理操作。

  在平时的测试中,大家对于缺陷管理平台一定不陌生,平时的缺陷都要去平台进行操作。今天我们就来看看Python是怎么样连接Jira进行操作的。

  1.2、获取JIRA数据

  某天领导要看XX项目的目前缺陷情况,总共有多少bug,多少未处理的,未处理的bug中严重程度是怎么样的,这些bug都属于谁来负责修改等。这一串问题足以把任何一个测试人员击垮,如果平时不做准备的话。

  如果你有一个定期统计缺陷信息的习惯的话,我相信你会很淡定的把结果展示给你的领导,像下图这样。

python jira python jira error_python jira

python jira python jira error_JIRA_02

  图表中的数据应该全部来源于缺陷管理平台,如果平时有一个定期统计信息的习惯的话,那么你会很清楚的掌握目前项目的缺陷情况。今天我们重点不是将如何做好项目缺陷的统计,但是自动化的获取这些平台缺陷的信息的目的就是为了这些数据。

  首先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
  输出结果:

python jira python jira error_优先级_03

  好了,第一步通过jr.projects获取到项目名称后,我们就可以获取该项目下的具体缺陷信息了。获取项目下缺陷用到search_issues('project=项目name')方法,具体写法:

 

issue=jr.search_issues('project=APPBUG')
  for i in iss:
  print i,i.id

  issue返回的是项目下缺陷的list,其中包含每条缺陷的key,id值。当然我们获取这个列表的长度就是项目目前缺陷总数了。我们看看返回结果:

python jira python jira error_Python_04

  紧接着就是获取某条缺陷的具体信息了,像我们平时录入缺陷所要填的信息,比如:缺陷等级,缺陷状态,缺陷类型,创建时间,缺陷概要,缺陷内容,缺陷创建人,缺陷指派人,附件,备注等等信息。我们通过上面获取到的缺陷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优先级判断,可以统计对应的状态的缺陷优先级个数。如下图

python jira python jira error_Python_05