TestRail中筛选自动化测试用例并添加到测试运行的教程

testrail中筛选自动化测试用例并添加到测试运行的教程

本教程详细介绍了如何通过TestRail API筛选出具有特定自定义字段(例如“可自动化”)的测试用例,并将其添加到现有的测试运行中。文章将分步指导如何使用get_cases API获取测试套件中的所有用例,解析JSON响应以识别符合条件的用例ID,然后利用update_run API将这些筛选出的用例精确地添加到指定的测试运行中,并提供相应的API请求示例和注意事项。

1. 概述

在TestRail中,我们经常需要根据特定的条件来管理和执行测试用例。一个常见的需求是,只将那些被标记为“可自动化”的测试用例添加到新的测试运行中。本教程将通过TestRail的RESTful API,演示如何实现这一目标。整个过程分为两个主要步骤:首先,从测试套件中筛选出符合条件的测试用例;其次,将这些筛选出的用例添加到指定的测试运行中。

2. 筛选测试用例:使用 get_cases API

要从TestRail套件中筛选出具有特定自定义字段(例如 custom_can_be_automated = true)的测试用例,我们需要使用 get_cases API 端点。

2.1 API 请求结构

get_cases 端点用于获取指定项目和测试套件中的所有测试用例。

GET index.php?/api/v2/get_cases/{project_id}&suite_id={suite_id}

{project_id}:你的TestRail项目ID。{suite_id}:你想要从中筛选用例的测试套件ID。

2.2 API 响应示例

执行上述查询后,TestRail会返回一个JSON格式的响应,其中包含测试套件中的所有用例及其详细信息。自定义字段通常以 custom_ 前缀命名。

