Python用Jira库来操作Jira


Posted in Python onDecember 28, 2020

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 列表
issue_list = jiraClinet.search_issues('JQL语句')
for issue in issue_list:
  # 打印每个 issue 的 key
  print(issue.key)

以上就是Python用Jira库来操作Jira的详细内容,更多关于python 操作Jira的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python Django连接MySQL数据库做增删改查
Nov 07 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
简单谈谈Python的pycurl模块
Apr 07 Python
python pandas修改列属性的方法详解
Jun 09 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
Django中使用第三方登录的示例代码
Aug 20 Python
使用python实现名片管理系统
Jun 18 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
matplotlib之多边形选区(PolygonSelector)的使用
Feb 24 Python
python性能测试工具locust的使用
Dec 28 #Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 #Python
python字典与json转换的方法总结
Dec 28 #Python
python字典按照value排序方法
Dec 28 #Python
python Timer 类使用介绍
Dec 28 #Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 #Python
python获取天气接口给指定微信好友发天气预报
Dec 28 #Python
You might like
咖啡的化学
2021/03/03 咖啡文化
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
javascript回调函数详解
2018/02/06 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
支付宝小程序tabbar底部导航
2018/11/06 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
python 文件和路径操作函数小结
2009/11/23 Python
Python生成密码库功能示例
2017/05/23 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
Python pickle模块实现对象序列化
2019/11/22 Python
电台编导求职信
2014/05/06 职场文书
2014年基建工作总结
2014/12/12 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
汶川大地震感悟
2015/08/10 职场文书
感恩的心主题班会
2015/08/12 职场文书