Jcgame

python强大的jira库介绍及使用方法

场景及简介自动化测试之后,发现的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': '一个模块'}],  #中括号不能少
}
            

常见问题实践效果

问题1:pip安装jira 提示tsl1版本过低

解决:升级python到2.7.11以上

问题2:暂时还没遇到

解决:遇到再说吧,可以去 我来翻--知否 提问

原创内容,欢迎转载


关于我们

生活千姿百态,难免有会觉得眼下过不去的坎,但也要明白,生命必须有裂缝,阳光才照得进来。

一生一世一双人,半醉半醒半浮生

让我们更清楚地了解这个世界
友情链接
最新文章
团队创造的游戏
  • 消灭糖糖,微信小程序,欢迎扫码玩,第一版比较卡~

诗词精选

芦叶满汀洲

芦叶满汀洲,寒沙带浅流。二十年重过南楼。柳下系船犹未稳,能几日,又中秋。
黄鹤断矶头,故人今在否?旧江山浑是新愁。欲买桂花同载酒,终不似,少年游。