python操作jira使用指南

Jira简介

  Jira是一款功能非常强大的管理工具,广泛的用来 缺陷跟踪、用例管理、需求收集、任务跟踪、工时管理、项目计划管理等工作领域。所以使用这款产品的公司很多,这篇博客讲述在执行自动化测试用例过程中,将失败的用例自动在jira系统记录bug。

  提供了完善的RESTful API,如果不想直接请求API接口可以使用Python的Jira库来操作Jira。

 

官方文档

 

一、安装

# 安装第三方jira库
pip install jira

 

二、认证

官网提供了4种认证方式:

  • Cookie Based Authentication(用户名、密码)
  • HTTP BASIC(用户名、密码)
  • OAuth
  • Kerberos

我们选取一种认证方式即可,下文以HTTP BASIC为例:

# jira访问地址
server = 'http://jira.xxx.com.cn'
# 用户名密码以元祖的方式传递。uesrname、passwd填写真实的账号密码
jiraClinet = JIRA(server=server, basic_auth=('username', 'passwd'))

 

三、创建issue

 create_issue() 单个创建issue,传入参数是字典

 create_issues() 批量创建issues,传入参数是列表

# 创建单个issue
issue_dict = {
    # key 是项目空间的关键字,将issue记录到此空间
    'project': {'key': 'TOC'},
    'issuetype': {'name': 'Bug'},
    'summary': '测试自动提交',
    'description': '描述',
    'reporter': {'name': '007'},
    'assignee': {'name': '008'},
    # 'priority': {'id': 3},
    # 'customfield_10403':{'value':'研发中心'},
    # 'customfield_11349':{'value':'业务需求'}
}
# 返回 issueId
jiraClinet.create_issue(issue_dict)



#批量创建issues
issue_list = [{
    'project': {'key': 'TOC'},
    'issuetype': {'name': 'Bug'},
    'summary': '测试自动提交01',
    'description': '描述01',
    'reporter': {'name': '007'},
    'assignee': {'name': '008'},
},
{   
    'project': {'key': 'TOC'},
    'issuetype': {'name': 'Bug'},
    'summary': '测试自动提交02',
    'description': '描述02',
    'reporter': {'name': '007'},
    'assignee': {'name': '008'}
}]

# 返回 issue 列表
jiraClinet.create_issues(issue_list)

 

四、常用方法

 JIRA类提供了很多方法,这里介绍几个常用的

 1)查询 project

# 获取所有项目空间列表
jiraClinet.projects()

# 获取单个项目空间。参数为项目空间 id或key
# project = jiraClinet.project(100)
project = jiraClinet.project('xxx')

# 项目的 key
project.key

# 项目空间的 name
project.name

# 项目空间 description
project.description

# 项目空间 lead
project.lead

 

2)查询 issue

# 查询issue信息,传入参数issueId
issue = jiraClinet.issue('xxx-679')

# 问题的 key
issue.key

# 问题的 id
issue.id

# 问题的配置域
issue.fields

# 问题标题描述
issue.fields.summary

# 问题详细描述
issue.fields.description

# 问题的类型
issue.fields.issuetype

#问题报告者
issue.fields.reporter

 

3)使用“JQL语句”查询

# search_issues() 参数是 jira 里的JQL语句,返回一个 issue 列表。startAT 表示从第几个开始返回,maxResults=False 返回所有issues,默认固定返回50个数据。startAT 和 maxResults 可以实现分页查询效果。
issue_list = jiraClinet.search_issues('JQL语句',startAT=0,maxResults=False)

for issue in issue_list:
    # 打印每个 issue 的 key
    print(issue.key)

 

posted @ 2020-10-29 09:47  三只松鼠  阅读(7033)  评论(0编辑  收藏  举报