CI/CD

Tricentis Tosca CI/CD Integration (2)

Tosca Commander 调度 Agent (Settings设置)


在 Tosca Commander 的 Settings 中,DistributedExecution(分布式执行)相关的 Monitor Url 和 Server 配置,主要用于 对接 Tosca 分布式执行架构,让 Commander 能调度多 Agent 并行测试、监控执行状态。以下从功能、配置到实际案例详细拆解:

  

核心作用:支撑分布式测试流程

Tosca 的分布式执行(DEX)需依赖 Distribution Server(调度中心)和 Agents(执行节点),Monitor Url 和 Server 配置的作用是:

  1. 连接调度中心:让 Commander 能把测试任务(TestEvent)发送给 Distribution Server,由 Server 分配给 Agent 执行。
  2. 监控执行状态:通过 Monitor Url 访问可视化监控界面,实时查看测试进度、Agent 状态、失败原因。

 

 

关键配置项解析

1. DistributedExecution → Server

  • 作用:配置 Tosca Distribution Server 的地址,让 Commander 知道 “把测试任务发给谁”。
  • 示例值https://dex-server.company.com:50075007 是默认端口,可自定义)。
  • 背后逻辑
    Commander → 发送测试任务 → Distribution Server → 分配任务给 Agent → 执行测试 → 回传结果。

 

DistributedExecution → Monitor Url

  • 作用:配置分布式执行的 监控页面地址,测试人员可通过浏览器访问,查看实时执行状态。
  • 示例值https://dex-monitor.company.com:50085008 是默认监控端口)。
  • 监控内容
    • 各 Agent 的在线状态、资源占用。
    • 测试任务的执行进度(已完成 / 失败用例数)。
    • 详细日志(如某用例在 Agent-01 执行失败的报错)。

 

 

与其他组件的关联

组件与 Server/Monitor Url 的关系
Tosca Commander发起测试任务,通过 Server 连接调度中心;通过 Monitor Url 查看结果。
Distribution Server接收 Commander 的任务,调度 Agent 执行;提供 Monitor Url 监控页面。
Execution Agent从 Server 获取任务,执行测试;回传结果给 Server,同步到监控页面。

 

 

Commander 自己就能执行测试任务吧? 为什么要 这样配置?


Tosca Commander 自身确实能独立执行测试,但启用分布式执行架构(配置 DistributedExecution 相关项 ),是为了应对更复杂、大规模的测试需求,解决单 Commander 执行的瓶颈,以下从必要性和价值展开:

  

Commander 独立执行的能力与局限

  • 独立执行能做什么:
    在简单场景中,Commander 可直接调用本地 / 单 Agent 执行测试,完成基础功能验证(如单条 UI 用例、小规模 API 测试 )。你只需在 Commander 里设计用例、点击 “执行”,就能在当前环境跑测试,适合单人开发、小规模测试
  • 独立执行的局限:
    • 效率瓶颈:若测试用例数量多(如 1000+ 回归用例 ),单 Commander 串行执行耗时极长(可能从 “小时” 级拖到 “天” 级 )。
    • 环境覆盖不足:复杂系统需覆盖多浏览器(Chrome、Firefox )、多设备(手机、平板 )、多操作系统(Windows、Linux ),单 Commander 无法同时模拟所有环境。
    • 资源浪费:测试高峰期,单 Commander 占用的硬件资源(CPU、内存 )有限,企业闲置的服务器 / 虚拟机资源无法被利用。

  

分布式执行架构的核心价值

配置 DistributedExecution(通过 Server 调度多 Agent ),本质是突破单 Commander 的能力边界,解决以下痛点:

1. 并行执行,大幅压缩时间

  • 场景:回归测试需执行 500 条 UI 用例,单 Commander 串行执行需 8 小时。
  • 分布式方案:通过 Distribution Server 把用例拆分成 10 组,分配给 10 台 Agent 并行执行,2 小时内完成(假设无资源竞争 )。
  • 原理:利用多台机器的计算资源,把 “串行任务” 拆分为 “并行任务”,时间 = 单组用例执行时间 ×(总用例数 / Agent 数量 )。

2. 覆盖多环境,保证测试完整性

  • 场景:电商系统需验证 “Chrome(Windows)、Safari(Mac)、微信小程序(Android/iOS )” 多端兼容性。
  • 分布式方案
    • 在 Distribution Server 注册不同环境的 Agent(如 Agent-01 是 Windows+Chrome,Agent-02 是 Mac+Safari )。
    • Commander 发送测试任务后,Server 自动把对应环境的用例分配给匹配的 Agent,一次执行覆盖所有环境

3. 资源复用,降低硬件成本

  • 企业现状:测试团队有 5 台闲置服务器,但日常仅用 1 台跑 Commander。
  • 分布式方案
    • 在闲置服务器部署 Execution Agent,通过 Distribution Server 统一调度。
    • 测试任务按需分配到闲置服务器,充分利用硬件资源,避免重复采购设备。

