Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python操作Jira提交BUG

Python操作Jira提交BUG

作者头像
王大力测试进阶之路
发布于 2020-05-28 14:59:11
发布于 2020-05-28 14:59:11
2.6K00
代码可运行
举报
文章被收录于专栏:橙子探索测试橙子探索测试
运行总次数:0
代码可运行

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

jira Python文档https://jira.readthedocs.io/en/latest/

安装:pip install jira

认证:Jira的访问是有权限的,在访问Jira项目时首先要进行认证,Jira Python库提供了3种认证方式:

通过Cookis方式认证(用户名,密码)

通过Basic Auth方式认证(用户名,密码)

通过OAuth方式认证

认证方式只需要选择一种即可,以下代码为使用Cookies方式认证。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from jira import JIRA
jira=JIRA(server='http://jira.xxx.com/jira',auth=('账号','密码'))

返回的jira对象便可以对Jira进行操作:

项目(Project)

项目对象的主要属性及方法如下:

key: 项目的Key

name: 项目名称

description: 项目描述

lead: 项目负责人

projectCategory: 项目分类

components: 项目组件

versions: 项目中的版本

raw: 项目的原始API数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 访问权限的项目列表
print(jira.projects())
 
# 项目key
print(jira.project("KB").key)
 
# 项目名称
print(jira.project("KB").name)
 
# 项目描述
print(jira.project("KB").description)
 
# 项目负责人
print(jira.project("KB").lead)
 
# 项目模块
print(jira.project("KB").components)
 
# 项目版本
print(jira.project("KB").versions)
 
# 项目的原始API数据
print(jira.project("KB").raw)

问题(Issue)

Issue是Jira的核心,Jira中的任务,用户Story,Bug实质上都是一个Issue。

单个问题对象可以通过jira.issue("问题的Key")得到,问题的主要属性和方法如下:

id: 问题的id

key: 问题的Key

permalink(): 获取问题连接

fields: 问题的描述,创建时间等所有的配置域

raw: 问题的原始API数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#问题的id
print(jira.issue('KB-18900').id)
 
#问题的Key
print(jira.issue('KB-18900').key)
 
#问题的描述,创建时间等所有的配置域
print(jira.issue('KB-18900').permalink())
 
#问题的原始API数据
print(jira.issue('KB-18900').raw)

配置域(Fields)

一般问题的ields中的属性分为固定属性和自定义属性,自定义属性格式一般为类似customfield_10012这种。常用的问题的Fields有:

assignee:经办人

created: 创建时间

creator: 创建人

labels: 标签

priority: 优先级

progress:

project: 所示项目

reporter: 报告人

status: 状态

summary: 问题描述

worklog: 活动日志

updated: 更新时间

watches: 关注者

comments: 评论

resolution: 解决方案

subtasks: 子任务

issuelinks: 连接问题

lastViewed: 最近查看时间

attachment

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#经办人
print(jira.issue('CB-18900').fields.assignee)
 
#创建人
print(jira.issue('CB-18900').fields.creator)
 
#报告人
print(jira.issue('CB-18900').fields.reporter)
 
#责任人
print(jira.issue('CB-18900').fields.customfield_10316)
 
#创建时间
print(jira.issue('CB-18900').fields.created)
 
#标签
print(jira.issue('CB-18900').fields.labels)
 
#优先级
print(jira.issue('CB-18900').fields.priority)
 
#问题类型
print(jira.issue('CB-18900').fields.issuetype)
 
#所示项目
print(jira.issue('CB-18900').fields.project)
 
#状态
print(jira.issue('CB-18900').fields.status)
 
#问题描述
print(jira.issue('CB-18900').fields.summary)
 
#活动日志
print(jira.issue('CB-18900').fields.worklog)
 
#更新时间
print(jira.issue('CB-18900').fields.updated)
 
#关注着
print(jira.issue('CB-18900').fields.watches)

关注者/评论/附件

jira.watchers(): 问题的关注者

jira.add_watcher(): 添加关注者

jira.remove_watcher(): 移除关注者

jira.comments(): 问题的所有评论

jira.comment(): 某条评论

jira.add_comment():添加评论

comment.update()/delete(): 更新/删除评论

jira.add_attachment(): 添加附件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
issue = jira.issue('JRA-1330')
 
print(jiaa.watchers(issue)) # 所有关注者
jira.add_watcher(issue, 'username') # 添加关注者
 
print(jira.comments(issue)) # 所有评论
comment = jira.comment(issue, '10234') # 某条评论
jira.add_comment(issue, 'new comment') # 新增评论
comment.update(body='update comment') # 更新评论
comment.delete() # 删除该评论
 
