ワンクリックで
e2e-testing
Create, run, and debug JSON-driven E2E browser tests with Chrome pool integration
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Create, run, and debug JSON-driven E2E browser tests with Chrome pool integration
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | e2e-testing |
| description | Create, run, and debug JSON-driven E2E browser tests with Chrome pool integration |
@matware/e2e-runner is a JSON-driven E2E test runner. Tests are defined as JSON files with sequential browser actions — no JavaScript test code. Tests run in parallel against a Chrome pool (browserless/chrome via Docker) using Puppeteer.
Key capabilities: 17 MCP tools for running tests, creating test files, capturing screenshots, analyzing network traffic, verifying GitHub/GitLab issues, and querying a learning system for stability insights.
Before running any tests, verify the Chrome pool is available:
e2e_pool_status → check "Available: yes" and session capacity
If the pool is not running, the user must start it via CLI (not available via MCP):
npx e2e-runner pool start
The standard test execution flow:
e2e_pool_status — confirm Chrome pool is readye2e_list — discover available test files and modulese2e_run — execute with all, suite, or file parametersummary, failures, narratives, networkSummarye2e_screenshot — retrieve error/verification screenshots by ss:HASHe2e_network_logs — use runDbId to inspect requests/responsese2e_learnings — query stability trends, flaky tests, error patternsThe e2e_run response includes:
runDbId for drill-downexpect field — call e2e_screenshot to visually verify[
{
"name": "login-flow",
"actions": [
{ "type": "goto", "value": "/login" },
{ "type": "type", "selector": "#email", "value": "user@example.com" },
{ "type": "type", "selector": "#password", "value": "secret" },
{ "type": "click", "text": "Sign In" },
{ "type": "wait", "selector": ".dashboard" },
{ "type": "assert_url", "value": "/dashboard" }
]
}
]
Use e2e_create_test to write test files. Use e2e_create_module for reusable action sequences.
goto (full page load), navigate (SPA-friendly, non-blocking)click (selector or text; text mode also takes scope:"dialog", visible:true, last:true), type/fill, select, press, hover, scrolltype_react (controlled inputs; optional blur, waitAfter), click_option, select_combobox (open+filter+pick MUI Autocomplete/Select in one action), focus_autocomplete, click_chip, click_regexwait takes selector/text (appear), gone (disappear, e.g. spinner/closing dialog), or value (fixed ms, last resort); wait_network_idleassert_text (page-wide), assert_element_text (scoped), assert_url, assert_visible, assert_not_visible, assert_count, assert_attribute, assert_class, assert_input_value, assert_matchesget_text (non-assertion, returns element text), screenshotevaluate (run JS in browser), assert_no_network_errors, clear_cookiesAdd an expect field to any test for AI-powered visual verification:
{
"name": "dashboard-loads",
"expect": "Should show data table with at least 3 rows and no error messages",
"actions": [...]
}
After running, call e2e_screenshot with each verification hash and judge the screenshot against the description.
Create modules with e2e_create_module, reference them in tests:
{ "$use": "auth-jwt", "params": { "email": "admin@test.com" } }
For complete action type reference, see action-types.md. For JSON format details (hooks, serial, retries, modules), see test-json-format.md.
Turn GitHub/GitLab bug reports into executable tests:
e2e_issue with issue URL → returns structured prompt with issue detailse2e_create_test → create the test filee2e_run → execute and verifye2e_issue with mode: "verify" → auto-generates tests via Claude API, runs them, reports resultSupports both UI tests (testType: "e2e") and API tests (testType: "api").
e2e_network_logs(runDbId) → all requests
e2e_network_logs(runDbId, errorsOnly: true) → failed requests only
e2e_network_logs(runDbId, includeBodies: true) → full request/response bodies
e2e_network_logs(runDbId, urlPattern: "/api/") → filter by URL pattern
e2e_learnings("summary") → full project overview
e2e_learnings("flaky") → flaky test analysis
e2e_learnings("selectors") → selector stability
e2e_learnings("errors") → recurring error patterns
e2e_learnings("test:name") → drill into specific test history
Use e2e_capture to screenshot any URL without running a full test suite. Useful for visual exploration or verifying current state.
Start/stop the web dashboard with e2e_dashboard_start / e2e_dashboard_stop for a visual UI at http://localhost:8484.
cwd — All MCP tools accept cwd (the project root). Always pass it so config files and test directories resolve correctly.baseUrl default is http://host.docker.internal:3000 — Chrome runs inside Docker, so it uses host.docker.internal to reach the host machine. Override with baseUrl if the app runs on a different port.pool start and pool stop are not available via MCP. Only e2e_pool_status is an MCP tool.evaluate is strict — Returns starting with FAIL:/ERROR: or returning false will fail the test. Prefer granular assertion actions over evaluate with inline JS."serial": true if they share mutable state. They run after all parallel tests."retries": N on individual actions for flaky selectors, or globally via config.assert_* selector to make a test pass: pin assertion selectors to stable data-testids.