4. 解耦执行与设计,提升协作效率

  • 团队协作痛点:测试工程师 A 在 Commander 执行测试时,会占用界面,导致测试工程师 B 无法同时设计用例。
  • 分布式方案
    • Commander 仅负责 “设计用例、发起任务”,实际执行由远程 Agent 完成。
    • 测试人员可随时提交任务,无需占用本地 Commander 界面,多人协作更顺畅

5. 集中监控,简化问题排查

  • 单 Commander 执行:若测试失败,需逐个查看本地日志,排查效率低。
  • 分布式方案:
    • 通过 Monitor Url 访问统一监控界面,实时看所有 Agent 的执行状态、失败用例、报错日志。
    • 甚至能远程重启 Agent、重新分配任务,运维成本大幅降低

  

典型适用场景

  • 大规模回归测试:每晚自动执行上百条用例,依赖分布式并行压缩时间。
  • CI/CD 流水线:代码提交后,需快速触发多环境测试(如开发分支合并时,自动跑全量接口测试 )。
  • 多团队协作:测试、开发、运维分属不同部门,需通过分布式架构解耦执行与设计。
  • 复杂环境验证:需覆盖多浏览器、多设备、多地域环境,单 Commander 无法胜任。

 

Tosca Server API 调度Agent


可以通过 Tosca Server API 调度 Agent,无需依赖 Tosca Commander 手动操作,以下从 API 能力、使用场景、配置流程 详细说明:

 

Tosca Server API 支持直接调度 Agent

Tricentis 为 Tosca Server 提供了 标准化 REST API,允许外部系统(如 Jenkins、自定义脚本 )直接与 Server 交互,实现:

  1. 触发测试任务:向 Server 提交测试事件(Test Event ),指定要执行的测试用例 / 套件,Server 自动调度 Agent 执行。
  2. 监控执行状态:通过 API 查询测试任务的实时进度(如 Agent 执行状态、用例通过 / 失败数 )。
  3. 获取结果报告:测试结束后,拉取详细执行结果(日志、截图、测试报告 )。

Tosca Server 是分布式执行的 “调度中心”,无论 Commander 还是 API,最终都通过 Server 与 Agent 交互 ——API 是更灵活的 “无界面” 调度方式。

  

CI/CD 流水线集成(无需人工操作 Commander )

  • 场景:代码提交到 Git 仓库后,自动触发 Tosca 测试。

Tosca Server API 提供了 脱离 Commander 界面 的调度能力,让 Tosca 测试可以深度集成到 DevOps 流水线、自定义平台中。如果你需要:

  • 自动化触发测试(如代码提交后自动跑 )。
  • 大规模任务编排(同时调度多 Agent、多环境 )。
  • 与第三方系统(如 Jenkins、企业测试平台 )深度融合。

 

Commander 也能调度多 Agent 并行测试、监控执行状态。那么用 Tosca Server Api调度Agent的意义是?


Tosca Commander 和 Tosca Server API 在调度 Agent 这件事上,确实有不同的适用场景和价值,下面详细说说它们各自的意义以及怎么选:

Tosca Commander 调度 Agent 的意义

  1. 可视化调试,降低上手门槛
    对于测试人员来说,尤其是刚接触 Tosca 的同学,图形化界面的 Commander 特别友好。比如在调试一个复杂的 UI 测试用例时,你可以在 Commander 里:
    • 直观看到测试用例的结构(像流程步骤、断言逻辑 ),边改边调。
    • 执行测试时,能实时看到 Agent 执行到哪一步、哪个元素定位失败了,直接在界面上就能排查问题,不用去解析 API 返回的日志。
    • 简单说,Commander 是 “所见即所得” 的调试工具,适合测试用例开发、故障排查阶段。
  2. 快速编排小规模测试
    如果只是临时跑一组测试(比如 10 来个用例,验证某个功能点 ),用 Commander 调度很方便:
    • 直接拖选用例、选一下 Agent 分组,点 “执行” 就完事,不用写代码、拼 API 请求。
    • 测试结果回来后,在 Commander 里直接看报告、对比预期 vs 实际结果,效率高。
    • 这是 “轻量级、临时测试” 的首选,不用为了小任务搞复杂的 API 调用。
  3. 团队协作中的 “过渡方案”
    在团队里,不是所有人都懂 API 开发。比如业务测试同学、刚入职的新人,他们可以先用 Commander 调度 Agent 跑测试,不用一开始就接触代码 / API 这些技术活。等流程跑通了,再逐步往自动化流水线(API 集成 )迁移,是一种 “渐进式自动化” 的过渡方式

 

