正文 · AI 翻译
为了在各产品团队中扩大意图驱动的 UI 测试规模,数据、技术和营销服务公司、阳狮集团旗下的 Epsilon 采用了 Amazon Nova Act。Epsilon 拥有数亿份消费者档案,并与数千个品牌建立了合作关系,因此需要能够跟上应用快速变化的 UI 测试。解决方案不能给每个产品团队带来维护负担。在 Epsilon 内部,Agentic Platform 团队(50 名工程师)构建共享基础设施,让其他产品团队能够安全地构建、部署、治理和运行 AI 智能体。通过这个共享平台,团队可以使用基于技能的智能体构建工具,还可以使用联合身份、运行前授权、模型上下文协议(MCP)集成和跨账户资源配置。当产品团队希望采用 AI 工具时,无需额外配置,也无需自行重新解决身份、安全、浏览器基础设施或模型集成问题,就能获得相关能力。UI 测试就是这些托管能力之一。借助 Amazon Nova Act 和 Amazon Bedrock AgentCore Browser(Amazon Bedrock AgentCore 的一项能力),Epsilon 的平台团队能够为平台上的团队提供具有韧性的意图驱动测试服务。本文将介绍 Epsilon 用于将 UI 测试作为托管平台服务交付的架构,展示 Nova Act 与 Amazon Bedrock AgentCore Browser Tool 集成的核心代码,重点介绍一个具体的 18 步测试工作流,并分享最佳实践和测量结果。挑战:扩大覆盖范围,同时保留行之有效的做法。Epsilon 现有的 UI 测试实践并没有出问题。团队维护着一套基于 Playwright 的回归测试套件,用于验证其 Web 应用的功能,而且运行良好。如今,Playwright 仍是其回归测试的支柱。Epsilon 发现的机会是补充现有做法,而非纠正问题:脚本化 Playwright 测试适合执行确定性的回归检查,但它们与选择器和页面结构紧密耦合。即使底层功能正常,外观上的 UI 变化也可能使测试失效。多个产品团队都需要针对各自的应用获得全面的测试覆盖。每个团队分别搭建浏览器基础设施、管理依赖项并与身份系统集成,会造成重复劳动。平台团队希望 UI 测试成为符合现有智能体模型的托管能力,而不是每个接入团队都必须操作的定制 CLI。目标是在现有 Playwright 回归测试套件之上增加基于意图的测试,并将其作为多租户平台服务交付,让 Epsilon 的每个产品团队都能通过其使用其他所有智能体能力的同一套 API 接口来调用。Epsilon 为何选择 Amazon Nova Act 和 Amazon Bedrock AgentCore Browser Tool。Epsilon 根据 2 项要求评估了各种方案:使用自然语言编写测试(补充基于选择器的 Playwright 测试),以及托管浏览器基础设施(适应其多租户平台模式)。Amazon Nova Act 与 Amazon Bedrock AgentCore Browser Tool 相结合,能够同时满足这 2 项要求。自然语言步骤:测试步骤是由 Nova Act 执行的普通英语指令。它们能够抵御外观上的 UI 变化,非工程师也能读懂。像“确认奖励余额可见”这样的步骤,比脆弱的 CSS 选择器更不容易随着时间推移而失效。AWS 托管的临时浏览器会话:借助 Amazon Bedrock AgentCore Browser Tool,团队可以获得隔离的浏览器实例,无需分发浏览器二进制文件,也无需维护显示服务器。Amazon Bedrock AgentCore Browser Tool 还提供供人工观察或接管的实时视图(适用于验证码或多因素身份验证)、录制会话并存储至 Amazon Simple Storage Service(Amazon S3),以及 AWS CloudTrail 审计,这些都无需额外配置。基于 AWS Identity and Access Management(AWS IAM)的身份验证:使用 Nova Act,可以通过标准 AWS 凭证链(任务角色)进行身份验证。这符合 Epsilon 现有的安全模型,无需分发单独的 API 密钥。便于跨账户使用:Nova Act 和 Amazon Bedrock AgentCore Browser Tool 可以接入现有的 AWS Security Token Service(AWS STS)AssumeRole 资源配置流程。每个接入的团队都可以在自己的 AWS 账户中,以权限范围受限的角色运行测试,从而保持隔离性和可审计性。Epsilon 特别选择 Amazon Bedrock AgentCore Browser Tool,是因为它消除了管理浏览器二进制文件、显示服务器和会话生命周期的运营负担。Agentic Platform 团队无意自行管理这套基础设施。解决方案:架构与实现。Epsilon 的解决方案有 3 个主要组成部分:用于创建工作流的平台 API、用于执行工作流的后台任务运行器,以及驱动浏览器的 Nova Act 与 Amazon Bedrock AgentCore Browser Tool 集成。平台架构:Epsilon 的 UI 测试能力遵循清晰的流程。用户通过平台 API 创建工作流,指定 target_url 和自然语言步骤列表。创建时,平台会在 AWS 上注册 Nova Act 工作流定义。执行时,后台任务运行器(Celery,一个用于异步作业处理的 Python 框架)会打开一个 Amazon Bedrock AgentCore Browser Tool 浏览器会话。运行器通过 Chrome DevTools Protocol(CDP)WebSocket(用于以编程方式控制 Chromium 浏览器的标准接口),让 Nova Act 执行每个步骤,包括条件逻辑(例如“如果出现引导提示框,就跳过它”)。系统会为每个步骤截取屏幕截图、记录每步的通过或失败情况、计算总体通过率,并存储所有内容(结果 JSON、Amazon S3 中的屏幕截图及会话 ID)。随后触发完成钩子,将结果记录回平台。图 1:Epsilon 的 UI Testing Service 架构。图 1 展示了 Epsilon 的 UI Testing Service 的分层架构。用户请求从 Agent Cloud Frontend 发出,经过执行身份验证和权限检查的 API Gateway。API 层(Django REST)提供工作流、执行、自动化套件和统计数据的端点。业务逻辑层包括 Workflow Manager、Execution Orchestrator 和 Suite Coordinator。测试作业进入 Amazon Simple Queue Service(Amazon SQS)队列,由运行在 Amazon Elastic Container Service(Amazon ECS)上的 Runner Service 获取;该服务包含 Nova Act 引擎和无头 Chromium 浏览器。结果、屏幕截图、执行轨迹和 HTML 报告存储在 Amazon S3 中。这项能力以标准智能体(ui-test-agent)的形式提供,包含 2 项技能:ui-test-recorder:以交互方式探索场景并记录自然语言步骤。ui-test-executor:运行记录的步骤并返回结构化结果。已接入的团队使用 UI 测试的方式与使用其他平台智能体相同,无需管理额外基础设施。接入流程很直接:平台团队为新团队配置跨账户 IAM 角色、注册其目标应用 URL,并通过现有平台 API 授予其访问 ui-test-agent 的权限。此后,团队就可以通过已经用于其他平台能力的同一接口创建工作流、触发执行并获取结果。核心集成:Nova Act 与 Amazon Bedrock AgentCore Browser Tool 的集成代码很简洁:import boto3 from bedrock_agentcore.tools.browser_client import browser_session from nova_act import NovaAct boto_session = boto3.Session(region_name=region) with browser_session(region) as client: ws_url, headers = client.generate_ws_headers() with NovaAct( cdp_endpoint_url=ws_url, cdp_headers=headers, boto_session=boto_session, starting_page=url ) as nova_act: result = nova_act.act(instruction)。这一模式——打开托管浏览器会话、通过 CDP WebSocket 连接,并以自然语言驱动操作——构成了基础。Epsilon 在其外层加入平台的多租户编排、结果捕获和可观测性层。示例:自动化“创建智能体”流程。为了说明基于意图的测试,下面是 Epsilon 平台的一个代表性工作流。它涵盖登录、填写表单、条件处理、滚动和验证。以下步骤突出了 Nova Act 的不同之处:步骤|指令:1 输入用户名并选择“下一步”;2 输入密码并选择“验证”;3 导航至“创建智能体”,然后选择“设计新规范”卡片;4 如果出现新手引导提示框,选择“跳过引导”,然后验证是否加载了正确的页面;5 填写智能体名称和描述字段;6 向下滚动,直到“目标陈述”字段可见,然后填写该字段;7 如果技能搜索框不可见,就滚动到它出现,然后搜索并添加一项技能;8 选择“保存”,确认成功提示,返回并验证新智能体是否出现在列表中。步骤 4 和 7 展示了条件逻辑:“如果某个元素出现,就处理它”以及“如果目标不可见,就滚动到它可见”。在传统框架中,这些模式需要显式编写分支。Nova Act 通过语言理解自然地处理这些情况。运行时隔离:Epsilon 在专用运行器服务(一个 FastAPI 边车)中运行 UI 测试,该服务将 nova-act 固定在支持 Workflow 和 IAM 身份验证的 3.x 版本,并包含 Amazon Bedrock AgentCore Browser Tool 客户端。这使依赖项与主后端分离,避免与 Strands 智能体技术栈发生冲突。如果运行器被禁用,工作进程会回退到进程内执行,以提高部署期间的韧性。最佳实践:根据将 UI 测试构建为平台能力的经验,Epsilon 团队提出以下建议:1. 用意图而非操作细节编写步骤。好的写法:“确认奖励余额可见”。不好的写法:await page.locator('#rewards-balance-container > span.amount').toBeVisible()。基于意图的步骤能够经受 UI 重新设计。可能不会编写代码的产品经理和质量保证(QA)负责人也能直接审阅这些步骤。2. 隔离 Nova Act 运行时。将 Nova Act 和 Amazon Bedrock AgentCore Browser Tool 的依赖项固定在专用服务或容器中。Epsilon 发现,无论浏览器会话位于哪个区域,Nova Act 的签名端点都指向 us-east-1。将其放在有独立依赖锁定文件的服务中,可以避免难以调试的冲突。3. 复用已记录的轨迹以降低成本。Epsilon 在草稿状态使用轨迹重试,保存成功的轨迹,并在活跃状态回放。重复运行会跳过多余的大语言模型(LLM)“思考”,从而降低回归式重复执行的延迟和成本。4. 从一开始就为多租户设计。使用跨账户 AssumeRole 和权限范围受限的 IAM 策略。每个租户的测试都在其自己的账户中,以其自己的角色运行。这无需为每个团队构建定制基础设施,就能提供隔离性、可审计性,并限制故障影响范围。5. 利用托管的可观测性能力。借助 Amazon Bedrock AgentCore Browser Tool,团队可以获得实时视图、会话录制和 AWS CloudTrail 集成。Epsilon 使用这些内置能力,而不是构建定制可观测性系统,从而减少维护工作,并为合规团队提供熟悉的审计渠道。6. 考虑 Amazon Bedrock AgentCore Browser Tool 的视口行为。在为 Nova Act 编写步骤提示时,要考虑 Amazon Bedrock AgentCore Browser Tool 的默认浏览器视口。提及滚动的步骤(例如“向下滚动,直到‘目标陈述’文本框可见”)可以验证 Nova Act 是否正确处理页面下方的内容。结果与影响:Epsilon 的 UI 测试能力已在多个团队中投入运行,多租户架构也已在生产环境中得到验证。维度|Amazon Nova Act|Playwright(等效):编写内容量|18 个自然语言步骤|约 80–150 行代码;选择器/DOM 检查|无|每个交互步骤都需要;编写时间(每个工作流)|约 5–10 分钟|约 30–90 分钟;工作量比率|基准|工作量增加 4–6 倍。测量结果如下:测试编写速度提高 4–6 倍(基于 Epsilon 的内部基准测试)。一个具有代表性的 18 步工作流使用 Nova Act 编写耗时 5–10 分钟,而等效的 Playwright 脚本(80–150 行代码)耗时 30–90 分钟。Playwright 脚本中的每个交互步骤都需要检查 DOM、选择稳定的选择器,并编写显式等待、断言和条件分支。Nova Act 用 18 条自然语言指令取代了这些逐步工作,无需检查选择器或 DOM,条件逻辑(例如处理引导提示框和滚动到元素可见)也用普通英语表达。轨迹回放通过率为 100%(基于 Epsilon 的内部基准测试)。工作流通过初始探索阶段(通常需要 4–5 次提示迭代)后,Epsilon 会保存成功的轨迹并以确定性方式回放。在重复运行中,已保存轨迹的通过率达到 100%。降低测试编写门槛。步骤读起来像普通英语。核心测试工程师之外的团队成员也能阅读、审查和提出测试建议,从而让更多人参与质量保障。内置审计轨迹。AWS CloudTrail 集成和 Amazon Bedrock AgentCore Browser Tool 会话录制让调试及合规沟通更加容易。这是团队最初没有预期到的收益。各团队无需承担基础设施开销。已接入的团队通过与其他所有平台智能体相同的 API 接口获得 UI 测试能力。无需管理浏览器二进制文件、Selenium 网格或显示服务器。每个步骤的通过/失败状态清晰可见。每一步截取的屏幕截图提供细粒度的调试上下文,缩短诊断故障的平均时间。“Nova Act 让我们把 UI 测试从一项脆弱、需要不断追着选择器修改的繁琐工作,转变为托管的平台能力。现在,我们的测试用普通英语描述意图,在 AWS 托管的浏览器上运行,而我们接入的每个产品团队无需额外配置就能获得可靠的测试能力。”——Epsilon Agentic Platform 团队。了解更多:Epsilon 的 Agentic Platform 团队展示了如何使用 Amazon Nova Act 和 Amazon Bedrock AgentCore Browser Tool,将具有韧性的意图驱动 UI 测试作为托管服务交付。您可以将同样的模式应用于自己的多租户平台,以消除浏览器基础设施的运营负担,并让非工程师也能编写测试。如果您希望使用 Amazon Nova Act 和 Amazon Bedrock AgentCore Browser Tool 构建类似的意图驱动 UI 测试能力,可以从以下资源入手:Amazon Nova Act 文档;Amazon Bedrock AgentCore Browser Tool 用户指南;PyPI 上的 Nova Act Python SDK;Amazon Bedrock AgentCore 文档;Nova Act + Amazon Bedrock AgentCore Browser Tool 示例代码(GitHub)。相关文章:使用 Amazon Nova Act 通过智能体式 QA 自动化加速软件交付。要进一步了解贵组织如何将基于意图的浏览器自动化用于测试,请访问 Amazon Nova Act 产品页面。Epsilon 是阳狮集团旗下公司。详情请访问 epsilon.com。关于作者:Sakthivel Chellapparimanam。Sakthivel 是 Amazon Web Services 的解决方案架构师,常驻印度金奈。他与企业客户合作,推动 AI/ML 采用、智能体架构和云原生现代化。Sidhartha Kotha。Sidhartha 是 AWS 的技术客户经理。他与企业客户合作开发 AI 驱动的解决方案,重点关注如何采用生成式 AI 提高运营效率。工作之余,他喜欢探索开源自动化框架,并指导有志成为云工程师的人。Manik Sahu。Manik 是 Epsilon 的高级软件工程经理,专长于数据工程、智能体 AI 和云架构。他常驻班加罗尔,在使用 FastAPI、Amazon Bedrock 和 LangGraph 等框架设计先进技术系统方面拥有丰富经验。Swastika Sinha。Swastika 是 Epsilon 的软件工程师,在印度班加罗尔的 Agentic Platform 团队工作。她的工作重点是设计和构建生成式 AI 平台及服务,以支持 AI 智能体、知识图谱、MCP 服务器、智能体工作流和其他下一代生成式 AI 技术的构建与托管。Sekh Mohammad Warish。Sekh 是常驻达拉斯的 AWS 高级技术客户经理,在生成式 AI、SAP 和云现代化领域拥有 22 年的 IT 经验。他帮助企业客户采用智能体 AI 和 Amazon Nova 等新兴技术,并将其转化为可用于生产环境的解决方案。他因获得最多 IT 认证而成为 World and India Book of Records 的纪录保持者,并将终身学习的热情投入到每次客户合作中。Sudeesh Veettil。Sudeesh 是 AWS 的高级技术客户经理,常驻得克萨斯州达拉斯地区,在科技行业拥有超过 20 年的经验。他帮助企业客户在 AWS 上设计、构建和运行安全、具有韧性且高效的解决方案,专长于 AI 工作负载的卓越运营和韧性工程。