CI/CD

Tricentis Tosca CI/CD Integration (1)

背景


最近在学习 Tricentis Tosca 这款产品 做自动化测试,把学习过程掌握的知识简单记录一下。

Tricentis Tosca 是一款企业级自动化测试平台,主打 无代码、AI 驱动 的全流程测试方案,帮企业加速软件交付、降低发布风险。

关键功能

  • 无代码测试设计:用可视化、拖拽式操作创建测试用例,无需写代码。比如测试 Web 登录流程,直接拖选 “输入框、按钮” 等元素,配置操作(输入账号密码、点击登录 )和校验(断言登录成功跳转 ),测试人员(甚至业务人员 )也能快速上手。
  • 覆盖全技术栈:支持 160+ 技术 / 应用,包括:
    • UI 测试:Web(Chrome、Firefox 等 )、桌面应用(Windows、Linux )、移动端(Android、iOS)
    • API 测试:REST、SOAP 等接口,还能模拟复杂业务场景(如电商下单→支付→物流全链路 )。
    • 集成与系统测试:跨应用、跨服务的流程验证(比如 ERP 系统与 CRM 系统的数据同步 )。
    • 特殊场景:SAP 等企业级应用深度适配,还有性能测试(集成 NeoLoad )、安全合规测试等能力。
  • 分布式与 CI/CD 集成:
    • 通过 Execution Agent 实现分布式测试(多环境并行执行,比如同时在 10 台机器跑不同浏览器的 UI 测试 )。
    • 深度对接 Jenkins、GitLab CI 等流水线,代码提交 / 合并时自动触发测试,结果直接阻断或推进流程(质量卡点 )。

 

和其他测试工具的差异

对比维度Tricentis Tosca传统测试工具(如 Selenium)
技术门槛无代码,业务 / 测试人员均可上手需写代码(Java/Python 等 ),依赖开发技能
测试覆盖全流程(UI+API + 集成 + 性能…),适配复杂系统侧重 UI 或 API 单一维度
团队协作打通需求、开发、测试数据,支持跨角色协作工具链割裂,数据难同步
部署方式云、本地、混合部署灵活选择多为本地部署,云化支持弱

 

学习路线


Tosca官方学习网址:https://academy.tricentis.com/learn/learning-plans/78/tricentis-tosca-product-consultant-self-paced

用个人邮箱注册就可以了,课程如下:

  

每个课程主要的学习内容如下:

 LessonContents
AS11-20Introduction,Modules,XScan,TestCases,Buffer,Parameters,ActionModes,Libraries
 21-27Advanced:ModulesAction,TestCases,Parameters,BP,ExecutionLists,Requirements
 28-39Additional Advanced Topics:While,If,Do
AS21-7TestSheet,Templates,Conditions
TDS11-5Requirements,Attributes,Instances,Combinatorial Methods, TestCase Specifications
 6-10Classes,Link to Requirements, Integration of New Attributes,Best Practices,Automatic Generation of Instances
TDS2AllTheory Lesson,Preparing your Project for using TDS
AE11Excel Engine
 2PDF Engine
 3Mail Engine
 4WinX Engine and UIA Engine
 5Self Healing
 6Install and Use Custom Controls
 7Standard modules
 8Image Based Controls
 9Mobile Engine – Android
APIAllIntroduction to the API Scan
SAPAllSUT,Scan SAP,SAP Testing Specialist Solution Subset

  

上面的Tosca的课程,主要是围绕 Tosca Commander 展开的:

  • 基础类(如 AS1、AS2 ):会从 Tosca Commander 入手教学,比如教你在 Commander 里做 Web 应用自动化测试、配置集中测试数据, Commander 是实操的核心入口。
  • 进阶类(如 TDS1、TDS2、AE1 等 ):会基于 Commander 拓展,教你用 Commander 结构化管理用例和数据、处理有状态数据、突破 Web 应用限制做更多自动化(如桌面应用、API 等 ), Commander 是承载这些高阶操作的平台。

课程以 Tosca Commander 为核心操作界面和基础,逐步拓展到测试设计、数据管理、复杂场景自动化等深度内容 。

  

Tosca Commander是什么?

Tosca Commander 是 Tricentis Tosca 测试平台的核心图形化操作界面(GUI),是测试人员日常工作的 “主战场”,主要作用:

  • 测试全流程管理:在 Commander 里可视化创建、编辑、执行、分析测试用例,从需求导入(如对接 Jira 需求 )→ 用例设计(拖拽元素、配置操作 )→ 测试执行(手动 / 自动触发 )→ 结果分析(看报告、定位缺陷 ),一站式完成。
  • 核心功能承载: Tosca 的无代码测试设计、AI 辅助、分布式执行调度等能力,都通过 Commander 界面操作落地。比如用 “模块扫描器” 抓取应用界面元素、用 “测试配置” 关联执行环境和 Agent 。
  • 与仓库 / 服务协同:连接 Tosca 公共仓库(Common Repository ),实现测试资产(用例、数据、结果 )的版本管理和团队共享;也能对接 Tosca Server ,触发分布式测试、查看服务端执行状态。

  

