跳转到主要内容
Devin 可以在创建 PR 后对你的应用程序进行端到端测试——在本地运行应用程序、通过浏览器与之交互,并录制整个过程的视频。录制文件会作为附件直接发送给你,这样你无需自己拉取分支就能验证更改是否生效。

工作原理

在 Devin 创建 PR 之后,它可以进入测试模式——在这个结构化的工作流中,Devin 会:
  1. 搭建环境——安装依赖、启动服务、登录所需账号
  2. 规划测试——阅读 diff 和代码库,制定一个精简且聚焦的测试计划
  3. 录制视频——开始屏幕录制,在桌面环境中执行测试计划,并对关键步骤进行标注
  4. 将结果发送给你——停止录制、处理视频,并将其作为消息附件发送给你
目标是生成一段简短的录屏,让代码审查者看完后能立刻判断“没问题,可以正常工作”,然后合并这个 PR。

触发测试

创建 PR 后,Devin 会主动提示你测试应用。点击 Test the app 让 Devin 开始执行测试流程。
测试应用按钮
即将推出在创建 PR 后自动运行测试的设置——无需点击按钮。
在会话过程中的任何时刻,你也可以让 Devin 运行测试——例如输入 “test the changes you just made and send me a recording” 或 “verify the login page works and send me a video”。

测试工作流程

当 Devin 进入测试模式时,会按照规范的三阶段流程进行:

阶段 1:设置

在开始任何测试之前,Devin 会先完成环境准备:
  • 阅读 PR 和代码库,以明确需要测试的内容
  • 检查仓库中是否存在相关技能(位于 .agents/skills/ 下),如有则按其指引执行
  • 登录所需服务 并排查、解决访问问题
  • 检查可用环境(staging、dev、本地),并验证连通性
  • 在需要时向你请求缺失的机密信息 —— Devin 会预先索取凭证,并将其保存,以便后续会话复用
提前完成 Repo Setup 能显著加快测试过程 —— Devin 就可以在每次会话开始时跳过安装依赖、配置服务和登录等步骤。
当 Devin 在测试过程中向你索取凭证时,它会将这些凭证保存为后续会话可用的 secrets,这样你只需提供一次。

阶段 2:测试规划

设置完成后,Devin 会编写一个简短的测试计划:
  • 找出能够证明功能可用的单一最重要端到端流程
  • 编写具体且明确的步骤(例如,“点击右上角标有 Save 的按钮”——而不是“找到保存选项”)
  • 以实际代码为基础——从前端代码入手,追踪到该功能对应的精确 UI 路径
  • 只有在存在真正关键的边缘情况时才会补充额外的测试流程
Devin 会在执行之前将该计划作为一条简短消息发给你,方便你在需要时进行调整。

阶段 3:录制与执行

在 CI 通过且所有评审意见都已处理后,Devin 会执行测试:
  1. 开始录制 — 录制整个屏幕
  2. 标注关键时刻 — 在重要节点添加文本标签(例如,“测试登录流程”、“功能已确认可用”),这些标签会出现在最终视频中
  3. 执行测试计划 — 通过浏览器与应用交互,按测试计划逐步执行每个步骤
  4. 停止录制 — 视频会自动处理,在关键时刻添加标注并调整播放速度
  5. 发送视频 — 将录制内容附加到一条消息中,便于你直接观看

视频录制详情

Devin 的屏幕录制具有多项便于回顾的功能:
  • 注释 — 在视频的关键时刻会出现文本标签,用于标注 Devin 正在测试的内容。视频会在带注释的片段附近减速播放,方便你看清细节。
  • 自动缩放 — 视频会自动放大 Devin 点击和交互的位置,平滑地跟随光标移动,并在空闲时段平滑缩回视野。
  • 自动处理 — 原始录制会经过处理,以突出重要操作并压缩空闲时段。
  • 作为附件发送 — 视频会作为附件附加在会话消息中,可直接在 Devin Web 应用或 Slack 中查看。
这些录制被设计为简短且聚焦——相当于一次快速 sanity check,通过一个主要的端到端流程来证明功能正常工作。如果你需要更全面的覆盖,请使用你现有的测试套件和 CI,而不是依赖可视化录制。

技能建议

在测试你的应用后,Devin 会记录它尝试过的步骤以及哪些方法奏效了——例如设置步骤、环境配置、如何启动应用——并建议通过 PR 创建或更新一个 Skill。你可以直接合并该 PR,或者在此基础上微调以优化说明。随着时间推移,这意味着 Devin 在测试你的项目方面会不断变得更好——每次会话的经验都会累积到下一次。 你也可以在任何时候让 Devin 这样做(例如,“create a skill for how to test this app”)。关于创建和管理技能的完整说明,请参阅 Skills guide 下面是一个测试技能的示例:
---
name: test-before-pr
description: Run the local dev server and verify pages before opening any PR that touches frontend code.
---

## Setup

1. Install dependencies: `npm install`
2. Start the database: `docker-compose up -d postgres`
3. Run migrations: `npx prisma migrate dev`
4. Start the dev server: `npm run dev`
5. Wait for "Ready on http://localhost:3000"

## Verify

1. Read the git diff to identify which pages changed
2. Open each affected page in the browser
3. Check for: console errors, layout issues, broken links
4. Screenshot each page at desktop (1280px) and mobile (375px) widths

## Before Opening the PR

1. Run `npm run lint` and fix any issues
2. Run `npm test` and confirm all tests pass
3. Include screenshots in the PR description
在编写或优化技能时,请明确要验证的内容:

清晰的说明

  • “测试结账流程:将商品加入购物车,进入结账页,填写表单,并核实订单确认页显示的总金额是否正确”
  • “验证设置页面上的深色模式开关是否正常工作——文本应清晰可读,且没有元素消失”
  • “测试 CSV 导出功能是否会下载一个包含正确表头的文件”

含糊的说明

  • “把所有东西都测试一遍”
  • “确保应用能正常工作”
  • “检查没有任何问题”

故障排除

Devin 没有主动提出测试

Testing 模式适用于 Devin 在会话中创建了包含代码更改的拉取请求(PR)时。如果 Devin 没有主动提出,你可以直接询问:“你能测试这些更改并录一段视频吗?”

录制失败

如果录制处理失败,Devin 会通知你。常见原因包括应用在测试过程中崩溃,或视频处理超时。Devin 可以重试——只要对它说“Try recording again”。录制文件会存储在 Devin 的机器上,如有需要,你可以随时让 Devin 把这些文件发给你。

Devin 无法访问应用

如果 Devin 在测试过程中无法访问你的应用(例如由于登录限制、需要使用 VPN 等),它会向你请求帮助。你可以使用 secrets 提供凭据,使用 Interactive Browser 手动完成身份验证步骤,或者完成 Repo Setup 预先配置访问权限,这样 Devin 就不会遇到这些问题。