print(issue.fields.attachment) # 问题附件
jira.add_attachment(issue=issue, attachment='/some/path/attachment.txt') # 添加附件

创建/分配/转换问题

jira.create_issue(): 创建问题

jira.create_issues(): 批量创建问题

jira.assign_issue(): 分配问题

jira.transitions(): 获取问题的工作流

jira.transition_issue(): 转换问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建问题
issue_dict = {
  'project': {'id': 123},
  'summary': 'New issue from jira-python',
  'description': 'Look into this one',
  'issuetype': {'name': 'Bug'},
}
new_issue = jira.create_issue(fields=issue_dict)
 
# 批量创建问题
issue_list = [
{
  'project': {'id': 123},
  'summary': 'First issue of many',
  'description': 'Look into this one',
  'issuetype': {'name': 'Bug'},
},
{
  'project': {'key': 'FOO'},
  'summary': 'Second issue',
  'description': 'Another one',
  'issuetype': {'name': 'Bug'},
},
{
  'project': {'name': 'Bar'},
  'summary': 'Last issue',
  'description': 'Final issue of batch.',
  'issuetype': {'name': 'Bug'},
}]
issues = jira.create_issues(field_list=issue_list)
 
# 分配问题
jira.assign_issue(issue, 'newassignee')
 
# 转换问题
jira.transition_issue(issue, '5', assignee={'name': 'pm_user'}, resolution={'id': '3'})

