python强大的jira库介绍及使用方法
posted on 2018-5-19 by wangyang thanks 我来翻,维基百科
场景及简介自动化测试之后,发现的bug怎么办?当然是需要自动的提交bug。python的jira库就可以让有这些想法的人轻松满足这一切。使用场景可以为selenium+jira的架构模式,在游戏行业也可以为网易airtest( git地址 )+游戏客户端+测试平台+jira的架构模式,即游戏客户端在自动化测试过程中,通过airtest发送bug等崩溃错误信息(也可以让debug模式下的游戏自动发送错误)到测试平台,测试平台收集bug和错误后,去重再发送到jira。当然,从excel导个bug到jira等等功能基本都可以通过jira的api实现。 文档地址:jira官方文档地址
使用方法使用2.7.10以上的jira版本安装pip install jira
#批量将bug上传jira
from jira import JIRA
class report_bugs(object):
def init_bugs(self):
issue_list = []
buginfo_result = gl.GL_DB.query(buginfo_sql) #buginfo_sql为数据库中每个错误的项目名,版本号,设备信息。
for info in buginfo_result:
issue = {
'project': {'key': jira_name}, #jira_name为项目在jira中的名字或者key
'summary': "[" + str(v5.1) + "]版本崩溃平台反馈bug", #标题
'description': str(info.dumpinfo)+"\n第二行" #缺陷描述,这里为崩溃内容
'issuetype': {'name': 'Bug'}, #类型,一般还有task等。
'assignee': {'name': wjc}, #bug被指向的人
'fixVersions': [{'name': "v1.0"}], #jira在项目下的版本号
}
issue_list.append(issue)
return issue_list
def POST(self):
issue_list = self.init_bugs()
jira = JIRA(server='http://192.168.8.108:8888', basic_auth=('wy', 'test')) #实例化jira对象
issues = jira.create_issues(field_list=issue_list) #提交bug 可以是list形式(推荐)
if(issues[0]['error']):
return issues[0]['error']
else:
return 0
常用api
修改bug
issue = jira.issue('JIRA-1000') #得知道bugid才行
issue.update(versions=[{"name":'V1.1'}])
issue.update(summary='Hello World', description='Hello World')
issue.update(assignee={'name': 'wjc'})
或者列表批量修改
issue_dict= {
'versions': '1.v',
'description': 'i描述\n第二行',
}
issue.update(fields=issue_dict)
查询bug,可以利用jira的jQL来查
issues_in_proj = jira.search_issues('project=test_PROJ and assignee = currentUser()')
#查询自己的bug(括号里是jira的系统里的筛选条件,复制过来就行)
for issue in jira.search_issues('reporter = currentUser() order by created desc', maxResults=3): #查询自己最后3个bug
print('{}: {}'.format(issue.key, issue.fields.summary))
创建issues时,部分可使用的方法
issue.fields.aggregateprogress issue.fields.aggregatetimeestimate issue.fields.aggregatetimeoriginalestimate issue.fields.aggregatetimespent issue.fields.assignee issue.fields.attachment issue.fields.comment issue.fields.components issue.fields.created issue.fields.issuetype issue.fields.labels issue.fields.priority issue.fields.progress issue.fields.project issue.fields.reporter issue.fields.resolution issue.fields.resolutiondate issue.fields.status issue.fields.subtasks issue.fields.summary issue.fields.timeestimate issue.fields.timeoriginalestimate issue.fields.timespent issue.fields.updated issue.fields.versions issue.fields.votes issue.fields.watches issue.fields.workratio issue.fields.description issue.fields.environment issue.fields.fixVersions issue.fields.issuelinks #创建bug时的用法 issue_dict= { 'priority': {'name': 'Major'}, 'fixVersions': [{'name': "v1.0"}], 'components':[{'name': '一个模块'}], #中括号不能少 }
原创内容,欢迎转载