Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Playwright E2e Testing

ASecurity

当需要为 Web 应用搭建或扩展端到端(E2E)自动化测试时使用;用 Playwright 完成安装配置、编写测试脚本、视觉回归、跨浏览器与移动端模拟、并接入 CI/CD,产出可运行的测试套件与流水线;不适用于单元/接口测试、纯手工探索测试或非浏览器场景;触发词:Playwright、E2E、端到端测试、跨浏览器、视觉回归、浏览器自动化、CI 测试

3 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentsjavascriptgojavabashnodetestinggitci/cd

Works with

cursorcli

Security Analysis

A100/100

Scanned 9/19/2026

$npx -y skills add findscripter/everything-skills --skill playwright-e2e-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Playwright E2e Testing?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Playwright E2e Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-playwright-e2e-testing/badge)](https://www.skillsdirectory.com/skills/findscripter-playwright-e2e-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: playwright-e2e-testing
title: Playwright 端到端测试
description: 当需要为 Web 应用搭建或扩展端到端(E2E)自动化测试时使用;用 Playwright 完成安装配置、编写测试脚本、视觉回归、跨浏览器与移动端模拟、并接入 CI/CD,产出可运行的测试套件与流水线;不适用于单元/接口测试、纯手工探索测试或非浏览器场景;触发词:Playwright、E2E、端到端测试、跨浏览器、视觉回归、浏览器自动化、CI 测试
domain: 研发/testing
triggers: [Playwright, E2E 测试, 端到端测试, 跨浏览器测试, 视觉回归, 浏览器自动化, playwright test, CI 中跑前端测试, page object, trace 追踪]
tags: [测试, e2e, playwright, 浏览器自动化, 视觉回归, ci/cd, 前端, qa]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [@playwright/test, playwright CLI, Node.js / npm, GitHub Actions, Chromium / Firefox / WebKit]
requires: []
related: [webapp-testing, browserstack-cross-browser-test, javascript-testing-patterns, android-ui-verification]
combines_with: [ci-cd-pipeline-builder, accessibility-wcag-audit, test-coverage-gap-finder]
license: MIT
source: sickn33/agentic-awesome-skills
source_license: MIT
---
## 何时使用

当你要为 Web 应用建立或扩展浏览器端到端(E2E)自动化测试时使用,典型场景:

- 从零搭建 Playwright 测试框架,配置测试目录与浏览器
- 为关键业务流(登录、下单、表单提交)编写自动化脚本与断言
- 做视觉回归(截图基线比对)
- 在 Chromium / Firefox / WebKit 及移动端模拟下做跨浏览器测试
- 把 E2E 测试接入 CI/CD,并行执行、产出报告与失败追踪产物

**不该用的边界:**

- 纯单元测试或函数级逻辑 → 用 Vitest/Jest,不要用 Playwright
- 后端 HTTP 接口契约测试 → 用接口测试工具(虽 Playwright 也能发请求,但非首选)
- 一次性手工探索 / 无回归价值的临时点击 → 不值得固化为脚本
- 缺少可访问的目标 URL、测试账号、成功判定标准时:先停下来问清楚,别盲目生成脚本

## 步骤

1. **环境搭建**:安装 Playwright,初始化配置,建立 `tests/` 目录,安装浏览器内核。
2. **测试设计**:梳理关键流程,规划测试数据与 fixtures,按页面建立 Page Object,避免选择器散落。
3. **编写实现**:写测试脚本与断言,用自动等待(web-first assertions)代替硬编码 sleep,处理动态内容与异常。
4. **浏览器能力**:按需开启 headless、截图、录像、trace 追踪、移动端模拟。
5. **视觉回归**:生成基线图,加 `toHaveScreenshot` 断言,设置容差阈值,审查差异。
6. **跨浏览器**:在 config 的 `projects` 中配置多内核与移动设备,对比结果。
7. **接入 CI/CD**:编写流水线,分片并行,上传 report/trace 产物,配置失败通知。

## 指令

```bash
# 1. 初始化(自动生成 config、示例用例、CI 模板)
npm init playwright@latest

# 2. 仅安装浏览器内核(已有项目)
npx playwright install --with-deps

# 3. 运行 / 调试
npx playwright test                 # 全量
npx playwright test --project=chromium
npx playwright test --ui            # UI 模式交互调试
npx playwright test --debug         # Inspector 单步
npx playwright codegen <url>        # 录制生成脚本

# 4. 报告与追踪
npx playwright show-report
npx playwright show-trace trace.zip

# 5. 视觉回归基线(首次或刻意更新)
npx playwright test --update-snapshots
```

## 示例

**playwright.config.ts —— 跨浏览器 + 失败追踪:**

```ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  retries: process.env.CI ? 2 : 0,
  reporter: 'html',
  use: {
    baseURL: 'http://localhost:3000',
    trace: 'on-first-retry',     // 仅重试时收集 trace,降低开销
    screenshot: 'only-on-failure',
  },
  projects: [
    { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
    { name: 'firefox',  use: { ...devices['Desktop Firefox'] } },
    { name: 'webkit',   use: { ...devices['Desktop Safari'] } },
    { name: 'mobile',   use: { ...devices['Pixel 5'] } },
  ],
});
```

**测试脚本 —— 自动等待 + 视觉回归:**

```ts
import { test, expect } from '@playwright/test';

test('登录后跳转到仪表盘', async ({ page }) => {
  await page.goto('/login');
  await page.getByLabel('用户名').fill('demo');
  await page.getByLabel('密码').fill('secret');
  await page.getByRole('button', { name: '登录' }).click();

  // web-first 断言,自动重试等待,无需手写 sleep
  await expect(page.getByRole('heading', { name: '仪表盘' })).toBeVisible();
  await expect(page).toHaveScreenshot('dashboard.png', { maxDiffPixelRatio: 0.01 });
});
```

**CI/CD(GitHub Actions):**

```yaml
name: e2e
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npm ci
      - run: npx playwright install --with-deps
      - run: npx playwright test
      - uses: actions/upload-artifact@v4
        if: ${{ !cancelled() }}
        with:
          name: playwright-report
          path: playwright-report/
          retention-days: 7
```

## 注意事项

- **选择器优先级**:优先用 `getByRole` / `getByLabel` / `getByText` 等面向用户的定位器,少用脆弱的 CSS/XPath。
- **不要硬等待**:禁用 `waitForTimeout(固定毫秒)`,依赖 web-first 断言的自动重试,否则测试既慢又 flaky。
- **视觉回归基线**:基线截图应在 CI 同款环境(同 OS/字体/渲染)生成,本地与 CI 渲染差异会导致大量假阳性;用 `maxDiffPixelRatio` 设容差。
- **trace 是排障利器**:CI 失败时务必上传 trace.zip,用 `show-trace` 回看每一步 DOM/网络/截图。
- **隔离与数据**:每个测试自带独立状态,借助 fixtures 准备/清理数据,避免用例间互相污染。
- **质量门禁**:合并前确认——用例全绿、关键流覆盖充分、视觉测试稳定、跨浏览器通过、CI 集成正常。
- 输出不能替代针对具体环境的人工验证与专家评审;输入、权限、成功标准缺失时先澄清再动手。

## 互见

- 测试与 QA 整体工作流(单元 / 接口 / E2E 分层)
- 前端开发与 Web 性能优化技能
- CI/CD 自动化与 GitHub Actions 模板

---

采编自 sickn33/antigravity-awesome-skills(MIT 许可证),已按「技能大典」规范适配重写并补充可执行命令与代码示例。

Attribution

findscripterfindscripter
View sourceSee grades on GitHubMore from findscripter →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →