adding-e2e-tests:用 Agent Skill 從零搭建 Playwright 端到端測試

前言

前端項目上線前,單元測試能覆蓋函數邏輯,卻常常覆蓋不了「用戶真的點得動、頁面真的打得開」。端到端(E2E)測試用真實瀏覽器走一遍關鍵流程,是質量保障裏性價比很高的一環。但要把 Playwright 裝起來、寫好 playwright.config.ts、補 smoke test、配 npm 腳本、接 GitHub Actions,往往要翻好幾份文檔,還容易漏掉 .gitignore 或 CI 裏瀏覽器依賴的安裝步驟。

如果你已經在用 Cursor、Claude Code 等 AI 編程工具,可以把這套流程交給 Agent——前提是它知道「從零搭 E2E」的標準步驟。adding-e2e-tests 就是爲此寫的一份 Agent Skill:一份 SKILL.md 指令文件,教 Agent 按固定流程在你的項目裏落地 Playwright 測試。

這是什麼

adding-e2e-tests 出自社區維護的 awesome-cursor-skills 倉庫,由 spencerpauly 整理收錄,歸類在倉庫的 Testing 分類下。它遵循通用的 Agent Skills 格式(SKILL.md + YAML frontmatter),可在 Cursor、Claude Code、Codex CLI 等支持該格式的 AI 編程工具中使用。

Skill 的官方描述是:Set up Playwright end-to-end testing in a project, including test configuration, example tests, and CI integration. 換句話說,它不是幫你「跑一下現有測試」,而是指導 Agent 從零搭建 Playwright E2E 基礎設施——安裝依賴、生成配置、寫示例用例、接 CI,一步不漏。

與同倉庫裏的 recording-browser-flow-as-test(把瀏覽器操作錄製成測試)互補;與 Anthropic 官方的 webapp-testing(側重用 Playwright 驗證已運行的 Web 應用)相比,adding-e2e-tests 更聚焦「項目裏還沒有 E2E 框架時,如何一次性搭好」。

核心功能與亮點

根據官方 SKILL.md,Agent 在加載該 Skill 後,會按以下能力協助你:

1. Playwright 安裝與初始化

  • 新項目推薦 npm init playwright@latest,自動生成 playwright.config.tstests/ 目錄並安裝瀏覽器。
  • 若項目已有其他測試框架,可手動安裝:
npm install -D @playwright/test
npx playwright install