Tosca Commander 是 Tosca 实践的基础入口和核心操作层:

  • 学习路径基础:学 Tosca 自动化测试,第一步就是熟悉 Commander 界面和基础操作(如创建工作区、导入应用模块、编写简单用例 ),后续高阶功能(如 API 测试、CI/CD 集成 )也依赖在 Commander 里先做好测试资产准备。
  • 功能承载基础:Tosca 的核心能力(无代码设计、多技术栈适配、测试数据管理 ),都需要通过 Commander 操作来体现和落地,离开它很难高效开展测试工作。
  • 团队协作基础:测试团队共享公共仓库、协同开发测试用例、追溯测试结果,都以 Commander 为统一操作界面,是团队协作的 “基础载体”。

但 Tosca 整体技术栈里, Commander 是客户端操作层,配套还有 Tosca Server(服务端调度 )、Agent(执行节点 )公共仓库(数据存储 )等组件,共同构成完整平台。不过从实操角度, Commander 是接触 Tosca 的 “第一扇门”,是实践的基础 。

  

Tosca 程序安装


Tosca 的应用程序License很贵,但是如果是个人学习的话,我们可以申请 Training License,有效时间大概在2个月。

Training License 申请网址:https://support-hub.tricentis.com/open?id=training_license_request

License 有 Cloud 和 On Premise 两个,就是云端web版本 和 本地安装版本。

Tosca程序的下载链接:https://support-hub.tricentis.com/open?id=downloads&version=4bd1091293af4a544f1832847aba1063
Chrome插件:https://chromewebstore.google.com/detail/tricentis-automation-exte/njjjlolnnicemgigahffncnddbioccpo

关于 Tosca CI/CD integration


官方文档:https://documentation.tricentis.com/tosca/2420/en/content/continuous_integration/execution_api_integration.htm

官方提供了两种方式实现Tosca的 CI/CD:

  • Use Tosca Execution Clients
  • Integrate with the Execution API

关于 Tosca CI/CD 核心组件的概念


整个架构围绕 代码变更 → 自动化测试 → 质量反馈 的 CI/CD 流水线展开,Tosca 测试通过 API 深度嵌入到 DevOps 流程中,实现自动化触发、执行与结果反馈。

  

CI/CD 流水线阶段(上半部分):

阶段作用与 Tosca 的关联点
Code Repository存储代码的仓库(如 GitLab、GitHub),代码变更触发流水线。代码合并 / 提交 → 触发后续测试
Compile编译代码(如 Maven/Gradle 构建),生成可部署包。编译成功后 → 进入测试环节
Package with Instructions打包代码及部署指令(如 Docker 镜像、K8s 配置)。为测试提供目标环境(如部署后验证)
Unit Tests单元测试(开发侧自测,如 JUnit、PyTest)。前置质量卡点,通过后进入 Tosca 测试
API/UI TestsTosca 测试环节,执行 API/UI 自动化测试,验证系统集成质量。调用 Tosca Server API 触发测试

  

