pub struct CustomCheck {
pub name: String,
pub path: String,
pub method: String,
pub expected_status: u16,
pub body: Option<String>,
pub expected_headers: HashMap<String, String>,
pub expected_body_fields: Vec<ExpectedBodyField>,
pub headers: HashMap<String, String>,
pub upload: Option<UploadFile>,
pub uploads: Vec<UploadFile>,
pub extract: ExtractRules,
pub repeat: Repeat,
}Expand description
A single custom conformance check
Fields§
§name: StringCheck name (should start with “custom:” for report aggregation)
path: StringRequest path (e.g., “/api/users”)
method: StringHTTP method (GET, POST, PUT, DELETE, etc.)
expected_status: u16Expected HTTP status code
body: Option<String>Optional request body (JSON string)
expected_headers: HashMap<String, String>Optional expected response headers (name -> regex pattern)
expected_body_fields: Vec<ExpectedBodyField>Optional expected body fields with type validation
headers: HashMap<String, String>Optional request headers
upload: Option<UploadFile>Round 38 (#79) — file upload support. When set, the request
is sent as multipart/form-data with one part per file. Each
file’s bytes come from a local path (so the YAML can name a
.exe, .jpg, .json, .docx, .xml, etc. without
embedding the bytes). body wins over upload/uploads.
uploads: Vec<UploadFile>§extract: ExtractRulesRound 38 (#79) — capture values from the response into the
chain context so subsequent checks can reference them via
${var:NAME}, ${cookie:NAME}, ${header:NAME} in path /
headers / body.
repeat: RepeatRound 38 (#79) — repeat the check N times within an
iteration. mode: parallel fires N concurrent requests
(Srikanth’s Sequence 1: “Use that cookie and csrf token in 16
subsequent requests that should be sent in parallel”).
mode: sequential runs them one after another (Sequence 2).
Trait Implementations§
Source§impl Debug for CustomCheck
impl Debug for CustomCheck
Source§impl<'de> Deserialize<'de> for CustomCheck
impl<'de> Deserialize<'de> for CustomCheck
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CustomCheck
impl RefUnwindSafe for CustomCheck
impl Send for CustomCheck
impl Sync for CustomCheck
impl Unpin for CustomCheck
impl UnsafeUnpin for CustomCheck
impl UnwindSafe for CustomCheck
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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