AWS Machine Learning Blog

Building intent-driven UI testing with Amazon Nova Act

6.9内容质量
Building intent-driven UI testing with Amazon Nova Act

TL;DR · AI 摘要

Building intent-driven UI testing with Amazon Nova Act Artificial Intelligence Building intent-driven UI testing with Am...

核心要点

  • 主题聚焦:Building intent-driven UI testing with Amazon No
  • 来源:AWS Machine Learning Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#前端#后端#云计算
打开原文

使用 Amazon Nova Act 构建意图驱动的 UI 测试 | 人工智能

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

为了在产品团队之间扩展意图驱动的 UI 测试,数据、技术和营销服务公司 Epsilon(隶属于 Publicis Groupe)选择了 Amazon Nova Act。Epsilon 拥有数亿消费者档案和数千个品牌合作关系,需要能够跟上应用程序快速变化的 UI 测试方案。该方案不能为每个产品团队带来额外的维护负担。

在 Epsilon 内部,由 50 名工程师组成的 Agentic 平台团队构建共享基础设施,使其他产品团队能够安全地构建、部署、治理和运行 AI 代理。通过该共享平台,各团队可以获得基于技能的代理构建器,同时获得联邦身份和预飞行授权、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 工具的集成代码,突出一个具体的 18 步测试工作流程,并分享最佳实践和实际效果数据。

挑战:增强覆盖率,而非取代现有方案

Epsilon 现有的 UI 测试实践并非存在缺陷。团队维护着基于 Playwright 的回归测试套件,用于验证其 Web 应用程序的功能,且运行良好。目前 Playwright 仍是其回归测试的核心框架。

Epsilon 识别到的机会是补充性的而非替代性的:

  • 基于脚本的 Playwright 测试适用于确定性回归检查,但与选择器和页面结构紧密耦合。即使底层功能正常,UI 的外观更改也可能导致测试失败。
  • 多个产品团队需要针对各自应用程序的完整测试覆盖率。为每个团队搭建浏览器基础设施、管理依赖项以及与身份系统集成,造成了重复性工作。
  • 平台团队希望将 UI 测试作为符合现有代理模型的托管能力,而非要求每个团队自行操作的定制 CLI 工具。

目标:在现有 Playwright 回归测试套件之上叠加意图驱动测试。以多租户平台服务形式交付,使每个 Epsilon 产品团队都能通过与其他代理功能相同的 API 接口进行调用。

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

Epsilon 根据两个需求评估了各种方案:自然语言测试编写(用于补充基于选择器的 Playwright 测试)和托管浏览器基础设施(用于适配其多租户平台模型)。通过将 Amazon Nova Act 与 Amazon Bedrock AgentCore Browser 工具结合使用,Epsilon 能够同时满足这两个需求。

  • 自然语言步骤。由 Nova Act 执行的测试步骤是用普通英语书写的指令,对界面美观性变化具有弹性,且非技术人员也能轻松阅读。像“确认奖励余额可见”这样的步骤比脆弱的 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 平台团队对拥有这些基础设施毫无兴趣。

解决方案:架构与实现

Epsilon 的解决方案包含三个主要组件:用于创建工作流的平台 API、用于执行工作流的后台任务执行器,以及驱动浏览器的 Nova Act 和 Amazon Bedrock AgentCore Browser Tool 集成。

平台架构

Epsilon 的 UI 测试能力遵循清晰的流程:

  • 用户通过平台 API 创建工作流,指定目标 URL 和自然语言步骤列表。
  • 创建时,平台会在 AWS 上注册一个 Nova Act 工作流定义。
  • 执行时,后台任务执行器(Celery,一个用于异步作业处理的 Python 框架)会启动 Amazon Bedrock AgentCore Browser Tool 的浏览器会话。它通过 Nova Act 使用 Chrome DevTools Protocol(CDP)WebSocket(控制 Chromium 浏览器的标准接口)执行每一步骤,包括条件逻辑(例如“如果出现引导框,跳过它”)。
  • 系统为每一步骤捕获截图,跟踪每一步骤的通过/失败状态,计算整体通过率,并存储所有内容(结果 JSON、Amazon S3 中的截图、会话 ID)。
  • 完成后触发回调钩子,将结果记录回平台。

图 1:Epsilon 的 UI 测试服务架构

图 1 展示了 Epsilon 的 UI 测试服务的分层架构。用户请求从 Agent Cloud Frontend 流入,经过带有认证和权限检查的 API Gateway。API 层(Django REST)暴露了工作流、执行、自动化套件和统计信息的端点。业务逻辑层包含工作流管理器、执行编排器和套件协调器。测试任务在 Amazon Simple Queue Service(Amazon SQS)中排队,由运行在 Amazon Elastic Container Service(Amazon ECS)上的 Runner 服务处理,该服务包含 Nova Act 引擎和无头 Chromium 浏览器。结果、截图、轨迹和 HTML 报告存储在 Amazon S3 中。

该功能以标准代理(ui-test-agent)的形式公开,具备两项技能:

  • ui-test-recorder:交互式探索场景并记录自然语言步骤。
  • ui-test-executor:运行已记录的步骤并返回结构化结果。

已接入的团队通过与平台其他代理相同的方式使用UI测试功能,无需额外基础设施管理。接入流程简单直接。平台团队会为新团队创建跨账户IAM角色,注册目标应用URL,并通过现有平台API授予对ui-test-agent的访问权限。从此时起,团队可通过已有接口创建工作流、触发执行并获取结果。

核心集成

Nova Act与Amazon Bedrock AgentCore Browser Tool的集成实现如下:

code
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 sidecar)中运行UI测试,该服务固定使用nova-act 3.x并支持Workflow和IAM认证,同时集成Amazon Bedrock AgentCore Browser Tool客户端。这将依赖项与主后端隔离,避免与Strands代理堆栈冲突。如果运行器被禁用,工作线程会回退到进程内执行,确保部署期间的弹性。

最佳实践

基于构建平台化UI测试的经验,Epsilon团队建议:

1. 以意图而非操作步骤编写步骤

code
良好示例: "确认奖励余额可见"
不良示例: 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脚本需要30-90分钟(80-150行代码)。Playwright脚本中每个交互步骤都需要进行DOM检查、选择稳定选择器,并编写显式等待、断言和条件分支代码。Nova Act用18条自然语言指令替代了这些每步开销,无需任何选择器或DOM检查,条件逻辑(如tour-box和scroll-until-visible步骤)用纯英文表达。
  • 轨迹重放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 产品页面 。

Epsilon 是 Publicis Groupe 公司。了解更多请访问 epsilon.com 。

关于作者

'"`