Tosca Server API 调度的优势(适合这些场景)

  1. 深度集成 CI/CD 流水线
    如果要做 DevOps,代码一提交就自动触发测试,API 是刚需:
    • 比如 Jenkins 里写个 Pipeline,代码合并后,直接调 Tosca Server API 触发 Agent 执行测试,完了根据结果决定要不要部署。
    • 这种 “自动化闭环” 场景,必须用 API 才能实现,Commander 没法嵌入到流水线里。
  2. 大规模、批量任务编排
    当你要同时跑 100 个测试任务(覆盖不同环境、不同用例集 ),API 更灵活:
    • 可以写脚本批量创建测试任务,指定每个任务用哪个 Agent 池、哪些参数(比如浏览器类型、测试数据 )。
    • 还能定时调度(比如凌晨 2 点自动跑全量回归 ),这些复杂编排用 Commander 手动操作根本搞不定,API 适合 “大规模、自动化” 场景
  3. 对接第三方系统(自定义平台)
    如果公司有自己的测试平台、运营后台,需要调用 Tosca 的测试能力,API 是唯一途径:
    • 比如业务系统里有个 “验证订单流程” 按钮,点一下就调 API 触发 Tosca Agent 执行订单测试,结果回传到业务系统里展示。
    • 这种 “跨系统集成” 场景,必须用 API 才能打通数据和流程。

 

总结:什么时候用 Commander,什么时候用 API

场景推荐工具核心原因
测试用例开发 / 调试Commander可视化界面,方便边改边调,快速定位问题
小规模、临时测试Commander操作简单,不用写代码,适合 “随手测”
CI/CD 流水线集成API自动化触发,嵌入 DevOps 流程
大规模任务编排(定时、批量)API脚本化控制,灵活编排复杂任务
对接第三方系统(自定义平台)API打通跨系统数据,实现深度集成

简单说,Commander 是 “测试人员的调试台”,API 是 “自动化流程的连接器” 。实际工作中,两者经常配合使用:

  • 先用 Commander 开发、调试好测试用例。
  • 再把这些用例通过 API 集成到 CI/CD 流水线,实现自动化执行。
    这样既兼顾了测试开发的效率,又能满足大规模自动化的需求~

  

关于 Tosca Commander 中创建 Workspace 时,Select type of repository 的选项


  • None(创建单用户工作区):选择此选项将创建一个单用户工作区,该工作区仅供一个用户使用,没有用户之间的协作和数据共享机制,适合个人独立进行测试开发等工作。
  • Oracle:用于创建基于 Oracle 数据库的多用户工作区,适合在企业级环境中,当有多个测试人员需要共享和协作处理测试项目,且公司使用 Oracle 数据库作为存储后端时选择。
  • MS SQL Server(包括 Microsoft Azure SQL):可以创建基于微软 SQL Server 数据库的多用户工作区,包括使用微软 Azure SQL 云数据库服务的情况。如果企业使用微软的技术栈,尤其是在有 SQL Server 数据库基础设施的环境中,这是一个常用的选项。
  • DB2:选择该选项可创建基于 IBM DB2 数据库的多用户工作区,适用于使用 DB2 数据库的企业环境,能满足多用户对测试项目数据的集中管理和并发访问需求。
  • SQLite:可创建基于 SQLite 数据库的工作区。SQLite 是一个轻量级的嵌入式数据库,适合用于开发、测试或小型团队环境,其优点是部署简单,不需要额外的数据库服务器,但在处理大量数据和多用户并发访问时性能相对有限。
  • Tricentis Server Repository:这个连接方式默认不出现,需要在 Tosca Commander settings 进行设置。

 

Tosca Commander 的 settings的 Tricentis Service设置 服务器的URL

在 Tosca Commander 中,Tricentis Server Repository 是一种特殊的仓库连接方式,它通过 Tosca Server 作为中间层,简化了多用户协作和分布式测试的配置。

 

核心概念

  1. 中心化管理
    • 所有测试资产(用例、数据、结果)存储在 Tosca Server 关联的数据库中(如 SQL Server/Oracle)。
    • 用户通过 Server 间接访问仓库,无需记住复杂的数据库连接字符串。
  2. 解耦客户端与数据库
    • 客户端(Tosca Commander)只需配置 Server 地址,由 Server 负责路由到实际数据库。
    • 适合企业级环境(如多地域团队),数据库位置变更时无需更新所有客户端配置。
  3. 增强安全性
    • 数据库连接信息集中存储在 Server,客户端仅需验证用户身份(如 LDAP/AD 集成)。

 

适用场景

场景优势
多用户协作测试团队成员通过 Server 共享测试资产,自动同步更新(如 A 修改用例,B 立即看到变更)。
分布式测试执行Server 统一调度测试任务到多个 Agent,Client 通过 Server 触发执行。
企业级权限管理结合 Tosca Administration Console,通过 Server 控制用户对仓库的访问权限。
跨地域团队数据库部署在总部,分支团队通过 Server 远程访问,无需暴露数据库公网地址。

Tricentis Server Repository 是 Tosca 为企业级协作设计的仓库连接方式,通过 Server 作为中间层,简化了多用户、分布式测试场景下的配置与管理,尤其适合需要集中控制、跨地域协作的大型团队。编辑分享