吾爱乐享
个人学习网站

Jira story与测试用例自动化关联脚本

title: Jira story与测试用例自动化关联脚本
tags: 
- jira 
categories:
- 学习语录

1. 引言

1.1 背景

在 Jira 项目管理体系下,手动关联 story 与测试用例工作繁琐且易出错,严重影响项目推进效率与数据准确性。为改善这一状况,开发了 Python 脚本,实现特定状态下 story 与测试用例的自动关联,旨在简化流程、降低人为失误,提升项目管理的整体效能。

1.2 目标

本技术文档旨在详细说明该自动关联功能的技术实现、使用方法、维护要点等,帮助技术人员及相关用户理解和运用该功能,确保其在项目中稳定运行。

2. 功能概述

2.1 自动关联机制

脚本能够实时监测 story 主任务状态,当状态转变为 “READY FOR PM” 或者 “已关闭” 等特定状态时,触发自动关联流程。它会依据设定的规则,精准匹配并建立与相关测试用例的关联,无需人工手动操作。

2.2 优势

  • 效率提升:大幅缩短关联 story 与测试用例的时间,让项目团队能将更多精力投入核心业务。

  • 准确性增强:减少人为关联可能产生的错误,保证数据一致性与完整性。

  • 便捷性:为后续的项目追踪、数据分析等工作提供清晰、连贯的数据链路,便于查看与管理。

3. 技术实现

def handle_issue_links(jira_instance, parent_issue_key):
    """
    处理指定主任务的关联链接,根据情况创建新的关联链接
    :param jira_instance: Jira实例
    :param parent_issue_key: 主任务的Key
    """
    if jira_instance is None:
        print("Jira实例未成功创建,请检查登录信息。")
        return
    try:
        parent_issue = jira_instance.issue(parent_issue_key)
        issue_links = parent_issue.fields.issuelinks
        if issue_links:
            print("关联链接信息:")
            has_test_link = False
            for link in issue_links:
                if hasattr(link, 'inwardIssue'):
                    if "is tested by" == link.type.inward:
                        has_test_link = True
                        break
            if not has_test_link:
                print(f"【{parent_issue_key}】没有关联测试用例,进行用例关联")
                jql_query = f"StoryId ~ {parent_issue_key} AND  type  =  测试用例 "
                issues = jira_instance.search_issues(jql_query)
                if issues:
                    for issue in issues:
                        issue_key = issue.key
                        try:
                            jira_instance.create_issue_link("is tested by", parent_issue_key, issue_key)
                            print(f"成功创建关联链接: {parent_issue_key} -> {issue_key}")
                        except JIRAError as e:
                            print(f"创建关联链接时出错: {e}")
                else:
                    print(f"{jql_query},没有找到StoryId为【{parent_issue_key}】的用例,请给对应用例关联storyId")
            else:
                print(f"【{parent_issue_key}】已经关联了用例无需再次关联")
        else:
            print("该Story没有关联链接。")
    except JIRAError as e:
        print(f"处理关联链接时出错: {e}")

3.2 函数逻辑详解

  1. 输入校验:首先判断jira_instance是否有效,若为空则输出错误提示并终止函数执行,确保后续操作基于正确的 Jira 连接。

  2. 获取主任务及关联链接:通过 Jira API 获取指定parent_issue_key对应的主任务及其已有的关联链接信息。

  3. 检查测试用例关联:遍历已有的关联链接,判断是否存在与测试用例的关联(依据链接类型is tested by)。

  4. 无关联时的操作:若未发现与测试用例的关联,构造 JQL 查询语句,查找与主任务相关的测试用例。若找到匹配用例,则逐一创建关联链接;若未找到,则输出提示信息,引导用户检查并关联。

  5. 已有关联时的操作:若已存在与测试用例的关联,直接输出提示,避免重复关联。

  6. 异常处理:在整个操作过程中,捕获可能出现的JIRAError异常,输出详细错误信息,方便定位与解决问题。

4. 安装与部署

4.1 环境要求

  • 操作系统:支持主流操作系统,如 Windows、Linux、macOS。

  • Python 版本:Python 3.6 及以上版本。

  • 依赖库:需安装jira库,可通过pip install jira命令进行安装。

4.2 配置说明

  1. Jira 连接配置:在脚本中需配置 Jira 服务器地址、用户名及密码,确保脚本能够正确连接到 Jira 平台。示例配置如下:
from jira import JIRA

jira_server = "https://your-jira-server-url"
jira_options = {'server': jira_server}
jira = JIRA(options=jira_options, basic_auth=('your-username', 'your-password'))
  1. 脚本部署:将编写好的 Python 脚本放置在合适的服务器环境中,确保脚本运行的用户具有访问 Jira 的权限,且能够执行相关操作。

5. 使用方法

  1. 启动脚本:在配置完成并确保环境正常后,通过命令行或定时任务等方式启动 Python 脚本,使其开始监测 story 主任务状态。

  2. 触发关联:当 story 主任务状态变更为设定的特定状态时,脚本会自动执行关联操作,无需人工干预。

  3. 结果查看:可在 Jira 平台中查看 story 与测试用例的关联结果,确保关联准确无误。若关联过程中出现问题,可查看脚本输出的日志信息进行排查。

6. 维护与故障排除

6.1 日常维护

  1. 定期检查:定期检查脚本运行状态,确保其持续稳定运行。可通过查看脚本日志、检查 Jira 平台中关联数据的准确性等方式进行。

  2. 版本更新:随着 Jira 平台或相关依赖库的更新,及时检查脚本兼容性,必要时进行代码更新与调试,确保功能正常。

6.2 常见故障及解决方法

  1. Jira 连接失败:检查 Jira 服务器地址、用户名、密码是否正确,网络连接是否正常。若服务器地址变更,需及时更新脚本中的配置信息。

  2. 关联错误:若出现关联错误,如关联的测试用例不正确或未成功关联,检查 JQL 查询语句是否准确,确保StoryId等字段与 Jira 项目中的实际配置一致。同时,查看脚本日志中是否有相关错误提示,根据提示进行排查与修复。

  3. 脚本运行异常:若脚本运行过程中出现异常终止,检查 Python 环境是否正常,依赖库是否完整。可通过运行简单的 Python 测试脚本来验证环境状态,若依赖库缺失,重新安装相关依赖库。

本文永久更新地址:

https://www.fenxiangbe.com/p/Jira story与测试用例自动化关联脚本.html

赞(0) 打赏
未经允许不得转载:吾爱乐享 » Jira story与测试用例自动化关联脚本

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