2. 配置文件規範

  • 設置 baseURL 指向本地開發服務器(如 http://localhost:3000)。
  • 配置 webServer,讓測試前自動啓動 dev server:
webServer: {
  command: "npm run dev",
  url: "http://localhost:3000",
  reuseExistingServer: !process.env.CI,
},
  • 本地開發只啓用 Chromium 以提速;CI 環境啓用全部瀏覽器做跨瀏覽器驗證。

3. Smoke Test 與 Page Object

  • 生成基礎冒煙測試,驗證首頁能否加載:
import { test, expect } from "@playwright/test";

test("homepage loads", async ({ page }) => {
  await page.goto("/");
  await expect(page).toHaveTitle(/.+/);
});
  • 對較大應用,建議創建 tests/pages/ 目錄,用 Page Object 模式封裝選擇器與操作。

4. npm 腳本與忽略規則

  • package.json 中添加:
{
  "test:e2e": "playwright test",
  "test:e2e:ui": "playwright test --ui"
}
  • .gitignore 中排除 test-results/playwright-report/blob-report/

5. CI 集成

  • 在 GitHub Actions 中執行 npx playwright install --with-deps,再跑 npm run test:e2e
  • 失敗時用官方 actions/upload-artifact 上傳 HTML 報告,便於排查。

6. 編寫最佳實踐(Notes)

  • 選擇器優先用 data-testid,避免依賴易變的 CSS class。
  • test.describe 分組相關用例。
  • 可用 npx playwright codegen 交互式錄製測試。

測試自動化是 AI Agent 最有價值的應用場景之一:Agent 能按 Skill 逐步執行命令、改配置、寫文件,比每次口頭描述「幫我加 E2E」更穩定、可復現。

安裝與啓用

方式一:手動複製(Cursor 官方推薦路徑)

awesome-cursor-skills README 說明,Skill 文件可複製到 .cursor/skills/ 目錄,Agent 會自動發現。操作步驟:

  1. 從倉庫下載 resources/adding-e2e-tests/SKILL.md
  2. 放到項目目錄:.cursor/skills/adding-e2e-tests/SKILL.md(全局可用則放到 ~/.cursor/skills/)。

方式二:使用 npx skills CLI

vercel-labs/skills 是 Agent Skills 生態的通用安裝工具,skills.sh 上也可查到該 Skill 的安裝命令:

# 安裝到 Cursor
npx skills add spencerpauly/awesome-cursor-skills --skill adding-e2e-tests -a cursor

# 安裝到 Claude Code
npx skills add spencerpauly/awesome-cursor-skills --skill adding-e2e-tests -a claude-code

-g 可安裝到用戶全局目錄;-y 跳過交互確認,適合腳本化場景。

觸發條件

官方 Skill 寫明:當用戶要求 添加端到端測試、瀏覽器測試、集成測試,或搭建 Playwright 時,Agent 應啓用此 Skill。你可以在對話中直接說:

給這個項目加上 Playwright E2E 測試,包括 CI。

Agent 會按 Skill 中的七步流程執行,而不是隨意跳過配置或 CI 步驟。

典型用法示例

下面是一次完整對話可能觸發的 Agent 行爲(步驟均來自官方 SKILL.md):

第一步:安裝 Playwright

Agent 執行 npm init playwright@latest(或手動安裝路徑),創建配置文件與 tests/ 目錄。

第二步:改寫 playwright.config.ts

填入 baseURLwebServer,並按本地/CI 區分瀏覽器項目。

第三步:寫 smoke test

tests/ 下創建首頁加載測試,確保最基礎的路徑可跑通。

第四步(可選):Page Object

若項目頁面較多,在 tests/pages/ 下爲登錄頁、儀表盤等封裝 page object。

第五步:package.json 腳本

添加 test:e2etest:e2e:ui,本地調試可用 UI 模式:

npm run test:e2e:ui

第六步:.gitignore

排除 Playwright 運行產物,避免誤提交大體積報告。

第七步:GitHub Actions

在 workflow 中加入瀏覽器依賴安裝與測試命令;失敗時上傳 playwright-report 供下載查看。

整個流程與 Playwright 官方文檔 一致,Skill 的價值在於把分散的文檔要點收成 Agent 可執行的 checklist,減少遺漏。

適用場景與注意事項

適合誰用

  • 前端 / 全棧項目尚未接入 E2E,希望快速建立 Playwright 基線。
  • 團隊剛引入 AI 編程助手,想把「搭測試環境」標準化,避免每人 prompt 不一致。
  • 需要 CI 門禁:Skill 明確要求 GitHub Actions 集成,適合已用 GitHub 的項目。

使用注意

  1. 技術棧:Skill 示例基於 Node.js + npm;若項目用 pnpm/yarn,dev server 命令與安裝命令需 Agent 按項目實際情況調整,Skill 本身未寫死包管理器。
  2. 與 webapp-testing 的分工:Anthropic 的 webapp-testing 偏「已有服務時的驗證與調試」;adding-e2e-tests 偏「腳手架與工程化落地」。兩者可並存,不衝突。
  3. 端口與 URLbaseURLwebServer.url 需與項目真實 dev server 一致;Skill 以 3000 爲例,Agent 應結合 package.jsondev 腳本修改。
  4. CI 環境:務必使用 npx playwright install --with-deps,否則 Linux runner 上常因缺少系統庫而失敗。
  5. 選擇器策略:Skill 強調 data-testid;若現有代碼未埋點,Agent 可能需在組件中補充屬性,或與你確認是否改用 role/text 定位。

同倉庫相關 Skill

awesome-cursor-skills 測試類還有 writing-tests(單元/集成測試)、api-smoke-testing(API 冒煙)等。E2E 搭好後,可再配合 grinding-until-pass 讓 Agent 循環修測直到通過。

小結

adding-e2e-tests 把「Playwright 從零到 CI」拆成 Agent 可逐步執行的七步清單:安裝、配置、冒煙測試、腳本、忽略規則、流水線集成,外加選擇器與 codegen 等實踐建議。對經常讓 AI 改前端、又希望質量門禁跟上的開發者來說,裝一份 Skill 比每次重新口述需求更省事。

官方 Skill 與源碼地址:

https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/adding-e2e-tests

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