بنقرة واحدة
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.