Skip to main content

BenchCommand

Struct BenchCommand 

Source
pub struct BenchCommand {
Show 51 fields pub spec: Vec<PathBuf>, pub spec_dir: Option<PathBuf>, pub merge_conflicts: String, pub spec_mode: String, pub dependency_config: Option<PathBuf>, pub target: String, pub base_path: Option<String>, pub duration: String, pub vus: u32, pub scenario: String, pub operations: Option<String>, pub exclude_operations: Option<String>, pub auth: Option<String>, pub headers: Option<String>, pub output: PathBuf, pub generate_only: bool, pub script_output: Option<PathBuf>, pub threshold_percentile: String, pub threshold_ms: u64, pub max_error_rate: f64, pub verbose: bool, pub skip_tls_verify: bool, pub targets_file: Option<PathBuf>, pub max_concurrency: Option<u32>, pub results_format: String, pub params_file: Option<PathBuf>, pub crud_flow: bool, pub flow_config: Option<PathBuf>, pub extract_fields: Option<String>, pub parallel_create: Option<u32>, pub data_file: Option<PathBuf>, pub data_distribution: String, pub data_mappings: Option<String>, pub per_uri_control: bool, pub error_rate: Option<f64>, pub error_types: Option<String>, pub security_test: bool, pub security_payloads: Option<PathBuf>, pub security_categories: Option<String>, pub security_target_fields: Option<String>, pub wafbench_dir: Option<String>, pub wafbench_cycle_all: bool, pub owasp_api_top10: bool, pub owasp_categories: Option<String>, pub owasp_auth_header: String, pub owasp_auth_token: Option<String>, pub owasp_admin_paths: Option<PathBuf>, pub owasp_id_fields: Option<String>, pub owasp_report: Option<PathBuf>, pub owasp_report_format: String, pub owasp_iterations: u32,
}
Expand description

Bench command configuration

Fields§

§spec: Vec<PathBuf>

OpenAPI spec file(s) - can specify multiple

§spec_dir: Option<PathBuf>

Directory containing OpenAPI spec files (discovers .json, .yaml, .yml files)

§merge_conflicts: String

Conflict resolution strategy when merging multiple specs: “error” (default), “first”, “last”

§spec_mode: String

Spec mode: “merge” (default) combines all specs, “sequential” runs them in order

§dependency_config: Option<PathBuf>

Dependency configuration file for cross-spec value passing (used with sequential mode)

§target: String§base_path: Option<String>

API base path prefix (e.g., “/api” or “/v2/api”) If None, extracts from OpenAPI spec’s servers URL

§duration: String§vus: u32§scenario: String§operations: Option<String>§exclude_operations: Option<String>

Exclude operations from testing (comma-separated)

Supports “METHOD /path” or just “METHOD” to exclude all operations of that type.

§auth: Option<String>§headers: Option<String>§output: PathBuf§generate_only: bool§script_output: Option<PathBuf>§threshold_percentile: String§threshold_ms: u64§max_error_rate: f64§verbose: bool§skip_tls_verify: bool§targets_file: Option<PathBuf>

Optional file containing multiple targets

§max_concurrency: Option<u32>

Maximum number of parallel executions (for multi-target mode)

§results_format: String

Results format: “per-target”, “aggregated”, or “both”

§params_file: Option<PathBuf>

Optional file containing parameter value overrides (JSON or YAML)

Allows users to provide custom values for path parameters, query parameters, headers, and request bodies instead of auto-generated placeholder values.

§crud_flow: bool

Enable CRUD flow mode

§flow_config: Option<PathBuf>

Custom CRUD flow configuration file

§extract_fields: Option<String>

Fields to extract from responses

§parallel_create: Option<u32>

Number of resources to create in parallel

§data_file: Option<PathBuf>

Test data file (CSV or JSON)

§data_distribution: String

Data distribution strategy

§data_mappings: Option<String>

Data column to field mappings

§per_uri_control: bool

Enable per-URI control mode (each row specifies method, uri, body, etc.)

§error_rate: Option<f64>

Percentage of requests with invalid data

§error_types: Option<String>

Types of invalid data to generate

§security_test: bool

Enable security testing

§security_payloads: Option<PathBuf>

Custom security payloads file

§security_categories: Option<String>

Security test categories

§security_target_fields: Option<String>

Fields to target for security injection

§wafbench_dir: Option<String>

WAFBench test directory or glob pattern for loading CRS attack patterns

§wafbench_cycle_all: bool

Cycle through ALL WAFBench payloads instead of random sampling

§owasp_api_top10: bool

Enable OWASP API Security Top 10 testing mode

§owasp_categories: Option<String>

OWASP API categories to test (comma-separated)

§owasp_auth_header: String

Authorization header name for OWASP auth tests

§owasp_auth_token: Option<String>

Valid authorization token for OWASP baseline requests

§owasp_admin_paths: Option<PathBuf>

File containing admin/privileged paths to test

§owasp_id_fields: Option<String>

Fields containing resource IDs for BOLA testing

§owasp_report: Option<PathBuf>

OWASP report output file

§owasp_report_format: String

OWASP report format (json, sarif)

§owasp_iterations: u32

Number of iterations per VU for OWASP tests (default: 1)

Implementations§

Source§

impl BenchCommand

Source

pub async fn load_and_merge_specs(&self) -> Result<OpenApiSpec>

Load and merge specs from –spec files and –spec-dir

Source

pub async fn execute(&self) -> Result<()>

Execute the bench command

Source

pub fn parse_duration(duration: &str) -> Result<u64>

Parse duration string (e.g., “30s”, “5m”, “1h”) to seconds

Source

pub fn parse_headers(&self) -> Result<HashMap<String, String>>

Parse headers from command line format (Key:Value,Key2:Value2)

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<T> Fake for T

Source§

fn fake<U>(&self) -> U
where Self: FakeBase<U>,

Source§

fn fake_with_rng<U, R>(&self, rng: &mut R) -> U
where R: Rng + ?Sized, Self: FakeBase<U>,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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

impl<T> ParallelSend for T