G

generate

by @alirezarezvaniv1.0.0
4.6(6)

根据用户故事、URL 或组件描述自动生成生产级 Playwright 测试代码,覆盖常见交互场景和边界情况,无需手写测试脚本

playwrighttest-automationend-to-end-testingbrowser-automationtest-generationGitHub
安装方式
npx skills add alirezarezvani/claude-skills --skill generate
compare_arrows

Before / After 效果对比

1
使用前

手动编写 Playwright 测试脚本,需要熟悉 API 选择器、等待策略和断言语法,一个复杂表单测试需要 1-2 小时,容易遗漏边界情况

使用后

输入用户故事或组件描述,自动生成完整的测试代码,包含选择器、等待策略和断言,10 分钟内完成测试用例编写,覆盖率高

description SKILL.md

generate

Generate Playwright Tests

Generate production-ready Playwright tests from a user story, URL, component name, or feature description.

Input

$ARGUMENTS contains what to test. Examples:

  • "user can log in with email and password"

  • "the checkout flow"

  • "src/components/UserProfile.tsx"

  • "the search page with filters"

Steps

1. Understand the Target

Parse $ARGUMENTS to determine:

  • User story: Extract the behavior to verify

  • Component path: Read the component source code

  • Page/URL: Identify the route and its elements

  • Feature name: Map to relevant app areas

2. Explore the Codebase

Use the Explore subagent to gather context:

  • Read playwright.config.ts for testDir, baseURL, projects

  • Check existing tests in testDir for patterns, fixtures, and conventions

  • If a component path is given, read the component to understand its props, states, and interactions

  • Check for existing page objects in pages/

  • Check for existing fixtures in fixtures/

  • Check for auth setup (auth.setup.ts or storageState config)

3. Select Templates

Check templates/ in this plugin for matching patterns:

If testing... Load template from

Login/auth flow templates/auth/login.md

CRUD operations templates/crud/

Checkout/payment templates/checkout/

Search/filter UI templates/search/

Form submission templates/forms/

Dashboard/data templates/dashboard/

Settings page templates/settings/

Onboarding flow templates/onboarding/

API endpoints templates/api/

Accessibility templates/accessibility/

Adapt the template to the specific app — replace {{placeholders}} with actual selectors, URLs, and data.

4. Generate the Test

Follow these rules:

Structure:

import { test, expect } from '@playwright/test';
// Import custom fixtures if the project uses them

test.describe('Feature Name', () => {
  // Group related behaviors

  test('should <expected behavior>', async ({ page }) => {
    // Arrange: navigate, set up state
    // Act: perform user action
    // Assert: verify outcome
  });
});

Locator priority (use the first that works):

  • getByRole() — buttons, links, headings, form elements

  • getByLabel() — form fields with labels

  • getByText() — non-interactive text content

  • getByPlaceholder() — inputs with placeholder text

  • getByTestId() — when semantic options aren't available

Assertions — always web-first:

// GOOD — auto-retries
await expect(page.getByRole('heading')).toBeVisible();
await expect(page.getByRole('alert')).toHaveText('Success');

// BAD — no retry
const text = await page.textContent('.msg');
expect(text).toBe('Success');

Never use:

  • page.waitForTimeout()

  • page.$(selector) or page.$$(selector)

  • Bare CSS selectors unless absolutely necessary

  • page.evaluate() for things locators can do

Always include:

  • Descriptive test names that explain the behavior

  • Error/edge case tests alongside happy path

  • Proper await on every Playwright call

  • baseURL-relative navigation (page.goto('/') not page.goto('http://...'))

5. Match Project Conventions

  • If project uses TypeScript → generate .spec.ts

  • If project uses JavaScript → generate .spec.js with require() imports

  • If project has page objects → use them instead of inline locators

  • If project has custom fixtures → import and use them

  • If project has a test data directory → create test data files there

6. Generate Supporting Files (If Needed)

  • Page object: If the test touches 5+ unique locators on one page, create a page object

  • Fixture: If the test needs shared setup (auth, data), create or extend a fixture

  • Test data: If the test uses structured data, create a JSON file in test-data/

7. Verify

Run the generated test:

npx playwright test <generated-file> --reporter=list

If it fails:

  • Read the error

  • Fix the test (not the app)

  • Run again

  • If it's an app issue, report it to the user

Output

  • Generated test file(s) with path

  • Any supporting files created (page objects, fixtures, data)

  • Test run result

  • Coverage note: what behaviors are now tested

Weekly Installs206Repositoryalirezarezvani/…e-skillsGitHub Stars5.9KFirst Seen14 days agoSecurity AuditsGen Agent Trust HubWarnSocketPassSnykPassInstalled oncodex196gemini-cli194kimi-cli193github-copilot193amp193cline193

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量222
评分4.6 / 5.0
版本1.0.0
更新日期2026年3月20日
对比案例1 组

用户评分

4.6(6)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月20日
最后更新2026年3月20日