"cases":[  {     "id":22478,     "title":"Test Case Steps (Text)",     "section_id":2347,     "template_id":1,     // ... 其他字段 ...     "suite_id":196,     "custom_automation_type":6,     "custom_can_be_automated":true, // 关注此自定义字段     "custom_preconds":"Test Case Step *TEXT* Precondition",     // ... 其他自定义字段 ...  },  {     "id":22494,     "title":"Automated Checkout",     "section_id":2347,     "template_id":9,     // ... 其他字段 ...     "suite_id":196,     "custom_automation_type":0,     "custom_can_be_automated":false, // 关注此自定义字段     "custom_preconds":null,     // ... 其他自定义字段 ...  }]

在上述响应中,我们可以看到 custom_can_be_automated 字段,它的值可以是 true 或 false。我们将根据这个字段来筛选用例。

2.3 筛选用例ID

获取到JSON响应后,你需要解析它并根据 custom_can_be_automated 字段的值来提取符合条件的用例ID。

使用 cURL 和 jq 进行筛选(示例)

如果你在命令行环境中使用 curl,可以结合 jq 工具来方便地解析和筛选JSON数据。

curl -H "Content-Type: application/json"      -u "$TESTRAIL_EMAIL:$TESTRAIL_PASS"      "$TESTRAIL_URL/index.php?/api/v2/get_cases/{project_id}&suite_id={suite_id}" |      jq '[.[] | select(.custom_can_be_automated == true) | .id]'

这个 curl 命令会:

向TestRail API发送 GET 请求,获取指定项目和套件的所有用例。通过 jq 管道,筛选出 custom_can_be_automated 值为 true 的用例。从筛选出的用例中,提取出它们的 id 字段,并输出一个包含所有符合条件ID的JSON数组。

在 JavaScript 环境中筛选

如果你在JavaScript中实现,你可以使用 fetch 或 axios 等库来发送HTTP请求,然后使用JavaScript的原生方法来解析和筛选JSON响应:

async function getAutomatedCaseIds(projectId, suiteId, testrailUrl, email, password) {  const auth = btoa(`${email}:${password}`); // Base64编码认证信息  const response = await fetch(`${testrailUrl}/index.php?/api/v2/get_cases/${projectId}&suite_id=${suiteId}`, {    method: 'GET',    headers: {      'Content-Type': 'application/json',      'Authorization': `Basic ${auth}`    }  });  if (!response.ok) {    throw new Error(`Error fetching cases: ${response.status} ${response.statusText}`);  }  const cases = await response.json();  const automatedCaseIds = cases    .filter(testCase => testCase.custom_can_be_automated === true)    .map(testCase => testCase.id);  return automatedCaseIds;}// 示例调用// getAutomatedCaseIds(1, 196, 'https://your-testrail-instance.testrail.io', 'your_email@example.com', 'your_password')//   .then(ids => console.log('Automated Case IDs:', ids))//   .catch(error => console.error(error));

3. 将筛选出的用例添加到测试运行:使用 update_run API

获取到符合条件的用例ID列表后,下一步就是将它们添加到指定的测试运行中。这可以通过 update_run API 端点实现。

3.1 API 请求结构

update_run 端点用于修改现有测试运行的属性,包括其包含的测试用例。

POST index.php?/api/v2/update_run/{run_id}

{run_id}:你想要更新的测试运行ID。

3.2 请求体结构

要添加特定的测试用例,请求体应包含 include_all 字段设置为 false,并提供一个 case_ids 数组,其中包含你想要添加的用例ID。

{  "include_all": false,  "case_ids": [1, 2, 3, 5, 8]}

重要提示: 根据TestRail API文档,当您希望指定要包含的特定测试用例时,include_all 必须设置为 false。如果 include_all 为 true,则 case_ids 字段将被忽略或用于排除用例(取决于TestRail版本和配置),这与我们仅添加特定用例的目标不符。

3.3 POST 请求示例

使用 cURL 进行 POST 请求

curl -X POST      "https://$TESTRAIL_URL/index.php?/api/v2/update_run/{run_id}"      -H "Content-Type: application/json"      -u "$TESTRAIL_EMAIL:$TESTRAIL_PASS"      -d '{"include_all": false, "case_ids": [22478, 22499, 22501]}'

在 JavaScript 环境中进行 POST 请求

async function addCasesToTestRun(runId, caseIds, testrailUrl, email, password) {  const auth = btoa(`${email}:${password}`); // Base64编码认证信息  const response = await fetch(`${testrailUrl}/index.php?/api/v2/update_run/${runId}`, {    method: 'POST',    headers: {      'Content-Type': 'application/json',      'Authorization': `Basic ${auth}`    },    body: JSON.stringify({      include_all: false,      case_ids: caseIds    })  });  if (!response.ok) {    throw new Error(`Error updating test run: ${response.status} ${response.statusText}`);  }  return response.json(); // 通常会返回更新后的run对象}// 示例调用// const automatedIds = [22478, 22499, 22501]; // 假设这是从getAutomatedCaseIds获取到的ID// addCasesToTestRun(123, automatedIds, 'https://your-testrail-instance.testrail.io', 'your_email@example.com', 'your_password')//   .then(run => console.log('Test Run updated successfully:', run))//   .catch(error => console.error(error));

3.4 成功确认

如果操作成功,TestRail API将返回一个状态码为 200 的响应,表示测试运行已成功更新。

4. 注意事项与总结

API 认证: 所有的API请求都需要进行认证。示例中使用了HTTP Basic Auth(邮箱和密码),你也可以使用TestRail提供的API Key进行认证,这通常更安全。自定义字段名称: TestRail中自定义字段的API名称通常以 custom_ 前缀开头。请确保你使用的字段名与TestRail中实际的自定义字段标识符一致。错误处理: 在实际应用中,务必对API响应进行错误检查。例如,检查HTTP状态码是否为 200,并处理可能的错误消息。语言适应性: 本教程提供了 curl 和 JavaScript 的示例。你可以根据你所使用的编程语言和HTTP客户端库,将这些示例适配到你的环境中。核心逻辑是发送正确的HTTP请求和解析JSON响应。API 速率限制: TestRail API可能有速率限制。在进行大量请求时,请注意控制请求频率,避免被服务器暂时阻止。

通过遵循上述步骤,你可以有效地利用TestRail API来自动化测试用例的管理流程,实现根据自定义字段筛选并添加到测试运行的需求,从而提高测试管理的效率和灵活性。

5. 参考链接

更新测试运行 (Update Run): https://www.php.cn/link/7966a1b638bd6906654fd9190feeb801获取测试用例 (Get Cases): https://www.php.cn/link/31beb41824b307d9f0deb076f8f9ee3b

以上就是TestRail中筛选自动化测试用例并添加到测试运行的教程的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1521909.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
在React中实现带有min/max限制的受控数字输入组件
上一篇 2025年12月20日 14:35:10
如何通过JavaScript实现滑动门效果?
下一篇 2025年12月20日 14:35:22

相关推荐

  • 如何修复电脑硬盘"

    如何修复电脑硬盘"如何修复电脑硬盘"如何修复电脑硬盘"如何修复电脑硬盘"

    最近有小伙伴在后台私信小编说,电脑硬盘坏了能不能修复,该如何修复电脑硬盘。因此,针对该问题,小编就马上跑来整理出来了一些相关于这个方面的内容,那么小伙伴下面就随小编一起来看看如何修复电脑硬盘的方法吧。 众所周知硬盘是电脑中一个非常重要的硬件设备,是电脑主要的存储媒介之一。不过最近有童鞋向小编反映说自…

    2026年9月25日 • 用户投稿
    100
  • sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程

    sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程sublime怎么配置PHP CS Fixer进行代码格式化_sublime使用PHP CS Fixer自动格式化代码教程

    首先安装PHP CS Fixer工具并将其放置于系统指定目录,确保PHP环境正常;接着在Sublime Text中通过Package Control安装PHP CS Fixer插件;然后在插件设置中配置php_cs_fixer_exec_path和php_path指向正确的PHAR文件和PHP可执行…

    2026年9月25日 • 用户投稿
    100
  • uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式

    uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式uc浏览器怎么添加书签到主页_UC浏览器将书签添加到首页快捷方式

    首先可通过书签管理长按添加,其次在浏览时点击菜单选择添加到桌面,最后部分版本可直接使用工具栏+按钮创建快捷方式。 如果您希望快速访问常用网站,可以通过将书签添加到UC浏览器主页来实现便捷操作。这一功能可以帮助您在启动浏览器时一键跳转至目标页面。 本文运行环境:小米14,Android 14 一、通过…

    2026年9月25日 • 用户投稿
    100
  • 使用 DynamoDBMapper 进行条件更新操作

    使用 DynamoDBMapper 进行条件更新操作使用 DynamoDBMapper 进行条件更新操作使用 DynamoDBMapper 进行条件更新操作使用 DynamoDBMapper 进行条件更新操作

    本文将介绍如何利用 DynamoDBMapper 在 Java 中执行基于当前值的条件更新操作,特别是使用 “ADD” 操作来递减账户余额。虽然 DynamoDBMapper 默认不支持直接使用更新表达式,但通过配置 SaveBehavior,可以实现类似的效果。 Dynam…

    2026年9月25日 • 用户投稿
    000
  • 大智慧app怎么清空缓存数据_大智慧app缓存数据清理步骤

    大智慧app怎么清空缓存数据_大智慧app缓存数据清理步骤大智慧app怎么清空缓存数据_大智慧app缓存数据清理步骤大智慧app怎么清空缓存数据_大智慧app缓存数据清理步骤大智慧app怎么清空缓存数据_大智慧app缓存数据清理步骤

    清理大智慧App缓存可提升运行效率,释放存储空间。首先可通过“我的”→“设置”→“缓存清理”清除临时文件;如需彻底清理,可进入“数据清除”选择“全部清除”,但会删除账户设置与交易记录;若仅需清除特定数据,可选“清除委托交易账户信息”进行精准操作。 如果您在使用大智慧App时遇到运行卡顿、加载缓慢或存…

    2026年9月25日 • 用户投稿
    000
  • 解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题

    解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题解决JavaFX应用导出为可运行JAR后FXMLLoader资源加载失败的问题

    本文旨在解决JavaFX应用在Eclipse中正常运行,但导出为可运行JAR包后,因FXMLLoader无法找到FXML资源文件而抛出IllegalStateException: Location is not set异常的问题。核心解决方案是调整FXMLLoader.setLocation()方法…

    2026年9月25日 • 用户投稿
    100
  • 如何结合其他工具使用Debian Sniffer

    如何结合其他工具使用Debian Sniffer如何结合其他工具使用Debian Sniffer如何结合其他工具使用Debian Sniffer如何结合其他工具使用Debian Sniffer

    图片: 虽然找不到关于“如何结合其他工具使用Debian Sniffer”的直接信息,但以下是一些关于Debian及其网络工具的实用信息,希望能帮助您更好地理解如何使用Debian进行网络分析: Debian是一个强大的Linux发行版,拥有丰富的网络工具。要有效地结合其他工具使用Debian Sn…

    2026年9月25日 • 用户投稿
    100
  • 快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型

    快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型快手 Kwaipilot 团队发布两款 KAT 系列 Agentic Coding 大模型

    快手 kwaipilot 团队近日推出了两款全新的 kat 系列 agentic coding 大模型,标志着在代码智能领域的重大突破:开源的 32b 参数模型 kat-dev-32b 以及闭源的旗舰级模型 kat-coder。 据悉,这两款模型在代码理解与生成方面分别展现了卓越的轻量化性能与顶级的…

    2026年9月25日 • 用户投稿
    200
  • 抖音店铺怎么举报商家和客服?抖音投诉商家入口

    抖音已成为众多消费者购物的首选之地。在享受便捷购物体验的消费者在抖音店铺购物过程中也时常会遇到一些问题,如商家发货慢、商品质量差、客服态度恶劣等。在这种情况下,如何有效举报商家和客服,维护自身权益成为了消费者关注的焦点。本文将为您详细解析抖音店铺举报流程,助您轻松维权。 一、抖音店铺举报的重要性 抖…

    2026年9月25日
    200
  • 洛可可输出全解析:三阶爆发与聚怪技巧详解

    在激烈的战斗中,洛可可宛如一位身姿翩跹却杀机暗藏的舞台主宰,她的输出节奏犹如一场精心策划的三幕戏剧。想要彻底释放她那毁天灭地的力量?只需遵循以下三大核心步骤,便能完美演绎属于她的高光时刻! 第一幕:想象力!能量的根基 洛可可一切力量的源头,皆源自“想象力”的积累——这股珍贵的能量是触发后续华丽连招的…

    2026年9月25日
    400
  • win11屏幕亮度调节不了怎么办_win11屏幕亮度无法调节解决方案

    1、更新显卡与显示器驱动可解决因驱动异常导致的亮度无法调节问题;2、通过修改注册表启用亮度接口能恢复系统对亮度控制的支持;3、关闭电源计划中的自适应亮度避免自动调整干扰;4、安装热键驱动并正确设置功能键模式以确保快捷键生效;5、运行SFC和DISM命令修复系统文件确保系统稳定性。 如果您发现Wind…

    2026年9月25日
    000
  • Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程

    Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程Chrome浏览器怎么设置最小字体大小_网页最小显示字体设置教程

    首先调整Chrome最小字体设置至12像素以上,其次可通过页面缩放或开发者工具临时修改字体大小以提升可读性。 如果您发现Chrome浏览器中某些网页的字体过小导致阅读困难,这可能是因为浏览器或网页本身设置了较小的最小字体限制。以下是解决此问题的步骤: 本文运行环境:Dell XPS 13,Windo…

    2026年9月25日 • 用户投稿
    100
  • sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法

    sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法sublime如何在新版本中找回旧版的功能 _sublime新版本找回旧功能方法

    答案:通过设置和插件可恢复Sublime Text旧版体验。1. 右键顶部或用命令面板启用菜单栏和工具栏;2. 安装PackageResourceViewer修改主题或切换为Default主题还原标签页样式;3. 在用户设置中添加参数关闭动画、显示边框、使用小图标以还原侧边栏;4. 设置&#8221…

    2026年9月25日 • 用户投稿
    000
  • Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​

    Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​Deepseek 满血版联合 Scribble Diffusion Pro,绘制专业级图像​

    使用deepseek满血版配合scribble diffusion pro可高效进行专业图像创作。1. scribble diffusion pro是基于草图生成高质量图像的插件,适合已有初步构图的创作者;2. deepseek提供更强文本理解与细节控制能力,提升风格、光影等描述精准度;3. 高效使…

    2026年9月25日 • 用户投稿
    200
  • 快手如何设置动态封面_快手动态封面设置的步骤与技巧

    快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧快手如何设置动态封面_快手动态封面设置的步骤与技巧

    1、可通过长按主页背景选择相册视频设置动态封面;2、需在通用设置中开启动态封面功能;3、也可从视频分享页点击动态壁纸快速应用。 如果您在快手个人主页希望展示更具吸引力的动态封面,以替代静态图片,可以通过特定步骤进行设置。该功能允许用户使用短视频作为主页背景,提升个性化展示效果。 本文运行环境:iPh…

    2026年9月25日 • 用户投稿
    200
  • win10电脑qq远程桌面连接不上的解决方法

    win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法win10电脑qq远程桌面连接不上的解决方法

    腾讯出品的qq是一款广泛使用的聊天工具,几乎每个人都拥有自己的qq账号,在使用过程中还可以实现远程控制的功能。不过,部分用户反映在尝试远程连接时遇到了障碍,那么win10系统下qq远程连接失败该怎么办呢?接下来就让我们一起探讨win10电脑qq远程桌面连接失败的解决办法。 QQ远程连接无法使用怎么办…

    2026年9月25日 • 用户投稿
    000
  • Java多态中成员变量是否具有动态绑定特性

    成员变量不具有动态绑定特性,其访问基于引用变量的声明类型而非实际对象类型。例如,当父类和子类存在同名成员变量时,通过父类引用访问该变量将获取父类中的值,即使实际对象是子类实例。这体现了静态绑定,即在编译期确定访问的变量。相比之下,实例方法支持动态绑定(后期绑定),在运行时根据对象的实际类型决定调用哪…

    2026年9月25日
    100
  • 1688阿里巴巴官方网站 1688阿里巴巴新品快订入口

    1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口1688阿里巴巴官方网站 1688阿里巴巴新品快订入口

    1688阿里巴巴官方网站新品快订入口为https://ding.1688.com,该平台涵盖服饰、配饰、家居日用及包装物料等丰富商品类目,支持先采后付、48小时发货、混批进货等高效交易模式,并提供新人优惠、实时成交数据展示、销售趋势提示及全网截图比价等采购优化服务。 1688阿里巴巴官方网站新品快订…

    2026年9月25日 • 用户投稿
    000
  • Java 中处理货币数据的正确方式

    Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式Java 中处理货币数据的正确方式

    在 Java 应用程序中,尤其是在处理财务数据时,选择正确的数据类型至关重要。货币数据通常以特定的格式呈现,例如包含货币符号(如美元符号 $)和千位分隔符(如逗号 ,)。直接将这些数据映射到 DTO 类时,我们需要仔细考虑数据类型的选择,以避免潜在的精度损失和计算错误。 货币数据类型选择考量 常见的…

    2026年9月25日 • 用户投稿
    000
  • 夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置

    夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置夸克怎么关闭自动打开淘宝_夸克禁止跳转第三方App设置

    关闭夸克浏览器“允许打开第三方应用”权限可解决跳转问题。依次进入设置→浏览器偏好→关闭该选项;同时在系统设置中将淘宝等App的链接打开方式设为“不打开”或“询问”;搜索时长按结果选择“在浏览器中打开”;使用无痕浏览模式避免唤端行为。 如果您在使用夸克浏览器时,点击链接后自动跳转到淘宝等第三方App,…

    2026年9月25日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信