pub struct ScenarioConfig {Show 29 fields
pub base_url: Option<String>,
pub llm_url: Option<String>,
pub llm_model: Option<String>,
pub llm_api_key: Option<String>,
pub llm_headers: HashMap<String, String>,
pub browser_headless: Option<bool>,
pub browser_basic_auth_user: Option<String>,
pub browser_basic_auth_password: Option<String>,
pub timeout_secs: Option<u64>,
pub viewport_width: Option<u32>,
pub viewport_height: Option<u32>,
pub start_url: Option<String>,
pub auto_navigate: bool,
pub temperature: f64,
pub thinking: Option<bool>,
pub model_params: HashMap<String, Value>,
pub endpoints: HashMap<String, EndpointConfig>,
pub budgets: BudgetsConfig,
pub mcp_server: Option<McpServerConfig>,
pub a2a_server: Option<A2aServerConfig>,
pub continue_on_failure: bool,
pub screenshot_max_dimension: Option<u32>,
pub screenshot_max_height: Option<ScreenshotHeight>,
pub artifacts_dir: Option<String>,
pub viewport_matrix: Option<ViewportMatrix>,
pub layout_ignore_classes: Vec<String>,
pub concurrency_group: Option<String>,
pub cache: Option<bool>,
pub cache_pricing: Option<bool>,
}Expand description
Global scenario configuration with per-test overridable fields.
Fields§
§base_url: Option<String>Base URL for relative navigation.
llm_url: Option<String>LLM server base URL (deprecated; prefer [config.endpoints]).
llm_model: Option<String>LLM model name (deprecated; prefer [config.endpoints]).
llm_api_key: Option<String>LLM API key (Bearer token).
llm_headers: HashMap<String, String>Custom HTTP headers as JSON key-value pairs.
browser_headless: Option<bool>Run browser in headless mode.
browser_basic_auth_user: Option<String>HTTP Basic Auth username for browser navigation.
browser_basic_auth_password: Option<String>HTTP Basic Auth password for browser navigation.
timeout_secs: Option<u64>HTTP / browser action timeout in seconds.
viewport_width: Option<u32>Browser viewport width.
viewport_height: Option<u32>Browser viewport height.
start_url: Option<String>Default URL every test auto-navigates to before running its steps.
Whether to auto-navigate to start_url before test steps.
Disable when a test starts with click-based navigation.
temperature: f64LLM temperature (0.0–1.0). Lower = more deterministic.
thinking: Option<bool>Enable thinking/reasoning tokens. None means the provider default
is used (no thinking key is sent). Set to true/false to
explicitly enable or disable.
model_params: HashMap<String, Value>Provider-specific model parameters merged into the chat completion
request body (e.g. effort = "high" for Anthropic).
endpoints: HashMap<String, EndpointConfig>Named endpoints (LLM, MCP, A2A agents) with pricing.
budgets: BudgetsConfigGlobal and per-test budgets for cost/token/call limits.
mcp_server: Option<McpServerConfig>MCP server exposure configuration.
a2a_server: Option<A2aServerConfig>A2A agent server exposure configuration.
continue_on_failure: boolWhether to continue running the remaining steps of a test after a
step fails. Default false = fail fast: the first failed step ends
the test and the rest are reported as skipped. Set to true to run
every step (more diagnostics, more LLM cost on broken apps).
screenshot_max_dimension: Option<u32>Longest edge (px) of screenshots attached to screenshot = true
assert steps, before they are JPEG-encoded and sent to the vision
endpoint. Downscaling keeps vision token cost/quality sane.
Default: 1400.
screenshot_max_height: Option<ScreenshotHeight>Height cap (px) of page coverage for screenshots attached to
screenshot = true assert steps. The full scrollable page is
captured, then split into viewport-tall tiles (each sent as its own
image part, ordered from the top) covering at most this many pixels
— below-the-fold content stays visible to the vision model at 1:1
detail while token cost stays bounded. Accepts an absolute pixel
count (2880) or a viewport multiple ("20x" = twenty times the
currently applied viewport height, which follows viewport-matrix
and per-test overrides). A value below the viewport height is
raised to it, so the visible viewport is always fully included
(0 / "0x" therefore means “viewport only”, the pre-full-page
behavior). Default: "20x".
artifacts_dir: Option<String>Directory for failure artifacts (screenshots, page snapshots).
Defaults to artifacts.
viewport_matrix: Option<ViewportMatrix>Optional viewport matrix: when set, every test in the scenario is
expanded into one variant per viewport (e.g. mobile/tablet/desktop).
Each variant overrides the test’s viewport and gets a — <name>
suffix on the test name. Per-test budgets apply per variant.
layout_ignore_classes: Vec<String>Class-name prefixes the layout_no_issues scan skips: elements
whose class matches any prefix are ignored by the fixed-element,
text-clipped, and overlap checks. Defaults cover the Angular CDK
screen-reader helpers (cdk-visually-hidden,
cdk-describedby-message-container, cdk-overlay-container),
which are intentionally 1x1 / off-screen.
concurrency_group: Option<String>Concurrency group for parallel runs across scenario files.
When several scenario files are run together (--parallel > 1),
files that declare the same concurrency_group are never
executed at the same time — use this for files that touch the same
shared backend state and would interfere if run concurrently. A file
with no group gets its own implicit group, so distinct files run in
parallel by default. Only honored when files are passed to the
runner as a batch; has no effect on the steps within a single file,
which always run sequentially.
cache: Option<bool>Default for per-endpoint cache across all endpoints (default
true). Set to false to disable provider-side prompt-cache
markers globally.
cache_pricing: Option<bool>Default for per-endpoint pricing.cache_pricing across all
endpoints (default true). Set to false to bill all prompt
tokens at the flat input price instead of cache rates.