Skip to content

TAF 自动化测试:集成与 UI 两条测试线 ​

TAF(Test Automation Framework)是 Aras 提供的独立测试产品, 用于编写和执行 Aras Innovator 自动化测试。它同时支持 AML 集成测试 与 Selenium Web UI 测试, 并提供 Visual Studio 扩展、项目模板和 TAF 库。

先纠正一个常见误解

“使用 NUnit/MSTest 连接 IOM”可以是一套自建集成测试,但它不因此自动成为 Aras TAF。 只有使用与目标版本匹配的 TAF 产品、模板、库和许可,才应称为 TAF 测试。


1. 适用版本与许可 ​

本文以 TAF 1.51 官方安装指南为基线:

项目TAF 1.51 官方要求
Aras Innovator12.0 SP18、Release 17~34
Visual StudioCommunity / Professional / Enterprise 2019
.NET.NET Framework 4.7.2
C#7.1
许可Aras TAF 或 Platinum-level subscription,目标实例需有效 TAF Feature License

TAF 1.51 的部分应用专用 API 还有自己的应用版本矩阵,不能只看平台行。 Release 35~39 不在上述 1.51 基础兼容范围内;使用这些 Innovator Release 时,应向 Aras 获取明确兼容的 TAF 版本,不要自行推断“向后兼容”。

三套版本必须一起锁定

测试仓库应同时记录 Innovator Release、TAF Release 和被测应用 Release。 浏览器与客户端操作系统则按该 Innovator Release 的 Platform Specifications 选择。


2. 两类测试各自验证什么 ​

2.1 AML 集成测试 ​

适合验证:

  • Item 新增、编辑、版本和生命周期规则。
  • Server Method、Server Event 与权限行为。
  • AML 返回结果、错误和数据关系。
  • 包导入后的关键配置是否可用。

它跨越服务器与数据库边界,不是纯单元测试。测试失败可能来自认证、许可、权限、环境数据或服务状态。

2.2 Selenium Web UI 测试 ​

适合验证:

  • 用户能否通过真实客户端完成业务流程。
  • CUI 命令、表单、搜索、关系页签和对话框是否可用。
  • 不同 Identity 看到的界面是否符合预期。
  • Responsive 与 Classic Form 的用户路径是否回归。

UI 测试比集成测试更慢,也更受浏览器、数据和布局变化影响。关键规则优先放在集成层,少量主路径放在 UI 层。


3. 安装前的决策门 ​

在安装 VS 扩展前完成以下核对:

  1. 从官方 TAF 文档库选择具体 TAF Release。
  2. 核对 Innovator、应用、浏览器、VS 与 .NET 矩阵。
  3. 确认目标实例具有有效 Feature License。
  4. 明确测试环境,不允许默认指向生产。
  5. 为测试账号配置最小必要 Identity。
  6. 决定哪些场景是 AML、哪些是 UI。

如果任何一项无法确认,应暂停安装和脚本迁移。强行修改项目 Target Framework 不会创造官方兼容性。


4. 用官方模板建立工程 ​

TAF 安装指南的目标是安装带模板的 Visual Studio 扩展。工程应从已安装的 TAF 模板创建, 而不是从空白 NUnit 项目猜测程序集、基类和配置键。

建议的仓库边界如下:

text
tests/
├── integration/        # 由 TAF AML integration 模板生成
├── ui/                 # 由 TAF Selenium 模板生成
├── data/               # 可重复装载的测试数据
├── environment/        # 非秘密的环境模板
└── README.md            # 版本矩阵与运行命令

实际 .csproj、配置文件和类名以对应 TAF 模板生成结果为准。本文不虚构跨版本通用的 TAF API。

不提交秘密

服务器 URL 可以模板化;用户名、密码、证书和 OAuth secret 应由开发机秘密存储或 CI secret 注入。 不要把真实密码写入 App.config 后提交 Git。


5. 设计一个可重复的测试 ​

每个用例至少写清五部分:

部分示例
Given测试用户拥有 Design Engineer,存在一个专用 Draft Item
When使用受支持 API 执行一次目标动作
Then返回非错误,状态和关系符合规则
Cleanup按已记录 ID 清理,或恢复隔离数据库快照
Evidence测试名、时间、目标 Release、日志和结果文件

5.1 数据唯一性 ​

测试名称和业务键应包含本次运行的唯一后缀,避免并发冲突:

text
TAF_<scenario>_<run-id>

记录创建结果的 ID,不要在清理阶段用宽泛条件删除“所有 TAF_ 开头”的数据。

5.2 清理必须独立执行 ​

如果把清理写在断言后面,断言失败会跳过清理。应使用模板支持的 teardown/finally 机制, 或者为整个测试环境使用可恢复快照。

5.3 错误也是结果 ​

权限拒绝、必填校验和非法状态迁移应断言明确错误类别或稳定消息片段。 不要只断言“抛了异常”,否则网络失败也会被误判为业务规则通过。


6. 可复现实验:先证明 TAF 安装正确 ​

不要一上来迁移全部回归测试。先建立两个最小烟雾测试。

6.1 AML smoke test ​

  1. 从 TAF 模板创建 AML integration 项目。
  2. 使用专用测试账号连接隔离 Innovator。
  3. 查询一个由测试准备脚本创建的固定 Item。
  4. 断言返回一条记录及稳定属性。
  5. 运行两次,确认结果相同且无新增垃圾数据。

6.2 UI smoke test ​

  1. 从 TAF 模板创建 Selenium UI 项目。
  2. 使用 Platform Specifications 支持的浏览器。
  3. 登录、打开一个 OOTB 搜索页、执行固定查询并退出。
  4. 保存测试结果与失败截图。
  5. 在开发机和 CI agent 各运行一次。

6.3 通过标准 ​

  • 测试运行器能发现两个用例。
  • 目标环境日志能关联到测试账号。
  • UI 用例失败时有截图或浏览器日志。
  • 无凭据出现在源码、控制台和制品中。
  • 第二次运行不依赖第一次残留数据。

7. 流水线分层 ​

推荐按反馈速度分层,而不是每个 PR 都跑全部 UI 用例。

阶段测试典型触发
PR 快速检查静态检查、少量 AML smoke每次提交
集成检查包导入、AML 回归合并请求或每日
UI 主路径少量 Selenium 场景每日或发布候选
完整回归全套受支持测试发布门禁

流水线必须显式部署被测包、准备数据、运行测试、收集结果并清理环境。 “启动 vstest.console.exe”只是运行器步骤,不代表这些环境动作自动存在。


8. 常见错误 ​

把手写 IOM 测试称作 TAF ​

它可以有价值,但应标注为“自建 IOM 集成测试”,除非确实引用 TAF 产品库和模板。

忽略 Feature License ​

TAF 1.51 需要对应订阅和目标实例许可。普通 Innovator 许可不等于 TAF 许可。

宣称 TAF 1.51 支持 R39 ​

官方 1.51 基础矩阵截至 R34。R35+ 必须查对应新版本或向 Aras 确认。

只在测试正文末尾删除数据 ​

测试中途失败会遗留数据。使用 teardown/finally 或环境快照。

把 UI XPath 当永久 API ​

界面结构会变化。优先使用 TAF 模板与库提供的抽象,并把 UI 用例控制在关键路径。


9. 官方依据 ​

文档最后核验:2026-08-13。

本站内容仅供学习与参考