提交bug

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 提交BUG
issue_dict = {
  'project': {'id': 10202},#项目id
  'summary': '测试',#BUG概要
  'description': '测试',#BUG详情
   'priority': {'name':'Low'},#bug优先级
  'assignee':{'name':'chengzi@x.com'},#分配人
  'customfield_10316':{'name':'chengzi@x.com'},#责任人
  'labels': ['大大项目'],#所属项目
  'issuetype': {'id': 10004}#问题类型-故障
}
new_issue = jira.create_issue(issue_dict)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
jira-api使用(下)
但在有一个地方存在差异,假设实现API,将获取到的issue信息作为json格式返回时,reporter不带displayname的做法会报错。
陈不成i
2021/07/05
1.5K0
python + jira模块基本用法
安装jira easy_install jira 导入jira from jira import JIRA 和jira服务器建立连接 jira = JIRA('http://localhost/jira/',basic_auth=('username', 'password')) 创建issue issue_dict= { 'project': {'id': 11107}, 'summary': 'issue概要', 'description': 'issue描述\n第二行',
py3study
2020/01/08
2.3K0
质量看板开发实践(一):利用python获取jira数据-基础篇
最近一段时间,写了一个简易的测试质量看板,能够从不同维度查看缺陷分布情况;另外由于公司用的jira,所以也汇总了故事卡以及每个人的故事点情况
冰霜
2022/04/04
2.9K1
Python如何查看对象的属性(函数、变量等)
JIRA是一个缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件,开发者是澳大利亚的Atlassian。JIRA这个名字并不是一个缩写,而是截取自“Gojira”,日文的哥斯拉发音。在使用python调用testlink数据时,使用第三方模jira,获取jira数据。 在jira官网有一段描述如下:
用户1392128
2024/01/08
3180
Python如何查看对象的属性(函数、变量等)
Jira API的踩坑记
我本来是想写篇文章,吐槽一下jira的api的,但是发现最终jira api,很多地方又让我学到了一些新知识。有些方面真的是没见过这么标准使用的。可能是我之前孤陋寡闻啦,所以本文的内容不仅仅是讲jira的坑, 还有一些是jira本身优良的品性,不仅让我学到了一些知识,也让我对规范有了新的理解。本文的内容算是对我最近这段时间以来对接jira API的经验总结,希望能对各位有所帮助。
FunTester
2021/09/14
1.5K4
Java连接Jira,创建、修改、删除工单信息
还不了解Jira是什么的同学可以看一下这篇文章:https://www.cnblogs.com/wgblog-code/p/11750767.html
说故事的五公子
2019/10/29
3.2K0
质量看板开发实践(四):按照bug优先级、状态绘制饼图
上一篇完成了按照日期范围查询bug的柱状图,本篇承接前面的内容,绘制2个柱状图,分别按照bug优先级和bug状态进行统计
冰霜
2022/04/07
5190
jira-api使用(上)
在jira操作中有些联动需求,例如需要查询一些数据并展示,在自带的筛选器中只能做单项操作,没法将多种查询进行自定义展示。通过API将查询结果进行自定义编排展示。
陈不成i
2021/07/05
9540
Python快速使用jira模块调用Jira接口
JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域.
Python碎片公众号
2021/02/26
4.6K1
Python快速使用jira模块调用Jira接口
使用Jiralert实现AlertManager告警对接Jira
Alertmanager[1] 处理由客户端应用程序(如 Prometheus server)发送的警报。它负责去重(deduplicating),分组(grouping),并将它们路由(routing)到正确的接收器(receiver)集成,如电子邮件,微信,或钉钉。它还负责处理警报的静默/屏蔽(silencing)、定时发送/不发送(Mute)和抑制(inhibition)问题。
东风微鸣
2022/12/01
1.1K0
使用Jiralert实现AlertManager告警对接Jira
实战 | 如何用 Python 统计 Jira 数据并可视化
目前公司使用 Jira 作为项目管理工具,在每一次迭代完成后的复盘会上,我们都需要针对本次迭代的 Bug 进行数据统计,以帮助管理层能更直观的了解研发的代码质量
AirPython
2022/09/28
1K0
jira webhook 事件触发并程序代码调用jenkins接口触发构建操作
开发管理工具触发站点构建事件,事件处理中需要调用Jenkins接口开始构建动作。 我的应用场景: 使用jira作为管理工具,在jira中创建自定义的工作流来规定测试,上线,发布等流程,并通过自动化工具完成这一系列的操作。
旺财的城堡
2018/11/20
4.1K0
一起吐槽接口文档
最近对接了几个测试管理平台的接口文档,自己也更新了DCS_FunTester分布式性能测试框架的接口文档,总地来说,感触良多。
FunTester
2021/09/14
3870
jira webhook发消息_jenkins webhook
为了能够接收webhook事件,你的插件需要在它的JSON装饰器中包含webhook模块的声明。这个声明包含了插件用于接收webhook事件的相对网址。换句话说,应用会发送一个HTTP POST给该资源来作为对应用事件的响应。处理POST的插件代码应该处理该消息中主体部分的几乎仍一个信息。每个发送给插件的webhook的POST也将会包含授权报头来允许插件来对请求消息进行验证。尤其是,JWT token能够被发现在HTTP报头的“Authentication”中。
全栈程序员站长
2022/11/17
2.5K0
质量看板开发实践(三):bug柱状图
el-date-picker组件也对应的有4种形式,当切换不同日期维度时,显示对应的日期组件
冰霜
2022/04/07
3.3K0
持续监控和反馈:优化反馈机制与改进流程
在现代运维中,持续监控和反馈是确保系统稳定性和性能的关键。然而,仅有监控是不够的,还需要建立有效的反馈机制和改进流程,确保监控数据能够转化为实际的改进措施。本文将详细介绍如何建立一个有效的反馈机制,以及如何通过改进流程优化系统性能和可靠性。
Echo_Wish
2024/11/01
2250
持续监控和反馈:优化反馈机制与改进流程
还在写日报?python来帮你
看到同事每天花很多时间来写测试报告,从jira里面总结数据,然后编辑各种格式,写成邮件发出来。虽然jira里面dashboard也可以看到一些,也能导出excel,但是管理人员不会去看,要看最终能得出结论的数据。 我都是每天自动发报告,通过自动调用jira接口,数据分析总结,生成报表,给自己发邮件,自己审核一下,就可以快速下班了。 先看看效果:
赵云龙龙
2019/10/22
1.4K0
还在写日报?python来帮你
DiscuzX2.5数据库字典
pre_common_admincp_cmenu – 后台菜单收藏表 title => ‘菜单名称’ url => ‘菜单地址’ sort => ’0′ COMMENT ‘菜单类型,备用’ displayorder => ‘显示顺序’ clicks => ’1′ COMMENT ‘点击数,备用’ uid => ‘添加用户’ dateline => ‘添加时间’ pre_common_admingroup – 管理组表 admingid => ‘所属管理员分组ID’ alloweditpost => ‘是否允
joshua317
2018/04/16
1.6K0
Jira自动化实践:基于Jenkins实现需求与代码基线关联
中文官网:https://www.atlassian.com/zh/software/jira
DevOps云学堂
2021/11/17
1.4K0
Jira自动化实践:基于Jenkins实现需求与代码基线关联
如何把jar包发布到中央仓库
1、在网站https://issues.sonatype.org/secure/Dashboard.jspa注册一个账号(请记住对应的账号和密码,之后需要用到)
BUG弄潮儿
2022/06/30
6910
如何把jar包发布到中央仓库
相关推荐
jira-api使用(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验