Chrome 录制器 (Recorder) 与 Puppeteer:自动化测试的新范式

2 阅读1分钟

目录 (Outline)


一、 自动化测试的「难」:为什么手写脚本这么慢?

1. 历史局限

传统的自动化测试开发:

  • 定位元素难:需要手动查找复杂的 CSS 选择器或 XPath。
  • 维护成本高:页面稍微一改,脚本就失效。
  • 调试耗时:脚本运行失败后,很难还原当时的现场。

2. 痛点

开发者往往因为手写脚本太麻烦而放弃编写 E2E(端到端)测试。


二、 Chrome Recorder:浏览器内置的录制器

Chrome 101+ 引入了原生的 Recorder 面板。

核心特性

  1. 零配置:无需安装任何插件,F12 即可开启。
  2. 多重定位方案:它会自动记录多种选择器(Selector),确保脚本的鲁棒性。
  3. 性能集成:录制过程中可以同步捕获性能指标。

三、 核心功能:录制、回放与性能剖析

1. 录制 (Recording)

它会捕捉你的每一次点击、输入、滚动和页面跳转。

2. 回放 (Replay)

你可以随时在浏览器中重现之前的操作,并支持设置不同的网络环境(如 3G/Offline)。


四、 快速上手:录制一个复杂的用户登录流程

实现步骤

  1. 打开 DevTools -> More tools -> Recorder。
  2. 点击「Start new recording」。
  3. 在页面上执行:输入账号 -> 输入密码 -> 点击登录 -> 跳转到个人中心。
  4. 点击「End recording」。

此时,你已经获得了一个完整的交互流。


五、 进阶:一键导出为 Puppeteer/Cypress 脚本

这是录制器最强大的地方。你可以将录制的流程直接导出为 Puppeteer 脚本:

// 导出的 Puppeteer 脚本示例
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  await page.goto('https://example.com/login');
  await page.type('#username', 'test_user');
  await page.click('#submit-btn');
  
  await browser.close();
})();

六、 实战 1:在 CI/CD 中集成录制生成的测试脚本

导出的脚本是标准的 Node.js 代码。

  1. 代码提交:将录制的脚本存入项目的 tests 目录。
  2. GitHub Actions:在 CI 中运行 npm test
  3. 自动报告:一旦页面逻辑变更导致录制流程走不通,CI 就会报错。

七、 实战 2:利用录制器进行性能回测 (Performance Replay)

在 Recorder 中,你可以点击「Replay with Performance insights」。

  • 它会自动在后台开启 Performance 面板。
  • 录制流程结束后,你会看到每一个交互动作对应的 LCPCLSINP 指标。

这种方式让「交互性能测试」变得前所未有的简单。


八、 总结:自动化测试进入「低代码」时代

Chrome Recorder + Puppeteer 的组合,彻底改变了 E2E 测试的生产方式。它让非技术人员(如 QA 或 PM)也能参与到自动化测试的构建中,真正实现了「测试驱动开发」。