feat: Add UI benchmark driver and scenarios for graph interactions
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
- Introduced `ui_bench_driver.mjs` to read scenarios and fixture manifest, generating a deterministic run plan. - Created `ui_bench_plan.md` outlining the purpose, scope, and next steps for the benchmark. - Added `ui_bench_scenarios.json` containing various scenarios for graph UI interactions. - Implemented tests for CLI commands, ensuring bundle verification and telemetry defaults. - Developed schemas for orchestrator components, including replay manifests and event envelopes. - Added mock API for risk management, including listing and statistics functionalities. - Implemented models for risk profiles and query options to support the new API.
This commit is contained in:
30
src/Bench/StellaOps.Bench/Graph/ui_bench_plan.md
Normal file
30
src/Bench/StellaOps.Bench/Graph/ui_bench_plan.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Graph UI Bench Plan (BENCH-GRAPH-21-002)
|
||||
|
||||
Purpose: provide a deterministic, headless flow for measuring graph UI interactions over large fixtures (50k/100k nodes).
|
||||
|
||||
## Scope
|
||||
- Use synthetic fixtures under `samples/graph/interim/` until canonical SAMPLES-GRAPH-24-003 lands.
|
||||
- Drive a deterministic sequence of interactions:
|
||||
1) Load graph canvas with specified fixture.
|
||||
2) Pan to node `pkg-000001`.
|
||||
3) Zoom in 2×, zoom out 1×.
|
||||
4) Apply filter `name contains "package-0001"`.
|
||||
5) Select node, expand neighbors (depth 1), collapse.
|
||||
6) Toggle overlay layer (once available).
|
||||
- Capture timings: initial render, filter apply, expand/collapse, overlay toggle.
|
||||
|
||||
## Determinism rules
|
||||
- Fixed seed for any randomized layouts (seed `424242`).
|
||||
- Disable animations/transitions where possible; otherwise measure after `requestAnimationFrame` settle.
|
||||
- No network calls; fixtures loaded from local file served by test harness.
|
||||
- Stable viewport (width=1280, height=720), device scale factor 1.
|
||||
|
||||
## Artifacts
|
||||
- `ui_bench_scenarios.json` — canonical scenario list with step ids and notes.
|
||||
- `ui_bench_driver.mjs` — helper that reads scenario + fixture manifest and emits a run plan (no browser dependency). Intended to be wrapped by a Playwright script later.
|
||||
- Results format (proposed): NDJSON with `{stepId, name, durationMs, fixture, timestamp}`.
|
||||
|
||||
## Next steps
|
||||
- Bind `ui_bench_driver.mjs` into a Playwright harness when Graph UI build/serve target is available.
|
||||
- Swap fixtures to SAMPLES-GRAPH-24-003 + overlay once schema finalized; keep scenario ids stable.
|
||||
- Add CI slice to run the driver and validate scenario/fixture bindings (no browser) to keep determinism checked in commits.
|
||||
Reference in New Issue
Block a user