> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 测试与视频录制

> Devin 如何对你的更改进行端到端测试，并将视频录制作为证明发送给你

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

<div id="how-it-works">
  ## 工作原理
</div>

在 Devin 创建 PR 之后，它可以进入**测试模式**——在这个结构化的工作流中，Devin 会：

1. **搭建环境**——安装依赖、启动服务、登录所需账号
2. **规划测试**——阅读 diff 和代码库，制定一个精简且聚焦的测试计划
3. **录制视频**——开始屏幕录制，在桌面环境中执行测试计划，并对关键步骤进行标注
4. **将结果发送给你**——停止录制、处理视频，并将其作为消息附件发送给你

目标是生成一段简短的录屏，让代码审查者看完后能立刻判断“没问题，可以正常工作”，然后合并这个 PR。

<div id="triggering-a-test">
  ## 触发测试
</div>

创建 PR 后，Devin 会主动提示你测试应用。点击 **Test the app** 让 Devin 开始执行测试流程。

<Frame>
  <img src="https://mintcdn.com/cognitionai/t3ELyAdF5CfeLLyT/images/test-the-app-button.png?fit=max&auto=format&n=t3ELyAdF5CfeLLyT&q=85&s=6e7cc949688beb051244c06844a7f509" alt="测试应用按钮" width="276" height="96" data-path="images/test-the-app-button.png" />
</Frame>

<Info>即将推出在创建 PR 后自动运行测试的设置——无需点击按钮。</Info>

在会话过程中的任何时刻，你也可以让 Devin 运行测试——例如输入 “test the changes you just made and send me a recording” 或 “verify the login page works and send me a video”。

<div id="the-testing-workflow">
  ## 测试工作流程
</div>

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

<div id="phase-1-setup">
  ### 阶段 1：设置
</div>

在开始任何测试之前，Devin 会先完成环境准备：

* **阅读 PR 和代码库**，以明确需要测试的内容
* **检查仓库中是否存在相关技能** (位于 `.agents/skills/` 下) ，如有则按其指引执行
* **登录所需服务** 并排查、解决访问问题
* **检查可用环境** (staging、dev、本地) ，并验证连通性
* **在需要时向你请求缺失的 secrets** —— Devin 会预先索取凭据，并将其保存，以便后续会话复用

<Tip>
  提前完成 [环境配置](/zh/onboard-devin/environment) 能显著加快测试过程 —— Devin 就可以在每次会话开始时跳过安装依赖、配置服务和登录等步骤。
</Tip>

<Tip>当 Devin 在测试过程中向你索取凭据时，它会将这些凭据保存为后续会话可用的 [secrets](/zh/product-guides/secrets)，这样你只需提供一次。</Tip>

<div id="phase-2-test-planning">
  ### 阶段 2：测试规划
</div>

设置完成后，Devin 会编写一个简短的测试计划：

* 找出能够证明功能可用的**单一最重要端到端流程**
* 编写具体且明确的步骤 (例如，“点击右上角标有 Save 的按钮”——而不是“找到保存选项”)
* 以实际代码为基础——从前端代码入手，追踪到该功能对应的精确 UI 路径
* 只有在存在真正关键的边缘情况时才会补充额外的测试流程

Devin 会在执行之前将该计划作为一条简短消息发给你，方便你在需要时进行调整。

<div id="phase-3-recording-and-execution">
  ### 阶段 3：录制与执行
</div>

在 CI 通过且所有评审意见都已处理后，Devin 会执行测试：

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

<div id="video-recording-details">
  ## 视频录制详情
</div>

Devin 的屏幕录制具有多项便于回顾的功能：

* **注释** — 在视频的关键时刻会出现文本标签，用于标注 Devin 正在测试的内容。视频会在带注释的片段附近减速播放，方便你看清细节。
* **自动缩放** — 视频会自动放大 Devin 点击和交互的位置，平滑地跟随光标移动，并在空闲时段平滑缩回视野。
* **自动处理** — 原始录制会经过处理，以突出重要操作并压缩空闲时段。
* **作为附件发送** — 视频会作为附件附加在会话消息中，可直接在 Devin Web 应用或 Slack 中查看。

这些录制被设计为简短且聚焦——相当于一次**快速 sanity check**，通过一个主要的端到端流程来证明功能正常工作。如果你需要更全面的覆盖，请使用你现有的测试套件和 CI，而不是依赖可视化录制。

<div id="skill-suggestions">
  ## 技能建议
</div>

在测试你的应用后，Devin 会记录它尝试过的步骤以及哪些方法奏效了——例如设置步骤、环境配置、如何启动应用——并建议通过 PR 创建或更新一个 [Skill](/zh/product-guides/skills)。你可以直接合并该 PR，或者在此基础上微调以优化说明。随着时间推移，这意味着 Devin 在测试你的项目方面会不断变得更好——每次会话的经验都会累积到下一次。

你也可以在任何时候让 Devin 这样做 (例如，“create a skill for how to test this app”) 。关于创建和管理技能的完整说明，请参阅 [Skills guide](/zh/product-guides/skills)。

下面是一个测试技能的示例：

```markdown theme={null}
---
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
```

在编写或优化技能时，请明确要验证的内容：

<CardGroup cols={2}>
  <Card title="清晰的说明" icon="check">
    * "测试结账流程：将商品加入购物车，进入结账页，填写表单，并核实订单确认页显示的总金额是否正确"
    * "验证设置页面上的深色模式开关是否正常工作——文本应清晰可读，且没有元素消失"
    * "测试 CSV 导出功能是否会下载一个包含正确表头的文件"
  </Card>

  <Card title="含糊的说明" icon="xmark">
    * "把所有东西都测试一遍"
    * "确保应用能正常工作"
    * "检查没有任何问题"
  </Card>
</CardGroup>

<div id="troubleshooting">
  ## 故障排除
</div>

<div id="devin-didnt-offer-to-test">
  ### Devin 没有主动提出测试
</div>

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

<div id="recording-failed">
  ### 录制失败
</div>

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

<div id="devin-cant-access-the-app">
  ### Devin 无法访问应用
</div>

如果 Devin 在测试过程中无法访问你的应用 (例如由于登录限制、需要使用 VPN 等) ，它会向你请求帮助。你可以使用 [secrets](/zh/product-guides/secrets) 提供凭据，使用 [Interactive Browser](/zh/work-with-devin/devin-session-tools#interactive-browser) 手动完成身份验证步骤，或者完成 [环境配置](/zh/onboard-devin/environment) 预先配置访问权限，这样 Devin 就不会遇到这些问题。
