Test Results API


The Errthquake test results API retrieves status, metrics, and logs of current and historical load tests.

Permissions

The View Test Results permission is required to view test results.

APIs

Test Results List API

https://api.errthquake.com/results/<workspace-uid>

GET returns

[ test-entry-documents ]

Test Result API

https://api.errthquake.com/results/<workspace-uid>/<test-id>

GET returns

test-result-summary-document

Test Result Metrics API

https://api.errthquake.com/results/<workspace-uid>/<test-id>/metrics

GET returns

test-result-metrics-document

Test Result Logs API

https://api.errthquake.com/results/<workspace-uid>/<test-id>/logs

GET returns a zipped CSV file listing each http request made during the test. CSV Columns:

time: request timestamp
client_id: integer, virtual user client number
command: command name from test configuration yaml
url: request URL
method: request HTTP method
status: response HTTP status
req_bytes: request size in bytes
resp_bytes: response size in bytes
msec_duration: request duration in milliseconds
mb_memused: host memory used in megabytes at request time
mb_memavail: host memory available in megabytes at request time
pct_cpuuser: host CPU user % at request time
pct_cpusystem: host CPU system % at request time
pct_cpuidle: host CPU idle % at request time

Response headers included:

Content-Disposition: attachment; filename=<filename.zip>
Content-Type: application/zip

Test Stop API

https://api.errthquake.com/results/<workspace-uid>/<test-id>/stop

PUT submits an empty request body

PUT returns an empty response body with 200 OK status.

Call the stop API with an HTTP PUT to stop a test at any time. Interactive tests run until they API receive this request.

Response Object Documents

Test Entry Document

{
  "id": <string: alphanumeric 8 character test id>,
  "utc-start-time": <ISO8601 timestamp: test start time>,
  "utc-finish-time": <ISO8601 timestamp: test finish time>,
  "virtual-users": <integer: total virtual user count>
}

Test Result Summary Document

{
  "id": <string: alphanumeric test id, 8 characters>,
  "utc-start-time": <ISO8601 timestamp: test start time, null until test begins>,
  "utc-finish-time": <ISO8601 timestamp: test finish time, null until test begins, estimate of finish time until test ends>,
  "test-pending": <boolean: true until test begins>,
  "test-stopping": <boolean: false until test ends, true while storing test results>,
  "test-complete": <boolean: false until test results are stored>,
  "test-failed": <boolean: true if test failed to start>,
  "test-unresponsive": <boolean: true if test lost communication and became unresponsive>,
  "interactive": <boolean: true for interactive tests>,
  "virtual-users": <integer: number of virtual users requested for the test>
}

Test Result Metrics Document

{
  "id": <string: alphanumeric test id, 8 characters>,
  "utc-start-time": <ISO8601 timestamp: test start time, null until test begins>,
  "utc-finish-time": <ISO8601 timestamp: test finish time, null until test begins, estimate of finish time until test ends>,
  "test-pending": <boolean: true until test begins>,
  "test-stopping": <boolean: false until test ends, true while storing test results>,
  "test-complete": <boolean: false until test results are stored>,
  "test-failed": <boolean: true if test failed to start>,
  "test-unresponsive": <boolean: true if test lost communication and became unresponsive>,
  "interactive": <boolean: true for interactive tests>,
  "virtual-users": <integer: number of virtual users requested for the test>,
  "secs-increment": <integer: metrics increment interval>,
  "test-metrics": [ test-metrics-documents ],
  "host-metrics": [ host-metrics-documents ]
}

Test Metrics Document

{
  "command-name": <string: command name from yaml test configuration>,
  "metric-group": <string: metric classification>,
  "metric-name": <string: metric name>,
  "values": [ <string: floating point number> ]
}

Host Metrics Document

{
  "command-name": <empty string>,
  "metric-group": <string: metric classification>,
  "metric-name": <string: metric name>,
  "values": [ <string: floating point number> ]
}