后端与接口
为 SAP Analytics Cloud…
在需要为 SAC 故事、仪表盘、报表、计划流程、评论、权限和视觉回归建立端到端自动化测试时,按「发现提议、人工批准、Playwright 执行、CI 强制」的流程落地。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
为 SAP Analytics Clou特定
解决思路
- 遵循核心规则:发现提议、人工批准、Playwright 执行、CI 强制。
- 当用户刚开始 SAC 自动化或尚未提供已审核的仪表盘 profile 时,引导其走 /sac-test-onboard 或手动执行同样的接入流程;采用两阶段接入:阶段一收集环境类别、租户风险、允许的发现/执行工具、认证与角色、写回/评论范围、基线归属;阶段二收集计划/写回、评论、权限、视觉/数据基线、自定义组件、CI 阶段和失败证据。
- 在用户明确确认创建文件和目标目录之前,默认只产出草稿工件;若确认写入,则基于内置模板使用 profiles/<profile-id>/intake.md、profiles/<profile-id>/dashboard.yaml 和 profiles/<profile-id>/scenarios/read-only-smoke.yaml。
- profile 或 scenario 草稿存在后,若可用则将安全审查交给 sac-test-profile-reviewer,并让其聚焦于 intake/profile/scenario 安全,而非宽泛的 Playwright 套件实现。
- 分类 SAC 故事:生产只读、QA 克隆、计划/写回、评论、权限敏感或探索性。
- 建立自动化策略:允许的租户、允许的用户、认证存储处理、写回审批、基线审批和 CI 触发条件。
- 运行能力与策略门控:若用户指定了浏览器或连接方式,只检查该指定面;否则根据已安装和允许的情况,从手动发现、Firecrawl 公开研究、支持 Chrome 的 Chrome DevTools MCP、Microsoft Edge/CDP、Edge 尽力而为的 Chrome DevTools MCP、Playwright、agent-browser 或经批准的企业浏览器实验室中选择。
- 用选定的后端执行只读发现:捕获快照、带注释截图、控制台/页面错误、网络线索和候选组件映射,且不将私有 SAC 内容发送到未批准的外部服务。
- 将发现转换为人工审核的仪表盘 profile:页面、组件、定位器、就绪标记、角色、数据基线、视觉基线和已知限制。
- 通过可复用适配器实现确定性 Playwright 测试;scenario 文件保持无选择器,交互通过 profile 中的组件 ID 路由。
- CI 中先只门控安全包:认证检查、只读冒烟、导航和关键组件就绪;将计划、评论、数据操作、视觉基线和完整权限移到受控/夜间阶段。
- 输出便于审查的失败证据:HTML 报告、trace、截图、视频、视觉差异、组件元数据、期望值与实际值以及失败分类。
- 对仅报表类 SAC 故事和仪表盘应用只读故事验收契约:交互前确认已批准的租户、故事和数据源/模型;验证当前 SAC 区域是 Story Designer 而非 Modeler;确认未发生模型编辑对话框、模型保存、主数据变更、权限变更、计划写回、版本发布、数据操作、多操作或锁变更;断言只绑定到已批准模型暴露的维度、度量、层级、过滤器和比较类别,若所需字段不可用则省略依赖组件并记录省略。
- 故事就绪检查:打开每个页面并等待页面特定就绪标记、加载指示器消失、组件状态稳定以及无可见 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/浏览器代理输出视为草稿而非事实来源;对 profile 创建、选择器批准、预期业务值、视觉/数据基线变更、权限矩阵以及任何破坏性/写回场景要求人工审核。
- 优先采用 profile 驱动自动化:将租户/故事元数据、页面、组件、角色、基线和测试策略存储在版本化 YAML/JSON 中;为按钮、表格、图表、标签页、过滤器、提示、计划表、评论、自定义组件、导出和书签等 SAC 组件类型实现适配器;将选择器排除在 scenario 文件之外,scenario 调用组件 ID 和动作,适配器解析定位器和就绪行为;每个仪表盘先串行执行,只有在证明认证状态、租户状态、评论、计划版本、实时连接和后端容量隔离后才增加并行度。
- 按需加载内置参考:references/architecture.md、references/tool-availability-and-deployment.md、references/chrome-devtools-mcp.md、references/edge-cdp-enterprise.md、references/dashboard-profiles-and-scenarios.md、references/agent-browser-discovery.md、references/playwright-execution.md、references/governance-and-sac-testability.md、references/failure-triage-and-artifacts.md,以及 templates/intake.md、templates/dashboard-profile.yaml、templates/scenario-read-only-smoke.yaml。
- 针对实际项目实现时,在添加新结构前先检查项目现有的 Playwright 配置、包管理器、CI、profile schema 和工件约定。
- 避免使用生成的 SAC DOM ID 和私有框架类;优先使用可见标签、ARIA 角色、文本、组件元数据、profile 组件 ID 和经审核的回退方案。
- 不要将故事外壳加载视为组件就绪;等待页面标记、关键组件、无 SAC 错误文本、加载指示器消失、值稳定和重试断言。
- 不要将 MFA 自动化作为发布依赖;优先使用存储的认证状态、专用测试用户、安全批准的测试 IdP 策略或手动刷新。
- 除非有明确正式批准,不要对生产运行评论、计划写回、公共版本发布、数据操作或多操作。
- 不要自动批准视觉或数据漂移;要求所有者审核、基线原因和 pull request 证据。
- 不要仅用图表像素作为业务价值断言;尽可能将图表截图与表格/KPI/数据断言配对。
- 不要假设公司环境中可用 agent-browser、Playwright CLI、Chrome DevTools MCP、Firecrawl MCP、公共 npm、浏览器下载或远程调试;使用能力门控并记录回退方案。
- 不要将 Chrome DevTools MCP 用作经审计的 CI 发布门控;用它进行发现/调试,并将经批准的发现转换为 profile 驱动的 Playwright 测试。
- 不要在对私有 SAC 运行 Chrome DevTools MCP 时不禁用使用统计、更新检查和 CrUX 字段数据查询,也不要在未应用 profile、URL、截图和网络输出控制的情况下运行。
- 不要将 MCP 配置视为实际可用;在使用所请求浏览器前确认当前任务注册表中的工具并完成实时页面列表握手。
- 不要静默地将明确请求的 Chrome、Edge、CDP 或 Chrome DevTools MCP 面替换为 In-app Browser、扩展、Playwright、Computer Use、其他浏览器或 shell 自动化。
- 不要将 CDP 暴露到回环之外、发布 webSocketDebuggerUrl 或绕过 Edge RemoteDebuggingAllowed 策略;附加到或复制日常用户 profile 需要明确批准并遵循共享技能的隔离 profile 流程。
- 不要将 /json/version 或 /json/list 返回 404 视为 Edge CDP 不可用的证据;读取 DevToolsActivePort 并仅在 harness 支持时使用直接浏览器 WebSocket。
- 除非确切部署和保留模式已获批准,不要将已认证的 SAC 租户页面、截图、HAR、cookie、存储状态、内部 URL、客户数据或私有公司文档发送到 Firecrawl。
- 不要假设 SAC 优化故事功能、租户配置、实时数据、本地化或提示持久性在不同客户间行为一致。
适用边界 · 注意事项
- 不要将本技能作为通用 Web 应用的主要指南;非 SAC 站点请使用通用 Playwright 指南。
- 不要将 Chrome DevTools MCP 用作经审计的 CI 发布门控;它仅用于发现/调试。
- 不要假设 agent-browser、Playwright CLI、Chrome DevTools MCP、Firecrawl MCP、公共 npm、浏览器下载或远程调试在公司环境中可用。