Skip to main content

ScenarioConfig

Struct ScenarioConfig 

Source
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.

§auto_navigate: bool

Whether to auto-navigate to start_url before test steps.

Disable when a test starts with click-based navigation.

§temperature: f64

LLM 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: BudgetsConfig

Global 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: bool

Whether 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.

Trait Implementations§

Source§

impl Clone for ScenarioConfig

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ScenarioConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ScenarioConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ScenarioConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more