ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Jira测试管理插件Xray:用例资产化与自动化回传实战

Jira测试管理插件Xray:用例资产化与自动化回传实战 测试用例躺在共享盘里谁改过哪一条全靠聊天记录考古这种状态我待过整整三年。后来团队迁到 Jira缺陷归了位用例却还留在 Excel需求一改就没人说得清该重跑哪些。Xray就是补这个窟窿的——它是挂在 Jira 上的测试管理插件把用例、前置条件、测试集、测试计划、执行记录全部变成 Jira 里的原生问题类型与结构化数据让需求—用例—执行—缺陷这条链路第一次能被一条 JQL 串起来。这篇内容讲的是 Jira 生态里那个测试管理方向的 Xray不是别的同名东西别搞混了。我会从应用市场安装、项目级配置、用例资产化、计划与执行、覆盖率报表、自动化结果回传一路讲到实际踩过的坑。适合已经用 Jira 管需求、但测试环节还在裸奔的测试同学和项目负责人也适合刚接手测试平台建设的研发同学照着抄。1. 先想清楚 Xray 在 Jira 生态里补的是哪块拼图1.1 它到底把什么变成了可查询的数据很多人第一次打开 Xray看到一堆新问题类型就懵了觉得不过是给 Jira 加了几张表。真正的价值不在界面上而在于测试活动从文档变成了数据。在 Excel 时代一条用例就是一行文本在 Xray 里一条用例是一个 Jira 问题Test它有自己的键值、负责人、标签、组件、关联需求、执行历史。这意味着你可以用 JQL 去查某需求下所有标记为手动的、最近一次执行失败且没有被修复的用例——这句话在 Excel 里没法用一条语句表达在 Xray 里就是几行查询条件。再往深一层看Xray 把测试拆成了几个互相咬合的实体Test 描述要测什么Pre-Condition 描述测之前环境要满足什么Test Set 是一批用例的逻辑归组Test Plan 是一次测试活动的范围与策略Test Execution 是一次具体执行的容器Test Run 则是容器里每一条用例的单次结果。这套模型的精妙之处在于用例是长期资产执行是短期快照两者分开存储所以同一条用例可以挂在一百次执行记录下面历史趋势才跑得出来。1.2 三类团队收益差异很大不是所有团队装上 Xray 都立刻见效。我的观察是收益差距非常大需求频繁变更的产品团队收益最高。需求条目和用例之间建立关联之后需求变更时可以直接看受影响用例清单回归范围不用靠人肉回忆。有自动化流水线但结果散落的团队收益次高。自动化报告统一回传到 Xray 之后手工和自动的结果能放在同一张执行记录里看覆盖率口径才统一。纯粹为了应付审计、流程一年不变的团队收益有限。这种情况下安装和培训成本可能几个月都收不回来反而多了一套要维护的数据。判断标准很简单过去一个季度里你们有没有出现过上线后才发现某条老用例没跑的情况如果有三次以上Xray 值得上。1.3 与 Excel、独立测试平台的取舍我把三条路线拉平对比如下方便你做决策维度Excel / 共享文档独立测试管理平台XrayJira 插件需求关联手工贴链接易失效需二次集成原生问题链接随需求走缺陷闭环手工复制粘贴需配置同步执行失败一键提 Bug 并回填结果执行历史一堆版本文件有但独立库每次执行一条记录可 JQL 查权限与账号靠文件夹权限独立账号体系复用 Jira 用户与权限方案自动化结果手工汇总需定制对接官方 REST API 常见 CI 插件主要短板无结构、无追溯双系统维护成本高依赖 Jira 版本与许可档位表格里最后一行的短板是真实存在的选型时不要只看优点。如果团队本身对 Jira 依赖很浅硬上 Xray 会变成为了插件而用 Jira得不偿失。2. 安装与初始化从应用市场装到第一个项目能跑通2.1 版本与许可模式怎么选Xray 在 Jira 应用市场里是按用户数分级收费的商业插件通常提供试用期默认 30 天部分情况下可申请延长试用期内功能是全开的包括自动化导入与高级报表。我的建议是别拿生产项目做试用单独开一个测试项目把真实的用例导入进去跑两周再决定是否采购。版本这块要注意 Jira 的部署形态。云端版和 Data Center 版的安装路径、配置项位置、API 的基础地址都不一样很多网上抄来的教程在你环境里跑不通就是因为混用了两种部署形态的截图。安装前先在「管理」里确认三件事Jira 版本号、部署形态、当前登录账号是否有管理应用权限。这三条不满足后面全是白折腾。2.2 安装与项目启用的完整顺序顺序错了会出现装完了却找不到入口的假象这是我见过最多的第一次使用翻车点。正确顺序是用系统管理员账号进入应用管理页面搜索 Xray 并安装等待状态变成已启用。安装完成后刷新页面Xray 会为所有项目自动开启但部分项目类型尤其是自定义工作流较重的业务项目需要手动检查问题类型是否被正确加入问题类型方案。进入目标项目打开项目设置找到 Xray 相关配置区确认测试相关的问题类型在该项目中可用。给项目成员分配权限普通测试人员至少需要浏览项目、创建问题、编辑问题、链接问题这四项能改项目级配置的只有拥有管理项目权限的人。用普通测试账号登录尝试创建一条 Test 问题成功即代表最小闭环打通。注意第 2 步里问题类型方案是最容易被忽略的环节。如果项目用的是自定义问题类型方案而没有把 Test、Test Execution 等类型加进去界面上会出现菜单存在但无法创建的情况看起来像权限问题其实不是。2.3 项目级设置里必须提前定的四件事这四件事如果边用边改后期迁移成本极高建议在正式录入用例之前一次性定好第一件测试类型Test Types。常见大类是手工、Gherkin、通用、自动化。测试类型决定了这条用例的字段结构和导入方式后期改类型会导致步骤数据丢失所以要一次想清楚。我一般只保留手工和Gherkin两类给业务测试用自动化留给 CI 回传的结果避免同事乱选。第二件测试步骤字段。默认的步骤结构是操作 / 数据 / 预期结果三列如果需要记录前置数据准备脚本或断言表达式就在项目设置里加自定义列。加的列越多录入越慢我的经验是不超过四列超过就说明这条用例粒度太粗应该拆。第三件测试环境Test Environments。这是最被低估的一块。环境值一旦在几百条执行记录里用了几种不同写法比如Chrome120和chrome 120后期按环境统计失败率就废了。建议提前把环境按系统 分辨率 浏览器版本的格式固定下来例如Windows11-Chrome124-1920x1080谁都不许自由发挥。第四件测试状态Test Statuses。默认会有待办、执行中、通过、失败、中止这几个。要点是每个状态都有是否为最终状态的标记这个标记直接决定覆盖率报表把哪些结果算作已执行。自定义状态可以加比如阻塞但一定要想清楚它算不算最终状态否则报表会和你的直觉打架。2.4 装完当天就该做的验证清单配置完别急着大规模导入先花半小时做一次端到端验证用下面这份清单对着走创建一条 Test填两步步骤保存成功。创建一条 Test Execution把刚才的 Test 加进去执行一次并标记为通过。打开该 Test 的关联面板确认执行记录里能看到这次的 Test Run。随便建一个需求类问题用关联测试功能把 Test 挂上去确认覆盖率面板有数。从一次失败的 Test Run 里提一条缺陷确认新建的缺陷自动带上了用例键值和执行链接。用一条简单 JQL 查项目 xxx AND 类型 Test确认能列出刚才的用例。这六条走完你的环境才算是能用而不是装上了。3. 用例资产化Test、Pre-Condition、Test Set 的组织方式3.1 Test 问题类型的字段结构一条 Test 问题里真正有用的字段就那么几个摘要、测试类型、步骤、关联需求、标签、组件、优先级、负责人。摘要写什么非常关键——我见过太多团队写成登录功能测试一周之后就没人知道它到底测的是哪种登录。好的写法是手机号验证码登录-验证码错误三次锁定一句话就包含了场景和核心断言。步骤区是使用频率最高的区域也是最容易录成废话的地方。判断一条步骤是否合格的土办法是换一个没参与过这个需求的人按步骤执行能不能得到同样的结论。如果做不到说明步骤里混进了隐含知识要么补上去要么承认这是探索性测试不该写进用例。3.2 手工步骤与 Gherkin 的取舍Gherkin 格式Given / When / Then看起来很美但不是所有团队都适合。我的分界线是这样的场景推荐格式原因业务流程长、参与人多的验收测试Gherkin业务方能读懂评审效率高界面细碎、数据依赖强的功能测试手工步骤写成 Gherkin 会变成嵌套从句地狱准备接自动化的核心用例Gherkin后续转自动化脚本成本低一次性探索性记录手工步骤不必过度设计实际操作中我见过最舒服的配置是两条腿走路核心业务流用 Gherkin界面细节用手工步骤两者都能挂到同一个 Test Execution 里。不要试图统一成一种那会让某一类用例的录入变成负担。3.3 Test Repository 目录树与命名规范Xray 的用例目录树是整个插件里最像文件管理器的部分也是长期使用后最容易变垃圾场的部分。我的规范是三层最多四层业务域 → 功能模块 → 场景类型。例如订单 / 下单 / 异常流。命名上我强烈建议不要在目录名里写版本号和日期。目录是长期结构版本信息应该用标签Label表达比如给一批用例打上v2.3-回归。目录里塞版本号的结果就是第二年你有十七个叫v1.x-下单的文件夹没法用也不想清理。还有一个具体技巧Test Set 和目录树别重复维护。目录树负责长期归类Test Set 负责临时打包比如这次热修的十二条用例。如果发现自己在目录树里按某一批来分文件夹那批就应该做成 Test Set。3.4 可复用步骤与参数化当同一个操作步骤在几十条用例里重复出现时复制粘贴会让维护成本爆炸——改一次登录流程要改四十条用例。Xray 支持在步骤库中维护可复用步骤我的做法是把进入后台并登录管理员账号清空购物车这类高频动作抽成复用步骤。在具体用例里引用而不是重新写一遍。参数化的部分账号、商品编号放在步骤的数据列里不要嵌在操作描述里。实操中的一个坑是复用步骤一旦被大量引用修改前必须查引用范围。建议修改前用 JQL 或步骤库的引用视图确认影响面否则一次顺手优化就能改乱几十条用例的执行预期。4. 计划与执行Test Plan、Test Execution、Test Run 的关系别搞反4.1 三层结构各自解决什么问题这是新手最容易糊掉的部分。我用一个类比说清楚Test Plan 是这次考试的科目和考场Test Execution 是某个考场的某一场考试Test Run 是某个考生某道题的得分。Test Plan回答的是范围问题这个版本要跑哪些用例、在哪些环境跑、谁负责。它上面可以挂多个 Test Execution。Test Execution回答的是记录问题一次具体执行里每条用例的结果、执行人、时间、缺陷。Test Run是执行记录里的最小单位对应一条用例在某个环境下的一次结果。搞反的典型症状是所有用例直接挂在 Test Plan 上执行结果一个版本要重跑三次的时候历史结果全糊在一起没有办法区分第一次跑失败、修完之后第二次通过。每次执行必须新建一个 Test Execution这是纪律问题不是技术问题。4.2 用例的 Issue Status 与 Test Run Status 是两回事这是我在团队里讲了无数遍的知识点。一条 Test 问题本身有 Jira 工作流状态比如草稿 / 待评审 / 可用 / 已废弃而它每次执行又有一个执行结果状态比如通过 / 失败 / 中止。**前者描述用例本身的成熟度后者描述本次执行的质量。**一条状态为可用的用例某次执行结果完全可以是失败一条结果通过的用例也可能因为业务下线而被标记为已废弃。把这两者混起来用会出现用例失败了就把用例状态改成失败这种操作三个月后你的用例库全是被污染的状态没法判断哪些用例还值得维护。我建议在项目工作流里把这两个维度的命名刻意区分开比如问题状态用待完善 / 已评审 / 生效 / 已失效执行状态用通过 / 失败 / 阻塞 / 中止从命名上就不给人混淆的机会。4.3 失败后一键提缺陷与字段回填Xray 最提效的功能之一是失败结果的缺陷联动。操作路径是在一次执行里把某条用例标记为失败系统会弹出创建缺陷的入口新建的缺陷会自动带上执行记录链接、用例键值、当前环境。为了让它更好用建议提前做两件事在缺陷类型里加上发现阶段测试环境关联执行这类字段并在创建界面里配置成必填或默认值。让执行结果和缺陷状态做弱联动——比如缺陷关闭后提示是否需要重跑该用例。不要做成强制联动否则开发批量关缺陷的时候会触发一堆无意义的执行记录。提示回填字段时最容易漏的是实际结果。很多团队把失败原因写在缺陷描述里执行记录里却空着导致后面做失败原因分析时只能一条条点开缺陷看报表根本没法聚合。4.4 回归筛选的 JQL 套路回归测试范围怎么定是测试管理者每周都要面对的问题。用 JQL 可以搭出几条很实用的查询-- 某需求下所有生效状态的测试用例 project DEMO AND issuetype Test AND issue in linkedIssues(DEMO-123, is tested by) AND status 生效 -- 最近一轮执行中失败或阻塞的用例 project DEMO AND issuetype Test AND issue in testExecutionTests(DEMO-456, FAILED) -- 标了高风险标签且三个月没被执行过的用例 project DEMO AND issuetype Test AND labels high-risk AND issue not in testExecutionTests(*, PASSED, 90d)第三条在实际环境下语法可能要按你的版本调整思路是用最近未执行来反查过期用例。这条查询救过我一次——它在一次版本发布前找出了四十多条半年没跑过、但业务上仍然在用的老用例。5. 覆盖率与自动化回传报表读法 CI 落地5.1 覆盖率的三种口径先对齐再谈数字覆盖率这个词在 Xray 里有至少三种算法团队内部不先说清楚数字就会变成吵架的素材需求覆盖率有多少需求条目关联了至少一条测试用例。它只回答有没有人管不回答测得够不够。执行覆盖率在某次 Test Execution 里有多少条用例被执行了有最终状态。它回答这一轮跑了多少。通过覆盖率执行结果里通过的比例。它回答这轮跑得怎么样。我见过最典型的误用是拿需求覆盖率当质量指标向上汇报结果数字长期漂亮线上照样出事。**需求覆盖率是工作完成的检查项不是质量结论。**真正要盯的是执行覆盖率乘以通过覆盖率之后的综合情况以及失败用例的缺陷闭环率。5.2 REST API 导入自动化结果自动化结果回传是 Xray 真正发挥价值的地方。核心思路是CI 跑完测试生成标准格式的结果文件JUnit XML、Cucumber JSON 等调用 Xray 的接口把结果导入成一条 Test Execution。下面是一段可以直接改成你环境参数的命令行示例curl -X POST \ -H Authorization: Bearer ${JIRA_TOKEN} \ -F filetarget/surefire-reports/junit.xml \ https://jira.your-domain.com/rest/raven/1.0/import/execution/junit?projectKeyDEMOtestExecKeyDEMO-456几个关键参数说明projectKey决定结果归到哪个项目testExecKey指定已有执行记录时表示把结果合并进去不传则自动新建一条执行记录文件格式决定了 Xray 用哪套解析规则格式和接口路径必须匹配用 JUnit 文件打 Cucumber 的接口是最常见的 400 报错来源。如果需要先批量创建用例再回传结果可以走测试导入接口字段结构通常是摘要、步骤、类型这几列具体字段名以你版本的导入模板为准。建议先用官方模板导出一次空模板按模板填数据比自己猜列名快得多。5.3 Jenkins 与 GitLab 里的最小可用集成Jenkins 环境下官方提供了对应插件在流水线里加一个结果导入步骤即可需要配置服务器地址、凭据、项目键值和结果文件路径。G
返回列表