pub struct ScenarioConfig {Show 24 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 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>,
}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.
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.
Trait Implementations§
Source§impl Clone for ScenarioConfig
impl Clone for ScenarioConfig
Source§fn clone(&self) -> ScenarioConfig
fn clone(&self) -> ScenarioConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more