您的位置 首页 > 腾讯云社区

Python操作Jira提交BUG---橙子探索测试

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方式认证。

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数据

# 访问权限的项目列表 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数据

#问题的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

#经办人 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(): 添加附件

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(): 转换问题

# 创建问题 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

# 提交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) ---来自腾讯云社区的---橙子探索测试

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: