SuperAPI AI 工具集

revit-automate-test

测试与质量

查看项目

更新于 10-19 01:11

技能介绍

用途

revit-automate-test 用于为 Revit 插件及其插件模板设计、运行、稳定和诊断真实宿主(real-host)自动化测试。其核心主张是:通过与用户实际操作相同的路径来证明插件可用,而不是用直接服务调用来替代宿主端到端验证。整体链路为:理解功能行为 → 将用户动作映射到自动化原语 → 构建/部署包 → 真实 Revit .addin 加载机制 → 当前已部署产物证据 → Journal/插件日志启动证据 → 真实功能区/命令/WPF UI 入口 → 插件等待拾取时的模型视图鼠标输入 → 独立结果证据。技能明确要求:内置脚本不是测试计划本身,智能体需要逐个分析插件功能、选择正确动作序列、执行脚本,并依据独立证据判断结果。

主要能力

  • 功能优先的工作流:读取被测功能的插件代码、XAML、命令注册与日志,识别用户可见流程,映射到 UIA 导出/等待/调用/设值/切换/选择、模型视图点击、SendKeys、部署证据、Journal/日志收集、程序集加载冒烟等能力,并在执行前定义通过/失败证据。
  • 测试边界划分:按需选择最窄但足以证明结论的边界,包括程序集加载冒烟(加密/混淆、元数据问题、DLL 可加载性)、部署证据(MSI/构建部署状态、.addin 路径、残留文件)、包/安装冒烟(MSI 退出码/日志、部署产物哈希)、Revit 启动冒烟(.addin 加载、启动异常、信任提示)、WPF/UI 自动化 E2E(功能区命令、参数面板、拾取流程)、模板冒烟(生成项目与生成安装器行为)。
  • 内置脚本:Test-DotNetAssemblyLoad.ps1 在启动 Revit 前快速验证 .NET 插件程序集;Get-RevitAddinDeployment.ps1 解析 .addin、解析目标程序集路径并打印版本/哈希/时间戳;Get-RevitPluginEvidence.ps1 收集最新 Journal 证据和可选插件日志尾部;Start-RevitPluginSmoke.ps1 执行保守的真实 Revit 启动冒烟;Test-RevitTemplatePackage.ps1 对 .NET 模板仓库执行打包、自定义 hive 安装、生成项目、Release 构建生成安装器及加载冒烟;Invoke-RevitWpfUiAutomation.ps1 作为默认 UI 动作执行器。
  • 标准工作流:针对混淆 MSI 插件、Revit 模板仓库、真实 Revit 启动、WPF UI 自动化 E2E 分别给出步骤,如混淆插件须先确认构建日志中的混淆/保护列表、以详细日志安装 MSI、核验部署证据、运行程序集加载冒烟后再启动 Revit;若加载冒烟失败则不应重试 Revit,而应先诊断混淆器/保护列表。
  • 失败分诊表:按构建、包、加载、启动、UI 调用、业务结果等阶段给出症状与首个排查对象,例如 MSI 成功但插件缺失时检查 .addin 根、功能选择与详细 MSI 日志;点击 WPF 按钮无结果时检查命令是否禁用、窗口是否错误、是否存在待处理模态对话框等。
  • 报告规范:只报告高信号事实,包括运行的命令及其证明内容、部署产物路径/版本/哈希、Journal 与插件日志证据行、失败所属阶段、仍未验证的部分;并要求对令牌、API 密钥、凭据、连接字符串等敏感信息进行脱敏。

使用方式

在运行或编辑测试前,需先识别:Revit 年份与可执行文件路径;插件加载机制(.addin、Addins 目录、注册表或安装器功能);构建命令及是否部署到真实 Revit Addins 位置;当前部署产物路径与版本/哈希/时间戳;插件启动日志路径(若有);最新 Revit Journal 目录;真实用户入口(功能区按钮、WPF 窗口标题、命令按钮、输入 AutomationId、快捷键、对话框或模型视图点击);当前 WPF 定位器状态;以及安全边界(已有 Revit 进程、未保存文档、付费 API、凭据、破坏性文件/数据库更改)。仅当继续可能导致测试错误插件、错误 Revit 版本、错误账户或破坏性目标时才询问用户,否则选择保守测试路径继续。脚本均以 PowerShell 调用,可参考技能中给出的示例参数(如 -RevitYear 2027、-PluginName、-RequireSuccess、-MouseFallback 等)。

适用场景

适用于:混淆或加密后的 MSI 插件验收;Revit 模板仓库的打包—安装—生成—构建链路验证;真实 Revit 启动与信任对话框处理;WPF 插件窗口(设置输入、切换开关、选择列表项、点击命令按钮)与功能区命令调用的 UI 自动化;插件进入 Revit 拾取循环时的模型视图坐标点击;以及需要按阶段定位构建、部署、加载、启动、UI 或业务结果故障的排查。

限制

该技能面向 Windows 上的 Revit 桌面环境,测试高度依赖具体 Revit 年份、安装路径、.addin 加载方式、日志与 Journal 位置等事实,这些需由使用者提供或探测。技能本身不提供收费、价格或授权信息(暂未提供)。WPF 控件不应依赖坐标点击,坐标仅可用于 Revit 模型画布,因为 UIA 不会把单个 Revit 元素/面暴露为控件;拾取流程结束后需发送 {ESC}。对于混淆插件,-ExpectedType 仅在类型确定被混淆规则保留时使用,否则以程序集加载成功作为启动前门槛、以 Journal 的 API_SUCCESS 作为入口类型证明。