python实战一:将excel数据导入到jira

原创 2015年03月28日 17:31:12

excel&jira同步

背景:

    第三方测试会以excel形式提交buglist,这个buglist需要同步到jira中,在jira进行跟踪,并将处理结果反馈给第三方;以往都是复制粘贴,为了减轻繁琐的操作,提高工作效率,这次要使用脚本通过jira的接口进行同步

    因开发时间有限,不能完全实现自动化,本文仅解决将指定excel中的数据导入jira,后续有时间再做优化:
    1.将jira.bug的解决状态同步到excel中
    2.将第三方回归结果同步到jira中
    3.将第三方提供的bug相关附件同步到共享目录中,并在bug.Description中增加链接
    4.定期自动扫描buglist文件夹,发现新文件后,同步excel和jira数据,下载bug相关附件并共享

涉及的模块: jira、xlrd、re
基本环境:py34 win32

核心代码块:

#通过比较当天和前一天的bug表,实现将新增的bug导入jira
#buglist要按编号升序排列
#获取前一天的buglist的最大行号
#获取当天的buglist的最大行号
#获取数据行并转化成jira的数据格式
#将新增的bug导入jira

import xlrd
import re
from jira import JIRA

fileLast = 'D:\python\pjexcel2jira\Buglist0701.xls'
fileCurr = 'D:\python\pjexcel2jira\Buglist0702.xls'

lastData = xlrd.open_workbook (fileLast)
currData = xlrd.open_workbook (fileCurr)

lastTable=lastData.sheet_by_name(u'buglist')
currTable=currData.sheet_by_name(u'buglist')

i = lastTable.nrows

jira = JIRA('http://localhost/jira/',basic_auth=('username', 'password'))

#create bug
while i<currTable.nrows:
    #将标题行和数据行转换为dict,以方便检索
    ibug=dict(zip(currTable.row_values(1),currTable.row_values(i)))
    #不是空行则转换为jira格式
    if ibug['No.'] != '':
        ijirabug = format2Jira(ibug)

        #创建jira.bug
        new_issue = jira.create_issue(fields=ijirabug)  

    i=i+1

格式转换函数:

def format2Jira(bug=None):
    jirabug={}
    if bug['No.'] == '':
        return jirabug
    else:

        summary = convert2JiraSummary(bug)

        description = convert2JiraDescription(bug)

        components = convert2JiraComponents(bug)            

        priority = convert2JiraPriority(bug)

        versions = convert2JiraVersions(bug)


        jirabug = {
            "project": {"id": "11108"},
            "summary": summary,
            "description": description,
            "issuetype": {"name": "Bug"},
            "timetracking": {
                "originalEstimate": "1h",
                "remainingEstimate": "1h",              
            },
            "components":components,
            "priority":priority,            
            "versions":versions,
            "labels":["【第三方测试】"],
        }

        return jirabug
def convert2JiraSummary(bug=None):
    #截取bug内容的操作和现象,拼为summary
    summary = "【第三方No:"+'%d' %bug['No.']+"】" + bug['Bug内容'][bug['Bug内容'].index("操作"):bug['Bug内容'].index("期待值")]
    summary = summary.replace('\n',' ')

    return summary
def convert2JiraDescription(bug=None):
    description='编号:' +  '%d' %bug['No.'] + '\n' + bug['Bug内容'] + '\n\n' + bug['补充说明'] + '\n\n' + '评价担当者:' + bug['评价担当者']

    return description
def convert2JiraComponents(bug=None):
    #jira中要预先设置好component,并设好开发负责人,这样创建issue时可以自动指派assignee
    #'components':[{'name': '模块一'}]
    component_dict={
        'component 1':'模块一',
        'component 2':'模块二',
        'component 3':'模块三',        
    }

    p={}
    p['name']=component_dict[bug['测试机能']]
    components=[]
    components.append(p)
    return components
def convert2JiraPriority(bug=None):
    #'Priority': {'name': 'Major'}
    priority_dict={
        'S':'Blocker',
        'A':'Critical',
        'B':'Major',
        'C':'Minor',
    }

    priority={}
    priority['name']= priority_dict[bug['错误等级']]
    return priority
def convert2JiraVersions(bug=None):
    #issue.update(versions=[{"name":'V4.0.0.2'}])
    r= re.compile('V+.*.*.*')
    v = r.findall(bug['测试Version'])
    p={}
    p['name']= v[0]
    versions=[]
    versions.append(p)
    return versions

附:buglist样式,该sheet的名称为“buglist”
(Buglist)

python实战一:将excel数据导入到jira

excel&jira同步背景: 第三方测试会以excel形式提交buglist,这个buglist需要同步到jira中,在jira进行跟踪,并将处理结果反馈给第三方;以往都是复制粘贴,为了减轻繁...
  • jtscript
  • jtscript
  • 2015年03月28日 17:31
  • 1770

Excel导入CSV文件中文乱码

一般Windows用户在使用Excel处理数据文件时都不会关心文件的编码,因为Excel支持Windows上默认使用的简体中文编码GB2312,但使用MAC的用户就没有那么省心了,一不小心就会碰到中文...
  • u013692049
  • u013692049
  • 2015年10月10日 00:19
  • 1919

记一次服务器迁移,包括jira、svn

RESTORE DATABASE jiradb FROM DISK = 'F:\download\jirabackup\db.bak' with replace, MOVE 'jiradb' TO '...
  • yuxiangji
  • yuxiangji
  • 2013年11月21日 17:47
  • 3448

python实战三:通过任务计划定期获取jira数据并保存到csv

配置任务计划,每天获取一次jira.bug统计数据并保存到csv,为后续制作报表提供基础数据...
  • jtscript
  • jtscript
  • 2015年04月08日 10:29
  • 1414

将数据导入到excel

  • 2014年03月05日 14:47
  • 3KB
  • 下载

将Excel中多个sheet的数据导入到SQLSERVER中

  • 2015年08月18日 09:15
  • 24KB
  • 下载

Excel数据导入到MySQL

  • 2014年08月18日 16:36
  • 50KB
  • 下载

ExcelDataReader,可以从excel中读取数据,并导入到数据库中(c#)

  • 2010年05月08日 15:48
  • 844KB
  • 下载

托VB中如何将MSFlexGrid数据导入到Excel中.txt

  • 2008年10月15日 17:06
  • 11KB
  • 下载

PHP实现的excel数据导入到MySQL数据库的程序包

  • 2015年03月09日 17:34
  • 27KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python实战一:将excel数据导入到jira
举报原因:
原因补充:

(最多只允许输入30个字)