关于 sap-sac-test-automation
面向 SAP Analytics Cloud(SAC)故事和仪表板团队的测试自动化技能。它通过能力门控选择发现方式,并结合人工审核的配置与基线、Playwright 执行、CI 门禁和故障证据。
主要功能
- 01按能力门控选择发现后端
- 02人工审核仪表板配置与基线
- 03基于配置设计 Playwright 测试
- 04只读冒烟测试与 CI 门禁
- 05生成含跟踪和截图的故障报告
适用场景
- 01规划 SAC 仪表板只读测试
- 02定义 SAC 故事的安全 CI 阶段
- 03审查规划或权限测试风险
- 04利用采集的证据排查故障
MCP 相关
MCP 作为可选浏览器发现方式出现,包括 Chrome DevTools MCP;相关 SAC scripting 技能也提到 MCP 设置。本技能通过能力和策略检查选择获准的发现方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ secondsky/ sap-skills --skill sap-sac-test-automation安装后在 Claude Code 中输入/sap-sac-test-automation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdagents/openai.yamlreferences/agent-browser-discovery.mdarchitecture.mdchrome-devtools-mcp.mddashboard-profiles-and-scenarios.mdedge-cdp-enterprise.mdfailure-triage-and-artifacts.mdgovernance-and-sac-testability.mdplaywright-execution.mdtool-availability-and-deployment.mdtemplates/dashboard-profile.yamlintake.mdscenario-read-only-smoke.yaml详细介绍
SAP Analytics Cloud 测试自动化
将可复用的 SAC 测试自动化设计为能力门控系统:选择最安全的可用发现后端,要求人工审核配置文件和基线,然后使用经过审核的 Playwright 代码进行确定性执行、CI 门控、报告生成和证据收集。
遵循核心原则:发现提出建议,人工审批,Playwright 执行,CI 强制落实。
相关技能
- sap-sac-scripting:用于 Optimized Story Experience 脚本、Analytics Designer API、诊断组件、故事脚本行为和 SAC MCP 设置。
- sap-sac-planning:用于规划模型、私有/公共版本、数据操作、多重操作、验证规则和写回风险分析。
- sap-sac-custom-widget:用于仪表板中由团队维护、需要稳定 ARIA 标签、公开测试钩子、生命周期修复或黑盒测试契约的自定义组件。
- sap-dependency-security:用于添加固定源代码版本的浏览器工具、MCP 服务、CI 依赖项或处理 SAC 凭据的可执行自动化之前。
- sap-browser-automation:用于在应用内手动身份验证、经同意后复用 Edge 配置文件、启动全新的 Edge/CDP、引导初始化身份验证状态和恢复浏览器。
- agent-browser:Vercel Labs 的 agent-browser CLI 可用时,可选加载;当需要精确的命令语法、快照/引用用法、屏幕截图、控制台或网络检查时使用。
- playwright:可选加载,用于通过 CLI 驱动和调试浏览器。对于持久化的
@playwright/test测试套件,请使用此 SAC 技能作为测试架构指南,并遵循本地项目的 Playwright 约定。 - chrome-devtools:Chrome DevTools MCP 已安装并获准用于只读浏览器发现、控制台/网络检查、屏幕截图、Lighthouse 或性能跟踪时,可选加载。明确提出使用 Chrome、Edge、CDP 或 Chrome DevTools MCP 的请求具有约束力。使用
references/chrome-devtools-mcp.md了解符合 SAC 安全要求的默认设置和 Edge 限制。
初始指南
如果用户刚开始进行 SAC 自动化,或尚未提供经过审核的仪表板配置文件,请引导其使用 /sac-test-onboard,或手动遵循相同的接收流程。分两个阶段收集信息:
- 阶段 1:环境类别、租户风险、允许使用的发现/执行工具、身份验证和角色、写回/评论范围,以及基线归属。
- 阶段 2:规划/写回、评论、权限、视觉/数据基线、自定义组件、CI 阶段和失败证据。
默认仅创建草稿,除非用户明确确认创建文件及目标目录。若用户确认写入,请基于随附模板使用 profiles/<profile-id>/intake.md、profiles/<profile-id>/dashboard.yaml 和 profiles/<profile-id>/scenarios/read-only-smoke.yaml。
配置文件或场景草稿创建后,如有 sac-test-profile-reviewer,请将安全审核交由其处理。审核者应专注于接收信息/配置文件/场景的安全性,而非广泛实施 Playwright 测试套件。
何时使用此技能
在规划、实施或审核涉及以下内容的 SAC 自动化时使用此技能:
- SAC 故事、优化故事、报告、仪表板、标签页、筛选器、提示词、表格、图表、导出、脚本、评论或书签。
- 仪表板配置文件、场景 YAML、预期数据文件、视觉基线、Playwright 适配器和 SAC 专用夹具。
- 存储的身份验证状态、SSO/MFA 限制、基于角色的测试用户、权限矩阵和 CI 门控。
- 规划写回、私有/公共版本、数据锁定、验证规则、数据操作、多重操作或评论清理。
- 包含跟踪记录、屏幕截图、视频、视觉差异、预期值与实际值、控制台/网络摘要和根因分类的失败数据包。
不要将此技能用作通用 Web 应用的主要指南。对于非 SAC 网站,请使用通用 Playwright 指南。
快速入门
- 对 SAC 故事进行分类:生产环境只读、QA 克隆、规划/回写、评论、权限敏感或探索性。
- 确定自动化策略:允许使用的租户、允许的用户、身份验证信息的存储处理方式、回写审批、基线审批和 CI 触发条件。
- 运行能力与策略检查。如果用户指定了浏览器或连接方式,只检查指定的界面;否则,根据已安装且获准使用的选项进行选择:手动发现、Firecrawl 公共信息研究、使用受支持 Chrome 的 Chrome DevTools MCP、Microsoft Edge/CDP、尽力支持 Edge 的 Chrome DevTools MCP、Playwright、agent-browser,或经批准的企业浏览器实验室。
- 使用选定的后端进行只读发现:捕获快照、带注释的屏幕截图、控制台/页面错误、网络线索和候选组件映射;不得将私有 SAC 内容发送给未经批准的外部服务。
- 将发现结果转化为经过人工审核的仪表板配置文件:页面、控件、定位器、就绪标记、角色、数据基线、视觉基线和已知限制。
- 通过可复用适配器实现确定性的 Playwright 测试。场景文件中不得包含选择器;所有交互都应通过配置文件中的组件 ID 执行。
- 首先仅在 CI 中运行安全测试包:身份验证检查、只读冒烟测试、导航和关键控件就绪检查。将规划、评论、数据操作、视觉基线和完整权限检查移至受控阶段或夜间阶段。
- 生成便于审核的失败证据:HTML 报告、跟踪记录、屏幕截图、视频、视觉差异、控件元数据、预期值与实际值,以及失败类别。
只读故事验收
对仅用于报告的 SAC 故事和仪表板应用此约定。它补充了由配置文件驱动的冒烟测试场景,但不授权进行规划或模型更改。
租户和模型安全
- 在交互前确认获准使用的租户、故事以及数据源/模型。
- 验证当前 SAC 区域为故事设计器,而非建模器。
- 确认未发生模型编辑对话框操作、模型保存、主数据更改、权限更改、规划回写、版本发布、数据操作、多重操作或锁更改。
- 仅基于获准模型公开的维度、度量、层级、筛选器和比较类别设置断言。如果所需字段不可用,则省略依赖该字段的控件并记录省略情况。
故事就绪情况
- 打开每个页面,并等待页面专属的就绪标记、加载旋转指示器消失、控件状态稳定,且没有可见的 SAC 错误消息。
- 验证每个 KPI、图表和表格均显示数值或明确的无数据状态;仅加载完成并不足够。
- 确认筛选器已填充、可接受有效值,并且能够更新依赖控件,而不更改模型。
- 在配置允许的情况下,测试获准的选择、导航和下钻;验证生成的表格或图表状态符合预期。
- 记录尚未解决的控件、无效绑定、不可用字段、相关控制台或网络错误,以及租户特定的限制。
证据
- 为每个故事页面捕获获准的屏幕截图或同等材料,并保留故事名称和位置。
- 将视觉证据与 KPI、表格或数据断言配套使用;不得仅依靠图表像素检查业务值。
- 遮盖租户标识符、故事 ID、类似会话的 URL 参数、凭据、Cookie、私人屏幕截图及无关标签页内容。
浏览器故障与诚实交接
浏览器访问是执行的前提,不是故事存在的证据。如果浏览器初始化或发现失败,包括 agent is not defined 等运行时错误:
- 阅读所选的浏览器故障排除指南,并重试发现,但不得绕过身份验证或租户权限。
- 如果用户明确指定了浏览器或连接方式,不要切换到其他浏览器界面。如果其工具不在当前活动注册表中,请求重启 Codex 或创建新任务。
- 要求进行实时的
list_pages或等效握手,并确认返回的页面属于所请求的浏览器。仅有配置、软件包启动或DevToolsActivePort并不足够。 - 如果用户没有明确指定浏览器或连接方式,请使用
sap-browser-automation和references/edge-cdp-enterprise.md中获准的 Microsoft Edge/CDP 恢复指南。 - 如果仍无法建立经过身份验证的租户控制,则将执行标记为受阻。不要声称故事已创建或已验证。
- 交接一份可直接实施的规格说明,其中包含故事目的和受众、已确认的模型元数据、逐页说明的组件与筛选器、交互、遗漏或未解决的字段、只读限制,以及仍需提供的验证证据。
运行模式
将 AI/浏览器 Agent 的输出视为草稿,而非事实来源。配置文件、选择器审批、预期业务值、视觉/数据基线变更、权限矩阵以及任何破坏性/回写场景,都必须经过人工审核。
优先采用配置文件驱动的自动化:
- 将租户/故事元数据、页面、组件、角色、基线和测试策略存储在版本化的 YAML/JSON 中。
- 为 SAC 组件类型实现适配器,例如按钮、表格、图表、选项卡、筛选器、提示词、规划表、评论、自定义组件、导出和书签。
- 不要在场景文件中保存选择器。场景应调用组件 ID 和操作,由适配器解析定位器和就绪行为。
- 每个仪表板先采用串行执行。只有在证明身份验证状态、租户状态、评论、规划版本、实时连接和后端容量相互隔离后,才提高并行度。
捆绑资源
仅在需要时加载以下参考资料:
references/architecture.md:混合架构、可行性边界、可靠的 SAC 测试类别,以及可复用的项目结构。references/tool-availability-and-deployment.md:后端决策矩阵、Windows/受限环境检查、Firecrawl 公共研究政策,以及无工具时的回退方案。references/chrome-devtools-mcp.md:Chrome DevTools MCP 模式、SAC 安全配置、工具类别、CLI 用法、Windows/受限环境部署,以及企业安全边界。references/edge-cdp-enterprise.md:面向共享sap-browser-automation身份验证、配置文件复制、Edge/CDP 和恢复层的 SAC 测试自动化扩展。references/dashboard-profiles-and-scenarios.md:仪表板配置文件约定、场景约定、适配器职责,以及接入流程。references/agent-browser-discovery.md:可选的 agent-browser 只读发现工作流、命令模式、输出产物,以及人工审核清单。references/playwright-execution.md:Playwright 测试运行器指南、身份验证、就绪状态、CI 阶段,以及测试类别政策。references/governance-and-sac-testability.md:SAC 可测试性约定、身份验证/SSO、计划/评论安全性、基线审批,以及角色治理。references/failure-triage-and-artifacts.md:必需证据、故障包结构、根因类别,以及性能/就绪度指标。templates/intake.md:用于收集政策、工具、角色、风险、基线和审批信息的引导式接入资料包。templates/dashboard-profile.yaml:起始仪表板配置文件,包含 SAC 元数据、就绪状态、组件、角色、基线和风险政策。templates/scenario-read-only-smoke.yaml:使用配置文件组件 ID、无需选择器的起始冒烟测试场景。
针对实时项目实施时,新增结构前还应检查项目现有的 Playwright 配置、包管理器、CI、配置文件架构和产物约定。
常见问题
- 避免使用生成的 SAC DOM ID 和私有框架类。优先使用可见标签、ARIA 角色、文本、组件元数据、配置文件中的组件 ID,以及经过审核的回退方案。
- 不要将故事页面框架加载完成视为组件已就绪。应等待页面标记、关键组件就绪、SAC 错误文本消失、加载指示器消失、数值稳定,并使用可重试的断言。
- 不要将 MFA 自动化作为发布依赖项。优先使用已存储的身份验证状态、专用测试用户、经安全部门批准的测试 IdP 策略,或手动刷新。
- 除非获得明确的正式批准,否则不要在生产环境中运行评论、计划写回、公开版本发布、数据操作或多项操作。
- 不要自动批准视觉或数据偏差。必须由负责人审核、说明基线原因,并提供拉取请求证据。
- 不要仅以图表像素作为业务值断言。尽可能将图表截图与表格、KPI 或数据断言结合使用。
- 不要假设公司环境中可以使用 agent-browser、Playwright CLI、Chrome DevTools MCP、Firecrawl MCP、公共 npm、浏览器下载或远程调试。请使用能力门控并记录回退方案。
- 不要将 Chrome DevTools MCP 用作经过审计的 CI 发布门禁。可将其用于探索和调试;将获批的发现转化为由配置文件驱动的 Playwright 测试。
- 在私有 SAC 上运行 Chrome DevTools MCP 前,必须禁用使用统计、更新检查和 CrUX 现场数据查询,并落实配置文件、URL、截图和网络输出控制。
- 不要将 MCP 配置视为工具当前可用的证明。请确认当前任务注册表中的工具,并在使用请求的浏览器前完成实时页面列表握手。
- 不要在未说明的情况下,将明确请求的 Chrome、Edge、CDP 或 Chrome DevTools MCP 界面替换为 In-app Browser、扩展、Playwright、Computer Use、其他浏览器或 Shell 自动化。
- 不要将 CDP 暴露到回环地址以外,不要发布
webSocketDebuggerUrl,也不要绕过 EdgeRemoteDebuggingAllowed策略。附加到或复制日常用户配置文件需要明确批准,并遵循共享技能的隔离配置文件流程。 - 不要将
/json/version或/json/list返回404视为 Edge CDP 不可用的证明;请读取DevToolsActivePort,并且仅在运行框架支持时使用直接浏览器 WebSocket。 - 除非确切的部署方式和数据保留模式均已获批,否则不要将经过身份验证的 SAC 租户页面、截图、HAR、Cookie、存储状态、内部 URL、客户数据或公司内部文档发送给 Firecrawl。
- 不要假设不同客户的 SAC 优化故事功能、租户配置、实时数据、本地化或提示词持久化行为完全相同。
来源和验证说明
内容源自整合于 docs/project/sac-test-automation-source-review-2026-06-17.md 的 SAC 自动化测试套件规划资料,以及随此技能附带的配置文件和场景模板摘录。规划资料引用了 SAP Help、Vercel Labs agent-browser 和 Playwright 文档。Edge/CDP 和 Chrome DevTools MCP 指南还参考了 ChromeDevTools/chrome-devtools-mcp README、CLI 文档、工具参考、故障排除指南、包元数据、随附技能、issue #1235 和 PR #1229、Microsoft Edge DevTools Protocol 文档、Microsoft Edge DevTools MCP 指南、Edge RemoteDebuggingAllowed 策略,以及 Firecrawl 关于 MCP、搜索和抓取安全的公开文档。此技能仅经过文档审核;实时 SAC 租户执行、Chrome DevTools MCP 运行时行为、SSO 行为、CI 行为、计划写回以及视觉基线稳定性仍因租户而异,必须在作出运行时声明前进行验证。