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': '一个模块'}], #中括号不能少
}
原创内容,欢迎转载