Python与Jira的搭配使用详解(1)

本文介绍了如何使用Python连接和操作Jira进行项目管理,包括通过Python的Jira库进行基本认证、创建缺陷,以及读取Excel数据批量创建问题。文章详细讲解了环境配置、登录方法,并展示了读取Excel数据到Jira的示例代码。
摘要由CSDN通过智能技术生成

一、Jira的介绍

Jira是一款项目管理工具,项目负责人可以创建项目、管理项目,测试人员可以在上面提交缺陷,开发人员也可以查看自己的缺陷、处理缺陷。同时Jira还支持导出功能和数据统计功能,但是对于一些复杂的数据统计和详细的用例信息导出Excel还是不能很好的满足,因此本文着重介绍Python使用Jira的接口来进行数据统计和用例导出的功能。

二、Jira配置

2.1 环境配置

由于使用Python操作Jira网上也有成熟的模块,在这里我们直接安装对应的包就行。在dos窗口输入如下命令就行。

pip install jira

使用pip list可以查看是否安装上。在dos窗口输入命令。可以看到已经安装上了。
在这里插入图片描述

三、 Python连接Jira

官网提供了4种认证方式:
Cookie Based Authentication(用户名、密码)
HTTP BASIC(用户名、密码)
OAuth
Kerberos
本次介绍前两种登录方式为例子。后面两种待研究后,再次补充。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 2023/1/6 21:10
# Author : AldRichxm
# File   : JiraLogin.py

#导入jira工具类
from jira import JIRA

#写的公共类登录方法
class Public(object):

    def __init__(self,server,username,passsword):
        """
        :param server: 你的jira服务器的网址
        :param username: 你的jira的登录账号
        :param passsword: 你的jira的登录密码
        """
        self.server = server
        self.auth_way = (username,passsword)   #组装登录验证所需要的元组

    def basic_auth(self):
        """
        http basic验证
        :return: 返回登录成功后的jira对象,以后的BUG操作都需要通过这个对象来进行操作
        """
        jira_obj = JIRA(self.server,basic_auth=self.auth_way)
        return jira_obj

    def auth(self):
        """
        cookie方式验证。
        :return: 返回登录成功后的jira对象,以后的BUG操作都需要通过这个对象来进行操作
        """
        jira_obj = JIRA(self.server,auth=self.auth_way)
        return jira_obj

3.1 Python向JIra写入BUG

本次写入BUG会使用xlrd读取Excel文件的并封装数据。并使用方法向Jira里面写入bug。
Excel读取方法具体见代码。(缺陷类型有可能是英文的Bug)
缺陷类型有可能是英文的Bug

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 2023/1/6 21:59
# Author : AldRichxm
# File   : ManageExcel.py

import xlrd

class ExcelApi(object):

    def __init__(self):
        """
        设置一个列表存储bug字典,并初始化执行读取Excel的方法
        """
        self.bug_list = []
        self.readExcel()

    def readExcel(self,path = "../data/bug.xlsx"):
        """
        :param path: 你的bug数据的相对位置
        :return: 
        """
        wb = xlrd.open_workbook(filename=path)
        sheet = wb.sheet_by_index(0)
        rows = sheet.nrows
        key = sheet.row_values(0)
        for i in range(1,rows):
            value = [{"key":sheet.cell_value(i,0)},
                     {"name":sheet.cell_value(i,1)},
                     sheet.cell_value(i,2),
                     sheet.cell_value(i,3),
                     {"name":sheet.cell_value(i,4)}
                     ]
            self.bug_list.append(dict(zip(key,value)))

数据封装好之后,我们采用以下方法向Jira里面写入数据、插入附件、插入评论、更新评论、以及删除评论。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 2023/1/6 21:36
# Author : AldRichxm
# File   : IssuesApi.py

from JiraApi.Common.JiraLogin import Public
from JiraApi.tools.ManageExcel import ExcelApi

class IssuesCreate(object):

    def __init__(self):
        self.jira = Public().auth()
        
    def createIssue(self,issue_attributes):
        """
        :param issue_attributes: 传入issue的封装好的数据,这个方法只能单次录入
        :return: 返回issue_id
        """
        issue_id = self.jira.create_issue(issue_attributes)
        return issue_id
    def createIssues(self,issue_attributes):
        """
        :param issue_attributes: 传入issue的封装好的数据,这个方法可以批量录入
        :return:返回issue_id列表
        """
        issue_id = self.jira.create_issues(issue_attributes)
        return issue_id

    def add_attachment(self,issue_id,path,filename):
        """
        :param issue_id: issue_id
        :param path: 附件路径
        :param filename: 附件名字
        :return: 
        """
        self.jira.add_attachment(issue_id, attachment=path, filename=filename)

    def add_comment(self,issue_id,value):
        """
        :param issue_id: issue_id
        :param value: 评论内容
        :return: 
        """
        comment = self.jira.add_comment(issue_id, body=value)  # 此方法可以给录入的issue添加评论
        #comment.update(body=value)   #此处是更新评论内容,可以注释掉

    def update_comment(self,issue_id):
        """
        :param issue_id: issue_id
        :return: 
        """
        comment_list = self.jira.comments(issue_id)   #此处获取单个issue所有的评论列表
        commentid = self.jira.comment(issue_id,comment_id=comment_list[0])  #获取任意一条评论id,具体分析
        commentid.update(body="hhhh")  #更新评论内容

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值