Parallel E2E Test Runner
SkillWeb & browsingThis skill should be used when the user asks to run E2E tests "in parallel", "with multiple agents", "並列で", "サブエージェントを立てて", or wants comprehensive E2E coverage split across concurrent agents. Fans out one `e2e-test` subagent per section group of docs/user_guide.md, each with an isolated playwright-cli session, then aggregates the results.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Parallel E2E Test Runner skill
What this skill tells your AI
The instructions your AI receives, as published by aws-samples/sample-ai-persona in .claude/skills/e2e/SKILL.md and read by ahel’s review.
Split docs/user_guide.md into independent section groups and run one e2e-test
subagent per group concurrently, instead of one agent walking every scenario serially.
Preconditions
-
Resolve target environment before dispatching:
- If the user gave a URL (e.g. a staging CloudFront URL) and credentials, use those.
- Otherwise default to local:
http://localhost:8000(assumerun_htmx.pyis already running; do not start it yourself). - If the target needs login (Cognito Hosted UI etc.) and no credentials were given, ask the user for them before dispatching — do not guess or skip auth.
-
Confirm current working directory is the project root (
git rev-parse --show-toplevel), not a subdirectory likecdk/.playwright-clican only upload files that live under its launch directory — if any earlier command in this sessioncd'd elsewhere, dispatching from there silently breaks every upload-based scenario. Explicitlycdback to the root before launching agents.
Splitting the work
-
Read
docs/user_guide.mdand enumerate its numbered##sections yourself — do not hardcode a section list, it drifts as the guide changes. -
Group sections into 3–5 independent batches. Keep a data dependency in mind: discussion/interview scenarios (§3–4) need at least 2 saved personas to exist, so either:
- put persona generation (§1–2) and discussion/interview (§3–4) in the same batch, or
- tell the discussion/interview batch to check the persona list first and create its own minimal set (2–3 personas) if none exist yet, so it doesn't block on another batch's progress.
A reasonable default split:
- Batch A: §1 ペルソナ生成, §2 ペルソナ管理
- Batch B: §3 議論・インタビューの実行, §4 議論結果の確認と保存 (self-sufficient — creates its own personas if needed)
- Batch C: §5 議論・インタビュー履歴, §6 マスアンケート機能
- Batch D: §7 外部データセット連携(実験的機能)
- Batch E: §8 システム設定(データ連携機能・データセット管理・ナレッジベース管理・データ分析エージェント連携設定)
Adjust batch count/boundaries if the guide's structure has changed.
The
e2e-testagent walks the happy path described in the guide by default. Two areas need an explicit nudge in the batch prompt, or they'll silently be skipped:- CSV-sourced persona generation (Batch A): §1 documents that
.csvuploads take a different internal path (20-line preview + query-tool access to the rest) than other file types. Tell Batch A to run at least one generation with a CSV data source and check the 生成ログ・評価 for actual tool_call/tool_result evidence, not just assume the happy-path text-file scenario covers it. - Upload limit / error-path testing: the boundary values in 「アップロード上限一覧」 (effective use tips section) aren't scenarios the agent will exercise on its own — they're reference data for humans. If the user wants limit/error-case coverage, assign it explicitly to the batch that owns the relevant feature (e.g. persona source size → Batch A, discussion attachments → Batch B, dataset upload → Batch E) and say so in that batch's prompt; don't expect it to happen implicitly.
Dispatching (isolation is the whole point)
-
Launch one
Agentcall per batch,subagent_type: e2e-test, all in a single message (parallel tool calls) so they actually run concurrently — sequential calls in separate messages serialize them. Each prompt MUST include, verbatim adapted to that batch:- Target env + credentials (from step 1).
- Pin the working directory: "必ずプロジェクトルート
<absolute-path>で作業してください(cdで移動しない)". - A unique playwright-cli session name so concurrent browsers don't collide:
every
playwright-cliinvocation in that agent must use-s=<batch-name>(e.g.-s=persona,-s=discussion,-s=survey,-s=dataset,-s=settings). - A unique scratch upload dir under the repo root, e.g.
tmp/e2e_<batch-name>/, to be created before use and deleted when the batch finishes. - Reuse
sample_data/andtests/test_file/for happy-path upload files (CSV sources, PDF, JPEG — seee2e-test's own Test Data section for the mapping). Both are read-only and shared safely across concurrent batches, so no need to copy them into the batch's scratch dir. Only files crafted for boundary/error-path tests (oversized files, bad extensions, etc.) go in the scratch dir. - The exact section numbers this batch owns, and an explicit instruction not to touch sections owned by other batches (avoids duplicate/conflicting work and duplicate data creation).
- Data safety: never delete data that isn't verifiably self-created this run; skip destructive tests (bulk delete, etc.) that would affect sibling batches' in-flight data.
- Standard
e2e-testreporting contract: Japanese report, pass/fail per section, discrepancies vsuser_guide.md, evidence (screenshots/snapshots).
-
Run all batches with
run_in_background: true— comprehensive E2E with real Bedrock calls (persona generation, discussion, report generation) takes minutes per batch; don't block the conversation waiting synchronously.
Aggregating results
- Wait for all batch completion notifications (don't poll or fabricate results
before they land). When every batch has reported:
- Merge into one structured report: per-section pass/fail, cross-batch discrepancy list, evidence references.
- If any batch surfaced a
user_guide.mdvs UI discrepancy, surface it explicitly — thee2e-testagent's own protocol is to stop and ask before resolving those, so make sure the user actually sees each one instead of it being buried in a per-batch sub-report. - Confirm each batch cleaned up its
tmp/e2e_<batch-name>/directory; clean up any that didn't.
Signals
- GitHub stars
- 24
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
e2e-aws-samples- Source
- github.com/aws-samples/sample-ai-persona