Requests

The request describes a single HTTP request exection.

Syntax

kind: request # required; defines the document as a request
name: Cat Breeds # optional; used to identify this request
path: https://catfact.ninja/breeds # required; the request URL
verb: GET # optional; HTTP request method
timeoutSeconds: 0 # optional; execution timeout
headers: # optional; HTTP request headers
  Accept: application/json # optional; example of a header
cookies: # optional; HTTP request cookies
  myCookie: myValue # optiona; example of a cookie
body: | # optional; HTTP request body
  {
    "myvar": "myval"
  }
graphql: # optional; send as GraphQL query
  query: | # required; a GraphQL query
    {
      ...
    }
  variables: # optional; key/value GraphQL variables
    myvar: myval # optional; example of a GraphQL variable
preRequestScript: | # optional; Javascript to run prior to the request
  console.log("Hello, World!");
preRequestScriptFile: ./hello-world.js # optional; script file to run prior to the request
postRequestScript: | # optional; Javascript to run after the request
  console.log("Good-bye, World!");
postRequestScriptFile: ./good-bye-world.js # optional; script file to run after the request
captures: # optional; variables to capture from the HTTP response
  myVar: jsonpath $.myVar # optional; example variable capture
asserts: # optional; asserts to validate from the HTTP response
  - status == 200 # optional; example HTTP OK response status assert

Order of Operations

The request life-cycle is performed as follows:

graph TD;
  A["Pre-Request Script (inline)"] --> B["Pre-Request Script (file)"] --> C["HTTP Request Execution"] --> D[Captures] --> E["Post-Request Script (inline)"] --> F["Post-Request Script (file)"] --> G[Asserts]

Properties

kind - Kind

string. Required. Allowed values: request.

Defines the document type as a request.

name - Name

string Optional.

A name used to identify the request. This is used in any logs/output to refer to the request. If a name isn’t given, its file-name is used instead.

path - Execution path

Alias: url. string. Required.

The url to execute. Query parameters may also be included in the path.

verb - HTTP verb

Alias: method. string. Optional. Allowed values: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH. Default value: GET.

Sets the method on the HTTP request.

timeoutSeconds - Timeout in seconds

integer. Optional. Default value: 0.

Execution timeout for the request. If the request exceeds this timeout it will be canceled and considered a failure. A value of 0 indicates no timeout should be set.

headers - HTTP request headers

object. Optional.

A set of HTTP request headers to include. Any number of headers may be included as YAML properties.

cookies - HTTP request cookies

object. Optional.

A set of HTTP cookies to include. Any number of cookies and values may be included as YAML properties.

body - HTTP request body

string | object. Optional.

Sets the HTTP request body to the given value. For most values of headers["Content-Type"], simply set the body to the string representation. For example, when using application/json, the body should look like this:

body: |
  {
    "someField": "someValue"
  }

To use a file for the body content, set the body to the relative path and prefix it with the @ character, e.g.:

body: "@payload.json"

If headers["Content-Type"] is multipart/form-data, then form data should be defined as key/value pairs, e.g.:

body:
  someField: someValue # fields are added inline
  someFile:  "@file.txt" # attachments may be added by their relative path and are prefixed with @ 

graphql - GraphQL data

object. Optional.

If present, defines the request as a GraphQL request, which sets the verb to POST and headers["Content-Type"] to application/json.

graphql.query - GraphQL Query

string. Required.

Sets the query in the GraphQL payload. Accepts either an inline query or a file-path via the @ prefix.

graphql.variables - GraphQL Variables

object. Optional.

Sets the variables in the GraphQL payload. Any number of variables may be included as YAML properties.

preRequestScript - Pre-request script

string. Optional.

Defines an inline script to run prior to the request.

preRequestScriptFile - Pre-request script file

string. Optional.

Defines an relative path to a script to run prior to the request.

postRequestScript - Post-request script

string. Optional.

Defines an inline script to run after the request.

postRequestScriptFile - Post-request script file

string. Optional.

Defines an relative path to a script to run after the request.

captures - Variable Captures

object. Optional.

A set of captures to perform. Any number of variables may be captured as YAML keys.

For the full capture reference, see Concepts -> Captures.

asserts - Asserts

string[]. Optional.

Defines the asserts to perform. Any number of asserts may be specified.

For the full assert reference, see Concepts -> Asserts.