# Commands

# Request

Command restbeast r or restbeast request executes given request name.

Given request example-request {} defined in a .hcl file in the current path, running restbeast r example-request will execute the request.

# --timing Displays request times and request chain

HTTP/2.0 200 OK
  │
  ├──PATCH https://httpbin.org/patch
  │  Total Time: 114 ms
  │  Bytes Received: 690 B
  │    │
  │    ├──POST https://httpbin.org/post
  │    │  Total Time: 626 ms
  │    │  Bytes Received: 550 B
  │    │
  │    ├──POST https://httpbin.org/post
  │    │  Total Time: 120 ms
  │    │  Bytes Received: 542 B
  │
  ├──POST https://httpbin.org/post
  │  Total Time: 112 ms
  │  Bytes Received: 540 B

# --detailed-timing Displays detailed request times and request chain

HTTP/2.0 200 OK
  │
  ├──PATCH https://httpbin.org/patch
  │  DNS Resolve Time: 0 ms
  │  Connection Time: 0 ms
  │  First Byte Time: 205 ms
  │  Total Time: 206 ms
  │  Bytes Received: 707 B
  │    │
  │    ├──POST https://httpbin.org/post
  │    │  DNS Resolve Time: 27 ms
  │    │  Connection Time: 212 ms
  │    │  TLS Handshake Time: 622 ms
  │    │  First Byte Time: 827 ms
  │    │  Total Time: 827 ms
  │    │  Bytes Received: 552 B
  │    │
  │    ├──POST https://httpbin.org/post
  │    │  DNS Resolve Time: 0 ms
  │    │  Connection Time: 0 ms
  │    │  First Byte Time: 202 ms
  │    │  Total Time: 202 ms
  │    │  Bytes Received: 558 B
  │
  ├──POST https://httpbin.org/post
  │  DNS Resolve Time: 0 ms
  │  Connection Time: 0 ms
  │  First Byte Time: 204 ms
  │  Total Time: 204 ms
  │  Bytes Received: 540 B

--env Executes command with selected environment definition

env local {}
env live {}

The command below should evaluate given environment.

restbeast request some-request --env live

# -H or --header Displays response headers

Example request result with headers

HTTP/2.0 200 OK

Date: Thu, 11 Feb 2021 10:32:25 GMT
Content-Type: application/json
Content-Length: 548
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

# Attack Request

Command restbeast ar or restbeast attack-request continuously executes given request (or request chain) N times in defined period.

Example result with default values;

Status 200 response: %78 (47)
Status 400 response: %15 (9)
Status 500 response: %6 (4)
95 Percentile: 1.091473938s
99 Percentile: 1.100081803s
AverageTime: 585.411933ms

# -c or --count Sets request count

Defaults to 60.

# -p or --period Sets period

Defaults to 60 seconds. Acceptable duration modifiers are s, m, h

Examples:

60s = 60 seconds

10m = 10 minutes

1h = 1 hour

--env Executes command with selected environment definition

env local {}
env live {}

The command below should evaluate given environment.

restbeast ar some-request --env live

# List Command

Command restbeast ls or restbeast list prints out a list of requests and tests found in the current path.

Example output

add-another-to-shopcart  get-example              post-example-primitive   
add-to-shopcart          get-example              post-file                
another-get-example      get-user                 pre-get                  
cookies-example          post-example             remove-from-shopcart     
create-user              post-example             signin-user              
create-user              post-example-form        text-body-example        
form-post-example        post-example-form-2      text-body-example

# -l or --long Displays the list in long format along block types

add-another-to-shopcart → request
add-to-shopcart         → request
another-get-example     → test
cookies-example         → request
create-user             → request
create-user             → test
form-post-example       → request
get-example             → test
get-example             → request
get-user                → request
post-example            → request
post-example            → test
post-example-form       → request
post-example-form-2     → request
post-example-primitive  → request
post-file               → request
pre-get                 → request
remove-from-shopcart    → request
signin-user             → request
text-body-example       → test
text-body-example       → request

# -r or --requests Displays only the request blocks

Example output of restbeast ls -lr

add-another-to-shopcart → request
add-to-shopcart         → request
cookies-example         → request
create-user             → request
form-post-example       → request
get-example             → request
get-user                → request
post-example            → request
post-example-form       → request
post-example-form-2     → request
post-example-primitive  → request
post-file               → request
pre-get                 → request
remove-from-shopcart    → request
signin-user             → request
text-body-example       → request

# -t or --tests Displays only the test blocks

Example output of restbeast ls -lt

another-get-example → test
create-user         → test
get-example         → test
post-example        → test
text-body-example   → test

# Test

Command restbeast t or restbeast test designed to eval test blocks. Executing a test also executes dependant requests (or request chains). Test command designed to run in continuous integration pipelines. Successful tests results with exit code 0 or any failure will result exit code 1.

test get-example {
  valid-origin = assertIpv4(request.get-example.body.origin)
  valid-host = assertEqual(request.get-example.body.headers.Host, "httpbin.org")
}

The test block example above should result as follows

PASS: valid-host
PASS: valid-origin

2 passes, 0 failures, 2 total.

--env Executes command with selected environment definition

env local {}
env live {}

The command below should evaluate given environment.

restbeast test some-request --env live

# Help

Command restbeast help or restbeast -h or restbeast --help displays help menu.

# Bug

Command restbeast bug will open a browser window and navigate to new issue screen in restbeast github repo.

# Version

Command restbeast version displays restbeast version.

Last Updated: 9/27/2021, 7:56:40 PM