原标题:python实践--月报分析之获取jira缺陷数据
关于JIRA:
Jira是一款可进行缺陷管理、任务管理、需求管理、流程管理、项目管理、敏捷管理的工具。针对缺陷管理功能,jira最大特点是可以自定义问题类型,适应组织管理的需要;自定义字段,可选择字段类型超过20种,不仅如此还支持插件进一步扩展;自定义问题安全级别,可以限制指定用户访问指定的问题等。
关于背景:
需求:团队每个月测试月报总结中需要从Jira平台中统计各个项目的新增、关闭、打回以及遗留bug等数据。
痛点:人工去对各个项目进行条件筛选统计,耗时较长且容易出错。
方案:故做一个自动去筛选获取Jira平台各个项目每个月的数据,不仅可以提高统计数据的准确性,还可以从不同维度去分析项目的情况。
Python的第三方库提供了操作jira的API,可以直接调用API中的方法直接获取缺陷数据,避免了通过爬取方式获取数据的不稳定性。下面详细介绍一下如何用python获取jira缺陷数据。
1.jiraAPI的基本操作介绍
首先安装jira,同其他第三方库,直接可以 easy_install jira。
判断jira是否按转成功输入:from jira import JIRA,如果没有报错则说明安装成功;
#连接jira
jira = JIRA(“http://jira地址”,basic_auth = (“用户名”,”密码”))
#获取当前用户
print u'当前登录用户:'+jira.user(jira.current_user())
#获取当前用户所有项目,返回项目字典
for j in jira.projects():
print j, j.name #打印项目名称;
2. 批量获取项目缺陷数据
通过jira.projects()获取项目名称后,接下来就可以获取各个项目的具体缺陷信息了,批量获取缺陷的具体方法是jira.search_issues(sql,maxResults),具体用法如下;
issues =jira.search_issues(sql, maxResults=maxnumber)
for u in issues:
print u #打印缺陷的key值
其中sql是指统计缺陷数的查询语句,比如统计2018年1月份创建缺陷数的语句为:project= 项目键值 AND issuetype =缺陷 AND created >= 2018-01-01 AND created <=2018-02-01;
maxResults参数是设置返回数据的最大值,默认是50。issues返回的是项目的缺陷list,包含了缺陷的key,id值,通过计算issues的个数就可以统计目前项目缺陷总数。一下是不同维度统计缺陷的sql。
#验证缺陷
project =项目键值AND issuetype = 缺陷 AND ( status changed FROM 待验证TO 关闭OR status changed FROM 待验证TO 待修复 OR status changed FROM 待验证TO 待讨论) AND 验证时间>=2018-01-01 AND 验证时间<=2018-02-01;
#打回缺陷
project =项目键值issuetype = 缺陷 AND ( status changed FROM 待验证TO 待修复 OR (status changed FROM 待验证TO 待讨论AND status changed FROM 待讨论TO 待修复)) AND 验证时间>=2018-01-01 AND 验证时间<=2018-02-01;
#未修复缺陷
project = AND issuetype =缺陷 AND status in (待修复, 待讨论) AND created <= 2018-01-01 AND created <= 2018-02-01;
3.获取缺陷详细信息
获取jiar统计信息后,下一步就是得到每个缺陷的具体信息,比如摘要、重现步骤、解决方法、修复细节,提出人员,提出版本等详细信息。部分常用方法如下,更多方法可参看API说明文档http://jira.readthedocs.io/en/master/api.html。
#传入具体的缺陷key值;
isss=jira.issue('APPBUG-486')
#获取缺陷类型,如缺陷,线上问题、改进等
print isss.fields.issuetype
#获取缺陷的主题描述
print isss.fields.summary
#获取缺陷的具体描述内容
print isss.fields.deion
#获取缺陷的状态
print isss.fields. status
#获取缺陷的解决结果
print isss.fields. resolution
#获取缺陷的优先级
print isss.fields. priority
由于jira具有可扩展性,自定义字段。不同的项目组会根据需求去添加字段,那么如何去获取自定义字段的内容,具体方法如下;
首先,要获取自定义字段的id号。
field= jira.fields()
foritem infield:
printjson.dumps(item,ensure_ascii=False)#批量打印字典内容
然后,通过字段id号去获取内容;
isss=jira.issue('APPBUG-486',fields='summary,deio,customfield_10216,customfield_10309,customfield_10428')
print isss.fields.customfield_10216#获取自定义字段的内容
通过对项目缺陷统计,可以统计开发人员的人均缺陷数,容易发现缺陷率、严重缺陷率、缺陷打回率、缺陷验证率、不规范缺陷数等等。通过这些数据可以量化的去评估开发和测试的工作量,同时可以间接的反应项目的质量情况。
以上就是用python获取jira信息的所有内容,如果你的团队也在用jira,快用python自己写个统计脚本,看看你的项目数据吧,最后欢迎大家在飞测这个平台来交流学习 ,进步!返回搜狐,查看更多
责任编辑: