JIRA python篇之统计产品尚未解决的bugs

[本文出自天外归云的博客园]

通过python中的jira类我们可以方便的操作jira,获取一些我们想要再加工的信息。

一些通过JIRA的JTL查询语句不方便直接搜索的过滤条件可以通过JIRA的python api来完成。

在产品上线之前,要统计本期产品尚未解决的bugs。

前提:产品未解决的故障类型jira都关联到产品的需求类型jira上。

代码如下:

# -*- coding: utf-8 -*-
from jira import JIRA
import sys,os

#登录jira
def login_jira(username,password):
    jira = JIRA("http://jira.ms.netease.com",basic_auth=(username,password))
    return jira

def add_into_bugs(bugs,bug):
    status = bug.fields.status.name
    if status != "已解决" and status != "已关闭":
        key = bug.key
        jira_base_url = "http://jira.ms.netease.com/browse/"
        bug_info = {
            "summary":bug.fields.summary,
            "url":jira_base_url+key,
            "status":status,
            "reporter":bug.fields
        }
        bugs.append(bug_info)
    return bugs

if __name__ == '__main__':
    username = os.environ.get("JIRA_USERNAME")
    password = os.environ.get("JIRA_PASSWORD")
    jira = login_jira(username,password)
    issue = jira.issue("ZWW-2")
    bugs = []
    for issue_link in issue.fields.issuelinks:
        #找关联jira——外联和内联两种,都统计为bug
        if hasattr(issue_link, "outwardIssue"):
            outwardIssue = issue_link.outwardIssue
            bugs = add_into_bugs(bugs,outwardIssue)
        if hasattr(issue_link, "inwardIssue"):
            inwardIssue = issue_link.inwardIssue
            bugs = add_into_bugs(bugs,inwardIssue)
    print("待解决bugs数量:"+str(len(bugs)))
    infos = ["<a href='"+bug["url"]+"' target='_blank'>"+bug["summary"]+"</a><br>" for bug in bugs]
    with open("bug_infos.html","w") as f:
        for info in infos:
            f.write(info)

其中用户名和密码储存在系统变量中并从中读取。

本例的功能是打印待解决bugs数量并将详细jira列表信息保存到本地bug_infos.html文件。

posted @ 2017-12-25 10:24  天外归云  阅读(1249)  评论(4编辑  收藏  举报