Tosca 核心组件与交互(下半部分):

 AOS Execution API

  • 全称:Automation Object Service Execution API
  • 作用:Tosca Server 对外暴露的 标准化接口,允许 CI/CD 工具(如 Jenkins、GitLab CI)直接调用,实现测试触发、结果查询等操作。
  • 核心能力:
    • 触发测试执行(Trigger execution
    • 获取测试结果(Fetch execution results
    • 与 Tosca Server 双向通信,解耦 CI/CD 工具与测试执行逻辑。

 Tosca Server

  • 定位:Tosca 测试的 中央控制中心,负责接收 API 请求、调度测试任务、管理执行结果。
  • 关键功能:
    • 接收 AOS API 的测试触发指令,解析测试需求(如执行哪些用例、环境参数)。
    • 向 Execution Agent Pool 分发测试任务(Distribute execution),实现分布式执行。
    • 汇总测试结果,通过 AOS API 反馈给 CI/CD 流水线。

 Execution Agent Pool(执行代理池)

  • 组成:一组 DEX Agent(Distributed Execution Agent,分布式执行代理)。
  • 作用:实际执行测试用例的 工作节点,部署在各类测试环境中(如 Windows、Linux、不同浏览器 / 设备)。
  • 核心逻辑:
    • 从 Tosca Server 接收具体测试任务(如 “在 Chrome 浏览器执行登录流程测试”)。
    • 在本地环境运行测试,收集日志、截图、结果数据。
    • 将结果回传 Tosca Server,完成测试闭环。

  

组件交互:从 “代码变更” 到 “测试反馈” 的完整链路:

 触发测试:

  • CI/CD 流水线在 “API/UI Tests” 阶段,通过 AOS Execution API 向 Tosca Server 发送请求(如:触发测试事件 TestEvent_X)。

 任务调度:

  • Tosca Server 解析请求,根据测试需求(如环境、用例标签),从 Execution Agent Pool 中选择合适的 DEX Agent
  • 将测试任务(如 “执行用例集 SmokeTests”)分发给选中的 DEX Agent

 测试执行:

  • DEX Agent 在本地环境启动测试(如打开浏览器、调用 API),实时反馈执行状态(运行中、失败、通过)。

 结果反馈:

  • DEX Agent 将测试结果(日志、截图、JUnit 报告等)回传 Tosca Server
  • Tosca Server 再通过 AOS Execution API,将结果同步给 CI/CD 流水线,决定是否继续部署(质量卡点)。

  

‼️关于 DEX Agent 

在 Tricentis Tosca 的分布式执行(DEX)架构里,DEX Agent 是独立的执行节点组件,用于接收 Tosca Server 分发的测试任务、实际运行测试用例。其安装流程通常是:

  • 获取安装包:从 Tricentis 官方渠道(客户门户、技术支持 )下载对应系统(Windows/Linux 等 )的 DEX Agent 安装程序。
  • 独立部署:在目标测试机器上,直接运行安装包,配置与 Tosca Server 的连接参数(如 Server 地址、通信端口、认证信息 ),完成后即可作为独立 Agent 加入执行池,无需依赖 Tosca Commander 安装。

简单说,它是轻量级独立组件,专为分布式测试执行设计,可部署在多台测试机上,扩展测试执行能力。

  

Tosca Commander  和 DEX Agent  区别:

两者是 协作关系

  • Tosca Commander:是测试设计、管理的图形化客户端,负责创建测试用例、配置测试事件(Test Event )、定义执行逻辑。
  • DEX Agent:是独立的执行端,接收 Tosca Server 转发的测试任务(这些任务最初可由 Commander 配置发起 ),实际运行测试并回传结果。

流程上, Commander 可触发测试事件并推送给 Tosca Server,Server 再调度 DEX Agent 执行,但 Agent 本身是独立部署的 “执行节点”,和 Commander 属于 不同层级的组件( Commander 是设计端,Agent 是执行端 )。

补充说明

  • 协作场景:比如在 Commander 里设计好 Web 应用测试用例,配置成测试事件后,通过 Server 把任务分发给多台安装了 DEX Agent 的机器,并行执行测试,结果汇总回 Server 和 Commander 展示。
  • 轻量化优势:因 DEX Agent 独立,可部署在资源有限的测试机(甚至无图形界面的服务器 ),降低对 Commander 环境的依赖,适合大规模、分布式的 CI/CD 集成场景。

综上,DEX Agent 支持单独安装部署,和 Tosca Commander 分工协作,共同支撑 Tricentis Tosca 的分布式测试能力 。

  

安装 Install Tosca Server


官方安装Guide:https://documentation.tricentis.com/tosca/1520/en/content/tosca_server/tosca_server.htm?Highlight=Tosca%20server
Tosca Server 软件下载地址:https://support-hub.tricentis.com/open?id=downloads&version=4bd1091293af4a544f1832847aba1063&filter=nameLIKETosca%20Server

下载完 安装包 直接点击 Tricentis Tosca Server.exe 程序默认安装即可。

注意下面的协议和端口号,因为没有SSL证书,这里面选HTTP,端口号可以用8081

安装完以后,会自动弹出 Tosca Server 页面,用浏览器 打开下面的网址也可以显示页面。

http(s)://<server address>:<port>. 

我的地址是:

http://localhost:8081

  

Tosca Commander 和 Tosca Server 的区别

  1. 功能定位
    Tosca Commander:是 Tricentis Tosca 测试套件的图形化操作界面(GUI 核心),用于测试用例设计、管理、执行与分析 。你可以在这可视化创建测试流程、配置测试数据、编排测试步骤,还能直接触发测试执行、查看实时结果和日志,是测试人员日常 “操作测试” 的主要入口。
    Tosca Server:是 Tricentis Tosca 体系的服务端核心,提供 API 接口、测试执行调度、资源管理、结果存储 等能力。它更偏向 “后台支撑”,让 CI/CD 流水线、脚本(比如前面提到的 Execution Client/API )能远程调用 Tosca 测试能力,实现自动化触发。
  2. 使用场景
    Tosca Commander:适合手动操作测试(比如测试人员调试用例、临时执行单个测试、配置测试环境),或者小规模、交互式的测试编排。
    Tosca Server:专为自动化、大规模、CI/CD 集成设计。比如代码提交后,Jenkins 流水线自动调用 Tosca Server API 触发测试;或者多团队共享测试资源、统一管理测试执行队列,都依赖它。
  1. 交互方式
    Tosca Commander:纯图形界面(GUI)操作,拖拽、点击就能完成测试设计与执行,对测试人员友好,低代码 / 无代码。
    Tosca Server:主要通过 API(如 Execution API ) 或 命令行工具(如 Tosca Execution Client ) 交互,需要写脚本、配置请求参数,更贴近开发 / 运维的自动化流程。

  

仅用 Tosca Commander 做本地测试:如果只是单人 / 小团队在本地电脑上,用图形界面做测试设计、执行(不需要 CI/CD ,也不需要远程调用),可以只装 Tosca Commander (安装包会包含基础运行环境,但没有 Server 功能)。

如果需要 CI/CD、远程触发测试:只要想让测试流程自动化(比如用脚本 / 流水线调 Tosca 测试)、多机共享测试能力、集中管理测试执行,就必须单独安装 Tosca Server ,并配置好网络、许可证,让客户端 / API 能访问到它。

  

Tosca Administration Console


第一次打开 Administration Console, 会弹出Sign In 画面提示输入Email 和 密码,初始用户名和密码都是Admin。

  

Administration Console 可以用来创建和添加 Project, 根据 Tricentis 官方文档定义,Tosca Administration Console 里的 Project 是控制台基础设施的核心,用于定义 3 类关键内容:

  1. 测试资产范围:决定哪些测试工件(如用例、模块、测试数据 )可被访问,每个项目关联 独立的公共仓库(Common Repository )(存储测试资产的数据库 )。
  2. 用户权限控制:只有被分配到该项目的用户,才能访问项目关联仓库里的测试资产,实现多项目、多团队的权限隔离。
  3. 功能集成配置:控制项目可使用的 Tosca 集成功能(如是否启用与 qTest、SAP Solution Manager 的集成,是否开启通知服务 )。

简单说,它是 Tosca 测试体系的 “顶层容器”,用于管理测试资产的存储、用户权限和功能集成,是多用户协作、大规模测试管理的基础。

  

和 Tosca Commander 中 “项目” 的关系

  1. 关联但不等同:
    • Tosca Commander 里的 “项目”(在 Commander 界面创建的测试项目 ),属于 Administration Console 中 “项目” 的子集
    • 你需要先在 Administration Console 中创建 “顶层项目”(配置仓库、权限、集成 ),再在 Tosca Commander 中基于该项目的仓库,创建具体的测试用例、执行配置等。
  2. 依赖与协作:
    • 依赖:Commander 里的测试资产(用例、数据 ),必须存储在 Administration Console 项目关联的公共仓库中,才能实现多用户共享、版本管理。
    • 协作:Administration Console 控制 “哪些用户能访问项目”,Commander 则是用户操作这些项目资产(设计、执行测试 )的图形界面。

  

举个实际流程理解

  1. 步骤 1:在 Administration Console 建项目
    管理员登录 Console,创建一个名为 “电商系统测试” 的项目,配置:
    • 关联一个新的 SQL Server 公共仓库(存储测试资产 )。
    • 分配权限:让 “测试团队 A” 可访问该项目。
    • 启用通知服务(测试失败时发邮件 )。
  2. 步骤 2:在 Commander 中操作项目
    测试工程师用 “测试团队 A” 账号登录 Commander,选择连接到 “电商系统测试” 项目的仓库,然后:
    • 扫描电商网站界面,创建测试模块(如 “购物车流程” )。
    • 编写测试用例(如 “添加商品到购物车 → 结算” )。
    • 触发测试执行,结果同步回 Administration Console 项目的仓库。
  3. 步骤 3:在 Administration Console 管理项目
    管理员可在 Console 中:
    • 查看 “电商系统测试” 项目的资产使用情况。
    • 调整用户权限(如新增 “测试团队 B” 访问 )。
    • 配置集成(如对接 Jenkins,让代码提交后自动触发该项目测试 )。

  

核心区别总结

维度Tosca Administration Console 的 “项目”Tosca Commander 的 “项目”
定位测试资产、权限、集成的顶层管理容器具体测试用例、执行逻辑的操作界面
核心功能仓库关联、用户权限、集成配置测试设计、执行、结果查看
依赖关系Commander 的项目依赖其配置(仓库、权限 )才能工作是 Administration Console 项目的 “操作延伸”
操作角色通常由管理员操作通常由测试工程师操作

  

简单说,Tosca Administration Console 的 “项目” 是 管理层面的 “大容器”,控制着测试资产的存储、谁能访问、能集成哪些工具;而 Tosca Commander 的 “项目” 是 执行层面的 “工作区”,测试人员在这设计、运行具体测试。两者配合,实现从 “全局管控” 到 “具体执行” 的完整测试管理流程。