用 Amazon Nova Act 构建意图驱动的 UI 测试

AWS ML Blog 2026-10-29T21:55:30.764421

为了在多个产品团队之间推广这种按意图驱动的 UI 测试,Epsilon 选择了 Amazon Nova Act。Epsilon 是一家数据、技术与营销服务公司,隶属于 Publicis Groupe。它拥有数亿消费者画像和数千个品牌合作关系,因此需要一套能跟得上应用快速迭代的 UI 测试方案,而且这套方案不能给每个产品团队都带来额外的维护负担。

在 Epsilon 内部,Agentic Platform 团队(50 名工程师)负责搭建共享基础设施,让其他产品团队能够安全地构建、部署、治理和运行 AI 智能体(agent)。借助这个共享平台,各团队可以获得基于技能(skills)的智能体构建器,还能用到联邦身份与预检授权、Model Context Protocol(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 测试做成一项托管能力,融入现有的 agent 模型,而不是让每个新接入的团队都去操作一套定制命令行工具。目标是:在现有 Playwright 回归测试套件之上叠加基于意图的测试,并以多租户平台服务的形式交付,让每个 Epsilon 产品团队都能通过他们使用其他所有 agent 能力时相同的 API 接口来调用。

Epsilon 为什么选择 Amazon Nova Act 和 Amazon Bedrock AgentCore Browser Tool

Epsilon 根据两项需求评估了各个方案:用自然语言编写测试(作为基于选择器的 Playwright 测试的补充),以及托管浏览器基础设施(以匹配他们的多租户平台模型)。Amazon Nova Act 与 Amazon Bedrock AgentCore Browser Tool 结合,正好同时满足这两点。

自然语言步骤。 测试步骤是用平实英文写的指令,由 Nova Act 执行。它们对 UI 外观变化有韧性,非工程师也能读懂。像“确认奖励余额可见”这样的步骤,比一个脆弱的 CSS 选择器更经得起时间考验。

AWS 托管的临时浏览器会话。 借助 Amazon Bedrock AgentCore Browser Tool,团队获得的是隔离的浏览器实例,不需要分发二进制文件,也不需要维护显示服务器。Amazon Bedrock AgentCore Browser Tool 还提供实时查看功能,供人工观察或接管(对 CAPTCHA 或多因素认证很有用),支持将会话录制到 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 的方案包含三个主要部分:用于创建工作流的平台 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 测试服务架构

图 1 展示了 Epsilon UI 测试服务的分层架构。用户请求从 Agent Cloud 前端发出,经过带身份验证和权限检查的 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。

这项能力以一个标准智能体(agent)的形式对外提供,名字叫 ui-test-agent,包含两个技能:

接入的团队使用 UI 测试的方式,和其他平台智能体完全一样,不需要额外维护任何基础设施。

接入流程也很直接:平台团队为新团队配置一个跨账号 IAM 角色,登记目标应用 URL,再通过现有的平台 API 授予 ui-test-agent 的访问权限。之后,团队就可以创建 workflow、触发执行、获取结果,用的还是他们访问其他平台能力时的那套接口。

核心集成

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 在此基础上叠加了平台自身的能力:多租户编排、结果采集和可观测性层。

示例:自动化「创建 agent」流程

为了说明意图驱动测试的实际效果,下面给出 Epsilon 平台上一个有代表性的工作流。它覆盖了登录、表单填写、条件处理、滚动和验证等环节。这些步骤体现了 Nova Act 的差异化模式:

步骤 指令
1 输入用户名,点击 Next
2 输入密码,点击 Verify
3 导航到 Create Agent,选择 Design a new specification 卡片
4 如果出现引导提示框,点击 Skip Tour,然后确认页面正确加载
5 填写 agent 名称和描述字段
6 向下滚动直到 Goal Statement 字段可见,然后填写
7 如果技能搜索框不可见,滚动直到它出现,然后搜索并添加一个技能
8 点击 Save,确认成功提示,返回上一页,验证新 agent 出现在列表中

第 4 步和第 7 步展示了条件逻辑:「如果某个元素出现,就处理它」以及「如果目标不可见,就滚动直到它出现」。在传统测试框架中,这类逻辑需要显式写分支判断。Nova Act 通过语言理解就能自然处理。

运行时隔离

Epsilon 把 UI 测试放在一个专用的 runner 服务里运行——这是一个 FastAPI sidecar(边车容器),固定使用 nova-act 3.x 版本,支持 Workflow 和 IAM 认证,同时引入 Amazon Bedrock AgentCore Browser Tool 客户端。这样依赖就与主后端隔离开,不会和 Strands agent 的技术栈冲突。如果 runner 被禁用,worker 会回退到进程内执行,保证部署期间仍能运行。

最佳实践

基于将 UI 测试作为平台能力来建设的经验,Epsilon 团队给出以下建议:

  1. 把步骤写成意图,而不是操作细节

好:「确认奖励余额可见」

BAD: await page.locator('#rewards-balance-container > span.amount').toBeVisible() 基于意图的步骤在界面改版后依然有效。即使是不写代码的产品经理和 QA 负责人,也能直接看懂这些步骤。

2. 隔离 Nova Act 运行时

把 Nova Act 和 Amazon Bedrock AgentCore Browser Tool 的依赖固定在一个独立服务或容器里。Epsilon 发现,不管浏览器会话在哪个区域,Nova Act 的签名端点都指向 us-east-1。把它放到独立服务里、用它自己的依赖锁定文件,可以避免那些很难排查的冲突。

3. 复用已录制的轨迹来降低成本

Epsilon 在 draft 状态下用轨迹重试,保存成功的轨迹,再在 active 状态下回放。重复运行时跳过多余的 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 的浏览器视口默认值。涉及滚动的步骤(比如“向下滚动,直到看到 Goal Statement 文本框”)要验证 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 的智能体 QA 自动化加速软件交付

想进一步了解你的组织如何将基于意图的浏览器自动化用于测试,请访问 Amazon Nova Act 产品页面。

Epsilon 是 Publicis Groupe 旗下公司。了解更多请访问 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 常驻达拉斯的高级技术客户经理(TAM),拥有 22 年 IT 从业经验,覆盖生成式 AI、SAP 和云现代化等领域。他帮助大型企业客户引入智能体 AI、Amazon Nova 等新兴技术,并把它们落地为可上线运行的方案。他保持着 IT 认证数量最多的世界纪录和印度纪录,热衷学习,并把这份热情带进每一次客户合作。

Sudeesh Veettil 是 AWS 常驻德克萨斯州达拉斯地区的高级技术客户经理,在技术行业有 20 多年经验。他帮助大型企业客户在 AWS 上设计、构建并运维安全、可靠、高效的解决方案,专长是 AI 工作负载的运维卓越与韧性工程。

Epsilon 的 Agentic Platform 团队把 UI 测试做成了一项托管的多租户服务,底层基于 Amazon Nova Act 和 Amazon Bedrock AgentCore Browser Tool。测试用例用普通英文编写,运行在由 AWS 托管的浏览器上,让每个产品团队都能获得稳健的意图驱动测试,而无需各自承担任何基础设施开销。

查看原文