Skip to main content
New to Testkube? Unleash the power of cloud native testing in Kubernetes with Testkube. Get Started >

Testkube API (1.0.0)

Download OpenAPI specification:Download

E-mail: [email protected] License: MIT

Testkube provides a Kubernetes-native framework for test definition, execution and results

api

Testkube API operations

Test triggers keymap

Returns a keymap (supported/allowed fields) for the test trigger UI screen

Responses

Response samples

Content type
application/json
{
  • "resources": [
    ],
  • "actions": [
    ],
  • "executions": [
    ],
  • "events": {
    },
  • "conditions": [
    ],
  • "concurrencyPolicies": [
    ]
}

List test triggers

List test triggers from the kubernetes cluster

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new test trigger

Create new test trigger CRD inside a Kubernetes cluster

Request Body schema:

test trigger body

name
required
string

object name

namespace
string

object kubernetes namespace

object

test trigger labels

resource
required
string (TestTriggerResources)
Enum: "pod" "deployment" "statefulset" "daemonset" "service" "ingress" "event" "configmap"

supported kubernetes resources for test triggers

required
object (TestTriggerSelector)
event
required
string

listen for event for selected resource

object (TestTriggerConditionSpec)
object (TestTriggerProbeSpec)
action
required
string (TestTriggerActions)
Value: "run"

supported actions for test triggers

execution
required
string (TestTriggerExecutions)
Enum: "test" "testsuite"

supported test resources for test triggers

required
object (TestTriggerSelector)
concurrencyPolicy
string (TestTriggerConcurrencyPolicies)
Enum: "allow" "forbid" "replace"

supported concurrency policies for test triggers

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Response samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Bulk update test triggers

Updates test triggers provided as an array in the request body

Request Body schema: application/json

array of test trigger upsert requests

Array
name
required
string

object name

namespace
string

object kubernetes namespace

object

test trigger labels

resource
required
string (TestTriggerResources)
Enum: "pod" "deployment" "statefulset" "daemonset" "service" "ingress" "event" "configmap"

supported kubernetes resources for test triggers

required
object (TestTriggerSelector)
event
required
string

listen for event for selected resource

object (TestTriggerConditionSpec)
object (TestTriggerProbeSpec)
action
required
string (TestTriggerActions)
Value: "run"

supported actions for test triggers

execution
required
string (TestTriggerExecutions)
Enum: "test" "testsuite"

supported test resources for test triggers

required
object (TestTriggerSelector)
concurrencyPolicy
string (TestTriggerConcurrencyPolicies)
Enum: "allow" "forbid" "replace"

supported concurrency policies for test triggers

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Delete test triggers

Deletes all or labeled test triggers

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Get test trigger by ID

Get test trigger by ID from CRD in kubernetes cluster

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

Responses

Response samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Update test trigger

Update test trigger

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

Request Body schema:

test trigger upsert request

name
required
string

object name

namespace
string

object kubernetes namespace

object

test trigger labels

resource
required
string (TestTriggerResources)
Enum: "pod" "deployment" "statefulset" "daemonset" "service" "ingress" "event" "configmap"

supported kubernetes resources for test triggers

required
object (TestTriggerSelector)
event
required
string

listen for event for selected resource

object (TestTriggerConditionSpec)
object (TestTriggerProbeSpec)
action
required
string (TestTriggerActions)
Value: "run"

supported actions for test triggers

execution
required
string (TestTriggerExecutions)
Enum: "test" "testsuite"

supported test resources for test triggers

required
object (TestTriggerSelector)
concurrencyPolicy
string (TestTriggerConcurrencyPolicies)
Enum: "allow" "forbid" "replace"

supported concurrency policies for test triggers

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Response samples

Content type
application/json
{
  • "name": "test1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Delete test trigger

Deletes a test trigger

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

Responses

Response samples

Content type
application/problem+json
[]

Create new test suite

Create new test suite action

Request Body schema:

test details body

name
required
string

object name

namespace
required
string

object kubernetes namespace

description
string
Array of objects (TestSuiteBatchStep)

Run these batch steps before whole suite

Array of objects (TestSuiteBatchStep)

Batch steps to run

Array of objects (TestSuiteBatchStep)

Run these batch steps after whole suite

object

test suite labels

schedule
string

schedule to run test suite

repeats
integer
Default: 1
created
string <date-time>
object (TestSuiteExecutionRequest)

test suite execution request body

required
object (TestSuiteStatus)

test suite status

readOnly
boolean

if test suite is offline and cannot be executed

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "test-suite1",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Get all test suites

Returns array of test suites

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

Responses

Response samples

Content type
[
  • {
    }
]

Delete test suites

Deletes all or labeled test suites

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Get test suite by ID

Returns test suite with given name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "test-suite1",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Update test suite

Update test based on test suite content or git based data

path Parameters
id
required
string

unique id of the object

Request Body schema:

test suite details body

name
required
string

object name

namespace
string

object kubernetes namespace

description
string
Array of objects (TestSuiteBatchStep)

Run these batch steps before whole suite

Array of objects (TestSuiteBatchStep)

Batch steps to run

Array of objects (TestSuiteBatchStep)

Run these batch steps after whole suite

object

test suite labels

schedule
string

schedule to run test suite

repeats
integer
Default: 1
created
string <date-time>
object (TestSuiteExecutionRequest)

test suite execution request body

required
object (TestSuiteStatus)

test suite status

readOnly
boolean

if test suite is offline and cannot be executed

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "test-suite1",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Delete test suite

Deletes a test suite

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get test suite metrics

Gets test suite metrics for given tests executions, with particular execution status and timings

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

limit
integer
Default: 7

limit records count same as pageSize

Responses

Response samples

Content type
application/json
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

List tests for test suite

List available tests for test suite

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Abort all executions of a test suite

Abort all test executions of a test suite

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get all test suite with executions

Returns array of test suite with executions

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

Responses

Response samples

Content type
[
  • {
    }
]

Get test suite by ID with execution

Returns test suite with given name with execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "testSuite": {
    },
  • "latestExecution": {
    }
}

Starts new test suite execution

New test suite execution returns new execution details on successful execution start

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

last
integer
Default: 7

last N days to show

testSuiteExecutionName
string

test suite execution name stated the test suite execution

Request Body schema: application/json

body passed to configure execution

name
string

test execution custom name

number
integer

test suite execution number

namespace
string

test kubernetes namespace ("testkube" when not set)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

object

test suite labels

object

execution labels

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

timeout
integer <int32>

duration in seconds the test suite may be active, until its stopped

object (TestContentRequest)

test content request body

object (RunningContext)

running context for test or test suite execution

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

concurrencyLevel
integer <int32>

number of tests run in parallel

testSuiteExecutionName
string

test suite execution name started the test suite execution

Responses

Request samples

Content type
application/json
{
  • "name": "testing with 1000 users",
  • "number": 1,
  • "namespace": "testkube",
  • "variables": {
    },
  • "labels": {
    },
  • "executionLabels": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "timeout": 1,
  • "contentRequest": {
    },
  • "runningContext": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "concurrencyLevel": 10,
  • "testSuiteExecutionName": "string"
}

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get all test suite executions

Returns array of all available test suite executions

path Parameters
id
required
string

unique id of the object

query Parameters
pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test suite execution

Returns test suite execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "test-suite1.needlessly-sweet-imp",
  • "testSuite": {
    },
  • "status": "queued",
  • "envs": {
    },
  • "variables": {
    },
  • "secretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "2m",
  • "durationMs": 6000,
  • "stepResults": [
    ],
  • "executeStepResults": [
    ],
  • "labels": {
    },
  • "runningContext": {
    },
  • "testSuiteExecutionName": "string"
}

Aborts testsuite execution

Aborts testsuite execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Get test suite execution artifacts

Returns test suite execution artifacts with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": 0,
  • "executionName": "test-1",
  • "status": "ready"
}

Starts new test suite executions

New test suite executions returns new executions details on successful executions start

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

concurrency
integer
Default: 10
Request Body schema: application/json

body passed to configure executions

name
string

test execution custom name

number
integer

test suite execution number

namespace
string

test kubernetes namespace ("testkube" when not set)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

object

test suite labels

object

execution labels

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

timeout
integer <int32>

duration in seconds the test suite may be active, until its stopped

object (TestContentRequest)

test content request body

object (RunningContext)

running context for test or test suite execution

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

concurrencyLevel
integer <int32>

number of tests run in parallel

testSuiteExecutionName
string

test suite execution name started the test suite execution

Responses

Request samples

Content type
application/json
{
  • "name": "testing with 1000 users",
  • "number": 1,
  • "namespace": "testkube",
  • "variables": {
    },
  • "labels": {
    },
  • "executionLabels": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "timeout": 1,
  • "contentRequest": {
    },
  • "runningContext": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "concurrencyLevel": 10,
  • "testSuiteExecutionName": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get all test suite executions

Returns array of test suite executions

query Parameters
last
integer
Default: 7

last N days to show

test
string
Default: ""

test namespaced name to filter

textSearch
string
Default: ""

text to search in name and test name

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

selector
string

Labels to filter by

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test suite execution by ID

Returns test suite execution with given executionID

path Parameters
executionID
required
string

unique id of the object execution

query Parameters
last
integer
Default: 7

last N days to show

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "test-suite1.needlessly-sweet-imp",
  • "testSuite": {
    },
  • "status": "queued",
  • "envs": {
    },
  • "variables": {
    },
  • "secretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "2m",
  • "durationMs": 6000,
  • "stepResults": [
    ],
  • "executeStepResults": [
    ],
  • "labels": {
    },
  • "runningContext": {
    },
  • "testSuiteExecutionName": "string"
}

Aborts testsuite execution

Aborts testsuite execution with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Get test suite execution artifacts

Returns test suite execution artifacts with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": 0,
  • "executionName": "test-1",
  • "status": "ready"
}

Starts new test executions

New test executions returns new executions details on successful executions start

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

executionSelector
string

Execution Labels to add to executions

concurrency
integer
Default: 10
Request Body schema: application/json

body passed to configure executions

id
string <bson objectId>

execution id

name
string

test execution custom name

testSuiteName
string

unique test suite name (CRD Test suite name), if it's run as a part of test suite

number
integer

test execution number

object

test execution labels

namespace
string

test kubernetes namespace ("testkube" when not set)

isVariablesFileUploaded
boolean

in case the variables file is too big, it will be uploaded

variablesFile
string

variables file content - need to be in format for particular executor (e.g. postman envs file)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

command
Array of strings

executor image command

args
Array of strings

additional executor binary arguments

args_mode
string
Enum: "append" "override" "replace"

usage mode for arguments

image
string

container image, executor will run inside this image

Array of objects (LocalObjectReference)

container image pull secrets

object
Deprecated

Environment variables passed to executor. Deprecated: use Basic Variables instead

object
Deprecated

Execution variables passed to executor from secrets. Deprecated: use Secret Variables instead

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

negativeTest
boolean

whether to run test as negative test

isNegativeTestChangedOnRun
boolean

whether negativeTest was changed by user

activeDeadlineSeconds
integer <int64>

duration in seconds the test may be active, until its stopped

uploads
Array of strings

list of file paths that need to be copied into the test from uploads

bucketName
string

minio bucket name to get uploads from

object (ArtifactRequest)

artifact request body with test artifacts

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

object (TestContentRequest)

test content request body

preRunScript
string

script to run before test execution

postRunScript
string

script to run after test execution

executePostRunScriptBeforeScraping
boolean

execute post run script before scraping (prebuilt executor only)

sourceScripts
boolean

run scripts using source command (container executor only)

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

Array of objects (EnvReference)

config map references

Array of objects (EnvReference)

secret references

object (RunningContext)

running context for test or test suite execution

testExecutionName
string

test execution name started the test execution

downloadArtifactExecutionIDs
Array of strings

execution ids for artifacts to download

downloadArtifactTestNames
Array of strings

test names for artifacts to download from latest executions

object (PodRequest)

pod request body

executionNamespace
string

namespace for test execution (Pro edition only)

Responses

Request samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "testing with 1000 users",
  • "testSuiteName": "test-suite1",
  • "number": 0,
  • "executionLabels": {
    },
  • "namespace": "testkube",
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "variables": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "image": "kubeshop/testkube-executor-custom:1.10.11-dev-0a9c91",
  • "imagePullSecrets": [
    ],
  • "envs": {
    },
  • "secretEnvs": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "negativeTest": false,
  • "isNegativeTestChangedOnRun": false,
  • "activeDeadlineSeconds": 1,
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "contentRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "envConfigMaps": [
    ],
  • "envSecrets": [
    ],
  • "runningContext": {
    },
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get all test executions

Returns array of test executions

query Parameters
test
string
Default: ""

test namespaced name to filter

type
string
Default: ""

object type

textSearch
string
Default: ""

text to search in name and test name

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

selector
string

Labels to filter by

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test execution by ID

Returns execution with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc4",
  • "testName": "example-test",
  • "testSuiteName": "test-suite1",
  • "testNamespace": "testkube",
  • "testType": "postman/collection",
  • "name": "test-suite1-example-test-1",
  • "number": 1,
  • "envs": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "variables": {
    },
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "testSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "testSuiteSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "content": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "88s",
  • "durationMs": 10000,
  • "executionResult": {
    },
  • "labels": {
    },
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "runningContext": {
    },
  • "containerShell": "/bin/sh",
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Get execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get execution's logs by ID

Returns logs of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get execution's logs by ID version 2

Returns logs of the given executionID version 2

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

List tests

List available tests

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

Responses

Response samples

Content type
[
  • {
    }
]

Create new test

Create new test based on file content, uri or git based data

Request Body schema:

test details body

name
string

test name

namespace
string

test namespace

description
string

test description

type
string

test type

object (TestContent)
source
string

reference to test source resource

created
string <date-time>
object

test labels

schedule
string

schedule to run test

readOnly
boolean

if test is offline and cannot be executed

uploads
Array of strings

list of file paths that will be needed from uploads

object (ExecutionRequest)

test execution request body

object (TestStatus)

test status

Responses

Request samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Response samples

Content type
application/json
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Delete tests

Deletes all or labeled tests

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Update test

Update test based on test content or git based data

path Parameters
id
required
string

unique id of the object

Request Body schema:

test details body

name
string

test name

namespace
string

test namespace

description
string

test description

type
string

test type

object (TestContent)
source
string

reference to test source resource

created
string <date-time>
object

test labels

schedule
string

schedule to run test

readOnly
boolean

if test is offline and cannot be executed

uploads
Array of strings

list of file paths that will be needed from uploads

object (ExecutionRequest)

test execution request body

object (TestStatus)

test status

Responses

Request samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Response samples

Content type
application/json
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Get test

Gets the specified test

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Delete test

Deletes a test

path Parameters
id
required
string

unique id of the object

query Parameters
skipDeleteExecutions
boolean
Default: false

dont delete executions

Responses

Response samples

Content type
application/problem+json
[]

Abort all executions of a test

Abort all test executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get test metrics

Gets test metrics for given tests executions, with particular execution status and timings

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

limit
integer
Default: 7

limit records count same as pageSize

Responses

Response samples

Content type
application/json
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

List test with executions

List available test with executions

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

Responses

Response samples

Content type
[
  • {
    }
]

Get test with execution

Gets the specified test with execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "test": {
    },
  • "latestExecution": {
    }
}

Starts new test execution

New test execution returns new execution details on successful execution start

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

testExecutionName
string

test execution name stated the test execution

Request Body schema: application/json

body passed to configure execution

id
string <bson objectId>

execution id

name
string

test execution custom name

testSuiteName
string

unique test suite name (CRD Test suite name), if it's run as a part of test suite

number
integer

test execution number

object

test execution labels

namespace
string

test kubernetes namespace ("testkube" when not set)

isVariablesFileUploaded
boolean

in case the variables file is too big, it will be uploaded

variablesFile
string

variables file content - need to be in format for particular executor (e.g. postman envs file)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

command
Array of strings

executor image command

args
Array of strings

additional executor binary arguments

args_mode
string
Enum: "append" "override" "replace"

usage mode for arguments

image
string

container image, executor will run inside this image

Array of objects (LocalObjectReference)

container image pull secrets

object
Deprecated

Environment variables passed to executor. Deprecated: use Basic Variables instead

object
Deprecated

Execution variables passed to executor from secrets. Deprecated: use Secret Variables instead

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

negativeTest
boolean

whether to run test as negative test

isNegativeTestChangedOnRun
boolean

whether negativeTest was changed by user

activeDeadlineSeconds
integer <int64>

duration in seconds the test may be active, until its stopped

uploads
Array of strings

list of file paths that need to be copied into the test from uploads

bucketName
string

minio bucket name to get uploads from

object (ArtifactRequest)

artifact request body with test artifacts

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

object (TestContentRequest)

test content request body

preRunScript
string

script to run before test execution

postRunScript
string

script to run after test execution

executePostRunScriptBeforeScraping
boolean

execute post run script before scraping (prebuilt executor only)

sourceScripts
boolean

run scripts using source command (container executor only)

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

Array of objects (EnvReference)

config map references

Array of objects (EnvReference)

secret references

object (RunningContext)

running context for test or test suite execution

testExecutionName
string

test execution name started the test execution

downloadArtifactExecutionIDs
Array of strings

execution ids for artifacts to download

downloadArtifactTestNames
Array of strings

test names for artifacts to download from latest executions

object (PodRequest)

pod request body

executionNamespace
string

namespace for test execution (Pro edition only)

Responses

Request samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "testing with 1000 users",
  • "testSuiteName": "test-suite1",
  • "number": 0,
  • "executionLabels": {
    },
  • "namespace": "testkube",
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "variables": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "image": "kubeshop/testkube-executor-custom:1.10.11-dev-0a9c91",
  • "imagePullSecrets": [
    ],
  • "envs": {
    },
  • "secretEnvs": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "negativeTest": false,
  • "isNegativeTestChangedOnRun": false,
  • "activeDeadlineSeconds": 1,
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "contentRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "envConfigMaps": [
    ],
  • "envSecrets": [
    ],
  • "runningContext": {
    },
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Response samples

Content type
application/json
{
  • "status": "queued",
  • "output": "string",
  • "outputType": "text/plain",
  • "errorMessage": "string",
  • "steps": [
    ],
  • "reports": {
    }
}

Get all test executions

Returns array of all available test executions

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test execution

Returns execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc4",
  • "testName": "example-test",
  • "testSuiteName": "test-suite1",
  • "testNamespace": "testkube",
  • "testType": "postman/collection",
  • "name": "test-suite1-example-test-1",
  • "number": 1,
  • "envs": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "variables": {
    },
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "testSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "testSuiteSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "content": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "88s",
  • "durationMs": 10000,
  • "executionResult": {
    },
  • "labels": {
    },
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "runningContext": {
    },
  • "containerShell": "/bin/sh",
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Aborts execution

Aborts execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

List executors

List executors available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new executor

Create new executor based on variables passed in request

Request Body schema:

executor request body data

executorType
string

ExecutorType one of "rest" for rest openapi based executors or "job" which will be default runners for testkube soon

image
string

Image for kube-job

object (SlavesMeta)

Slave data for executing tests in distributed environment

Array of objects (LocalObjectReference)

container image pull secrets

command
Array of strings

executor image command

args
Array of strings

additional executor binary argument

types
required
Array of strings

Types defines what types can be handled by executor e.g. "postman/collection", ":curl/command" etc

uri
string

URI for rest based executors

contentTypes
Array of strings

list of handled content types

jobTemplate
string

Job template to launch executor

jobTemplateReference
string

name of the template resource

object

executor labels

features
Array of strings
Items Enum: "artifacts" "junit-report"

Available executor features

object (ExecutorMeta)

Executor meta data

useDataDirAsWorkingDir
boolean

use data dir as working dir for executor

namespace
required
string

object kubernetes namespace

name
required
string

object name

Responses

Request samples

Content type
{
  • "executorType": "string",
  • "image": "string",
  • "slaves": {
    },
  • "imagePullSecrets": [
    ],
  • "command": [
    ],
  • "args": [
    ],
  • "types": [
    ],
  • "uri": "string",
  • "contentTypes": [
    ],
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "labels": {
    },
  • "features": [
    ],
  • "meta": {},
  • "useDataDirAsWorkingDir": true,
  • "namespace": "testkube",
  • "name": "name"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

Delete executors

Deletes labeled executors

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Delete executor

Deletes executor by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get executor details

Returns executors data with executions passed to executor

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

Update executor

Update new executor based on variables passed in request

path Parameters
id
required
string

unique id of the object

Request Body schema:

executor request body data

executorType
string

ExecutorType one of "rest" for rest openapi based executors or "job" which will be default runners for testkube soon

image
string

Image for kube-job

object (SlavesMeta)

Slave data for executing tests in distributed environment

Array of objects (LocalObjectReference)

container image pull secrets

command
Array of strings

executor image command

args
Array of strings

additional executor binary argument

types
Array of strings

Types defines what types can be handled by executor e.g. "postman/collection", ":curl/command" etc

uri
string

URI for rest based executors

contentTypes
Array of strings

list of handled content types

jobTemplate
string

Job template to launch executor

jobTemplateReference
string

name of the template resource

object

executor labels

features
Array of strings
Items Enum: "artifacts" "junit-report"

Available executor features

object (ExecutorMeta)

Executor meta data

useDataDirAsWorkingDir
boolean

use data dir as working dir for executor

namespace
string

object kubernetes namespace

name
required
string

object name

Responses

Request samples

Content type
{
  • "executorType": "string",
  • "image": "string",
  • "slaves": {
    },
  • "imagePullSecrets": [
    ],
  • "command": [
    ],
  • "args": [
    ],
  • "types": [
    ],
  • "uri": "string",
  • "contentTypes": [
    ],
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "labels": {
    },
  • "features": [
    ],
  • "meta": {},
  • "useDataDirAsWorkingDir": true,
  • "namespace": "testkube",
  • "name": "name"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

Get executor details by type

Returns executors data with executions passed to executor

query Parameters
testType
required
string

test type of the executor

Responses

Response samples

Content type
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

List webhooks

List webhooks available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new webhook

Create new webhook based on variables passed in request

Request Body schema:

webhook request body data

name
string
namespace
string
uri
required
string
events
required
Array of strings (EventType)
Items Enum: "start-test" "end-test-success" "end-test-failed" "end-test-aborted" "end-test-timeout" "start-testsuite" "end-testsuite-success" "end-testsuite-failed" "end-testsuite-aborted" "end-testsuite-timeout" "queue-testworkflow" "start-testworkflow" "end-testworkflow-success" "end-testworkflow-failed" "end-testworkflow-aborted" "created" "updated" "deleted"
selector
string

Labels to filter for tests and test suites

payloadObjectField
string

will load the generated payload for notification inside the object

payloadTemplate
string

golang based template for notification payload

payloadTemplateReference
string

name of the template resource

object

webhook headers (golang template supported)

object

webhook labels

Responses

Request samples

Content type
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Delete webhooks

Deletes labeled webhooks

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Delete webhook

Deletes webhook by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get webhook details

Returns webhook

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Update new webhook

Update new webhook based on variables passed in request

path Parameters
id
required
string

unique id of the object

Request Body schema:

webhook request body data

name
string
namespace
string
uri
required
string
events
required
Array of strings (EventType)
Items Enum: "start-test" "end-test-success" "end-test-failed" "end-test-aborted" "end-test-timeout" "start-testsuite" "end-testsuite-success" "end-testsuite-failed" "end-testsuite-aborted" "end-testsuite-timeout" "queue-testworkflow" "start-testworkflow" "end-testworkflow-success" "end-testworkflow-failed" "end-testworkflow-aborted" "created" "updated" "deleted"
selector
string

Labels to filter for tests and test suites

payloadObjectField
string

will load the generated payload for notification inside the object

payloadTemplate
string

golang based template for notification payload

payloadTemplateReference
string

name of the template resource

object

webhook headers (golang template supported)

object

webhook labels

Responses

Request samples

Content type
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

List templates

List templates available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new template

Create new template based on variables passed in request

Request Body schema:

template request body data

name
required
string

template name for reference

namespace
string

template namespace

type
required
string (TemplateType)
Enum: "job" "container" "cronjob" "scraper" "pvc" "webhook" "pod"

template type by purpose

body
required
string

template body to use

object

template labels

Responses

Request samples

Content type
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Delete templates

Deletes labeled templates

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Delete template

Deletes template by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get template details

Returns template

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Update new template

Update new template based on variables passed in request

path Parameters
id
required
string

unique id of the object

Request Body schema:

template request body data

name
required
string

template name for reference

namespace
string

template namespace

type
required
string (TemplateType)
Enum: "job" "container" "cronjob" "scraper" "pvc" "webhook" "pod"

template type by purpose

body
required
string

template body to use

object

template labels

Responses

Request samples

Content type
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Update config

Updates config in cluster storage state

Request Body schema: application/json

config request body data

id
required
string
clusterId
required
string
enableTelemetry
required
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "clusterId": "string",
  • "enableTelemetry": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "clusterId": "string",
  • "enableTelemetry": true
}

Get config

Get config from cluster storage state

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "clusterId": "string",
  • "enableTelemetry": true
}

Get debug information

Gets information that is needed for debugging and opening Testkube bug reports

Responses

Response samples

Content type
application/json
{
  • "clientVersion": "1.4.9",
  • "serverVersion": "v1.4.9",
  • "clusterVersion": "v1.23.4",
  • "apiLogs": [
    ],
  • "operatorLogs": [
    ],
  • "executionLogs": {
    }
}

List test sources

List test sources available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new test source

Create new test source based on variables passed in request

Request Body schema:

test source request body data

name
string

test source name

namespace
string

test source namespace

object

test source labels

type
string
Enum: "string" "file-uri" "git-file" "git-dir" "git"

type of sources a runner can get data from. string: String content (e.g. Postman JSON file). file-uri: content stored on the webserver. git-file: the file stored in the Git repo in the given repository.path field (Deprecated: use git instead). git-dir: the entire git repo or git subdirectory depending on the repository.path field (Testkube does a shadow clone and sparse checkout to limit IOs in the case of monorepos). (Deprecated: use git instead). git: automatically provisions either a file, directory or whole git repository depending on the repository.path field.

object (Repository)

repository representation for tests in git repositories

data
string

test content data as string

uri
string

test content

Responses

Request samples

Content type
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Response samples

Content type
application/json
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Process test source batch (create, update, delete)

Process test source batch based on variables passed in request

Request Body schema: application/json

test source batch request body data

required
Array of objects (TestSourceUpsertRequest)
Array
name
string

test source name

namespace
string

test source namespace

object

test source labels

type
string
Enum: "string" "file-uri" "git-file" "git-dir" "git"

type of sources a runner can get data from. string: String content (e.g. Postman JSON file). file-uri: content stored on the webserver. git-file: the file stored in the Git repo in the given repository.path field (Deprecated: use git instead). git-dir: the entire git repo or git subdirectory depending on the repository.path field (Testkube does a shadow clone and sparse checkout to limit IOs in the case of monorepos). (Deprecated: use git instead). git: automatically provisions either a file, directory or whole git repository depending on the repository.path field.

object (Repository)

repository representation for tests in git repositories

data
string

test content data as string

uri
string

test content

Responses

Request samples

Content type
application/json
{
  • "batch": [
    ]
}

Response samples

Content type
application/json
{
  • "created": [
    ],
  • "updated": [
    ],
  • "deleted": [
    ]
}

Delete test sources

Deletes labeled test sources

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Update test source

Update test source based on test content or git based data

path Parameters
id
required
string

unique id of the object

Request Body schema:

test source body

name
string

test source name

namespace
string

test source namespace

object

test source labels

type
string
Enum: "string" "file-uri" "git-file" "git-dir" "git"

type of sources a runner can get data from. string: String content (e.g. Postman JSON file). file-uri: content stored on the webserver. git-file: the file stored in the Git repo in the given repository.path field (Deprecated: use git instead). git-dir: the entire git repo or git subdirectory depending on the repository.path field (Testkube does a shadow clone and sparse checkout to limit IOs in the case of monorepos). (Deprecated: use git instead). git: automatically provisions either a file, directory or whole git repository depending on the repository.path field.

object (Repository)

repository representation for tests in git repositories

data
string

test content data as string

uri
string

test content

Responses

Request samples

Content type
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Response samples

Content type
application/json
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Delete test source

Deletes test source by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get test source data

Returns test sources data

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Upload file

Upload file to be used in executions and tests

Request Body schema: multipart/form-data

Upload files request body data

parentName
string
parentType
string
Enum: "test" "execution"
filePath
string

Responses

Response samples

Content type
"string"

Validate new repository

Validate new repository based on variables passed in request

Request Body schema: application/json

repository request body data

type
required
string
Value: "git"

VCS repository type

uri
required
string

uri of content file or git directory

branch
string

branch/tag name for checkout

commit
string

commit id (sha) for checkout

path
string

if needed we can checkout particular path (dir or file) in case of BIG/mono repositories

username
string

git auth username for private repositories

token
string

git auth token for private repositories

object (SecretRef)

Testkube internal reference for secret storage in Kubernetes secrets

object (SecretRef)

Testkube internal reference for secret storage in Kubernetes secrets

certificateSecret
string

secret with certificate for private repositories. Should contain one key ending with .crt such as "mycorp.crt", whose value is the certificate file content, suitable for git config http.sslCAInfo

workingDir
string

if provided we checkout the whole repository and run test from this directory

authType
string
Enum: "basic" "header"

auth type for git requests

Responses

Request samples

Content type
application/json
{
  • "type": "git",
  • "branch": "main",
  • "commit": "b928cbb7186944ab9275937ec1ac3d3738ca2e1d",
  • "path": "test/perf",
  • "username": "string",
  • "token": "string",
  • "usernameSecret": {
    },
  • "tokenSecret": {
    },
  • "certificateSecret": "string",
  • "workingDir": "/",
  • "authType": "basic"
}

Response samples

Content type
application/problem+json
[]

List secrets

List secrets available in cluster

query Parameters
all
boolean
Default: false

flag to request all resources

namespace
string
Default: "testkube"

Namespace of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List test workflows

List test workflows from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Delete test workflows

Delete test workflows from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Create test workflow

Create test workflow in the kubernetes cluster

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

List test workflows with latest execution

List test workflows from the kubernetes cluster with latest execution

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow details with latest execution

Get test workflow details from the kubernetes cluster with latest execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "workflow": {
    },
  • "latestExecution": {
    }
}

List test workflow executions

List test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Execute test workflow

Execute test workflow in the kubernetes cluster

Request Body schema: application/json

test workflow execution request

name
string

custom execution name

object (TestWorkflowConfigValue)

configuration values to pass to the template

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "config": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Get test workflow metrics

Get metrics of test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

Get test workflow execution

Get test workflow execution details

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "some-workflow-name-1",
  • "number": 0,
  • "scheduledAt": "2019-08-24T14:15:22Z",
  • "statusAt": "2019-08-24T14:15:22Z",
  • "signature": [
    ],
  • "result": {
    },
  • "output": [
    ],
  • "workflow": {
    },
  • "resolvedWorkflow": {
    }
}

Abort test workflow execution

Abort test workflow execution

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

List test workflow executions

List test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow execution

Get test workflow execution details

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download test workflow artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download test workflow artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

Abort test workflow execution

Abort test workflow execution

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Abort all test workflow executions

Abort all test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Preview test workflow

Preview test workflow after including templates inside

query Parameters
inline
boolean
Default: false

should inline templates in the resolved workflow

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

Get test workflow details

Get test workflow details from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Update test workflow details

Update test workflow details in the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Delete test workflow

Delete test workflow from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

query Parameters
skipDeleteExecutions
boolean
Default: false

dont delete executions

Responses

Response samples

Content type
application/problem+json
[]

List test workflow templates

List test workflow templates from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Delete test workflow templates

Delete test workflow templates from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Create test workflow template

Create test workflow template in the kubernetes cluster

Request Body schema:

test workflow template body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowTemplateSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

Get test workflow template details

Get test workflow template details from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Update test workflow template details

Update test workflow template details in the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Request Body schema:

test workflow template body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowTemplateSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Delete test workflow template

Delete test workflow template from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

tests

Tests operations

Get test suite metrics

Gets test suite metrics for given tests executions, with particular execution status and timings

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

limit
integer
Default: 7

limit records count same as pageSize

Responses

Response samples

Content type
application/json
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

Starts new test executions

New test executions returns new executions details on successful executions start

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

executionSelector
string

Execution Labels to add to executions

concurrency
integer
Default: 10
Request Body schema: application/json

body passed to configure executions

id
string <bson objectId>

execution id

name
string

test execution custom name

testSuiteName
string

unique test suite name (CRD Test suite name), if it's run as a part of test suite

number
integer

test execution number

object

test execution labels

namespace
string

test kubernetes namespace ("testkube" when not set)

isVariablesFileUploaded
boolean

in case the variables file is too big, it will be uploaded

variablesFile
string

variables file content - need to be in format for particular executor (e.g. postman envs file)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

command
Array of strings

executor image command

args
Array of strings

additional executor binary arguments

args_mode
string
Enum: "append" "override" "replace"

usage mode for arguments

image
string

container image, executor will run inside this image

Array of objects (LocalObjectReference)

container image pull secrets

object
Deprecated

Environment variables passed to executor. Deprecated: use Basic Variables instead

object
Deprecated

Execution variables passed to executor from secrets. Deprecated: use Secret Variables instead

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

negativeTest
boolean

whether to run test as negative test

isNegativeTestChangedOnRun
boolean

whether negativeTest was changed by user

activeDeadlineSeconds
integer <int64>

duration in seconds the test may be active, until its stopped

uploads
Array of strings

list of file paths that need to be copied into the test from uploads

bucketName
string

minio bucket name to get uploads from

object (ArtifactRequest)

artifact request body with test artifacts

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

object (TestContentRequest)

test content request body

preRunScript
string

script to run before test execution

postRunScript
string

script to run after test execution

executePostRunScriptBeforeScraping
boolean

execute post run script before scraping (prebuilt executor only)

sourceScripts
boolean

run scripts using source command (container executor only)

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

Array of objects (EnvReference)

config map references

Array of objects (EnvReference)

secret references

object (RunningContext)

running context for test or test suite execution

testExecutionName
string

test execution name started the test execution

downloadArtifactExecutionIDs
Array of strings

execution ids for artifacts to download

downloadArtifactTestNames
Array of strings

test names for artifacts to download from latest executions

object (PodRequest)

pod request body

executionNamespace
string

namespace for test execution (Pro edition only)

Responses

Request samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "testing with 1000 users",
  • "testSuiteName": "test-suite1",
  • "number": 0,
  • "executionLabels": {
    },
  • "namespace": "testkube",
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "variables": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "image": "kubeshop/testkube-executor-custom:1.10.11-dev-0a9c91",
  • "imagePullSecrets": [
    ],
  • "envs": {
    },
  • "secretEnvs": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "negativeTest": false,
  • "isNegativeTestChangedOnRun": false,
  • "activeDeadlineSeconds": 1,
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "contentRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "envConfigMaps": [
    ],
  • "envSecrets": [
    ],
  • "runningContext": {
    },
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

List tests

List available tests

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

Responses

Response samples

Content type
[
  • {
    }
]

Create new test

Create new test based on file content, uri or git based data

Request Body schema:

test details body

name
string

test name

namespace
string

test namespace

description
string

test description

type
string

test type

object (TestContent)
source
string

reference to test source resource

created
string <date-time>
object

test labels

schedule
string

schedule to run test

readOnly
boolean

if test is offline and cannot be executed

uploads
Array of strings

list of file paths that will be needed from uploads

object (ExecutionRequest)

test execution request body

object (TestStatus)

test status

Responses

Request samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Response samples

Content type
application/json
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Delete tests

Deletes all or labeled tests

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Update test

Update test based on test content or git based data

path Parameters
id
required
string

unique id of the object

Request Body schema:

test details body

name
string

test name

namespace
string

test namespace

description
string

test description

type
string

test type

object (TestContent)
source
string

reference to test source resource

created
string <date-time>
object

test labels

schedule
string

schedule to run test

readOnly
boolean

if test is offline and cannot be executed

uploads
Array of strings

list of file paths that will be needed from uploads

object (ExecutionRequest)

test execution request body

object (TestStatus)

test status

Responses

Request samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Response samples

Content type
application/json
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Get test

Gets the specified test

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "description": "this test is used for that purpose",
  • "type": "postman/collection",
  • "content": {
    },
  • "source": "my-private-repository-test",
  • "created": "2022-07-30T06:54:15Z",
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "readOnly": true,
  • "uploads": [
    ],
  • "executionRequest": {
    },
  • "status": {
    }
}

Delete test

Deletes a test

path Parameters
id
required
string

unique id of the object

query Parameters
skipDeleteExecutions
boolean
Default: false

dont delete executions

Responses

Response samples

Content type
application/problem+json
[]

Abort all executions of a test

Abort all test executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get test metrics

Gets test metrics for given tests executions, with particular execution status and timings

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

limit
integer
Default: 7

limit records count same as pageSize

Responses

Response samples

Content type
application/json
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

List test with executions

List available test with executions

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

Responses

Response samples

Content type
[
  • {
    }
]

Get test with execution

Gets the specified test with execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "test": {
    },
  • "latestExecution": {
    }
}

Starts new test execution

New test execution returns new execution details on successful execution start

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

testExecutionName
string

test execution name stated the test execution

Request Body schema: application/json

body passed to configure execution

id
string <bson objectId>

execution id

name
string

test execution custom name

testSuiteName
string

unique test suite name (CRD Test suite name), if it's run as a part of test suite

number
integer

test execution number

object

test execution labels

namespace
string

test kubernetes namespace ("testkube" when not set)

isVariablesFileUploaded
boolean

in case the variables file is too big, it will be uploaded

variablesFile
string

variables file content - need to be in format for particular executor (e.g. postman envs file)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

command
Array of strings

executor image command

args
Array of strings

additional executor binary arguments

args_mode
string
Enum: "append" "override" "replace"

usage mode for arguments

image
string

container image, executor will run inside this image

Array of objects (LocalObjectReference)

container image pull secrets

object
Deprecated

Environment variables passed to executor. Deprecated: use Basic Variables instead

object
Deprecated

Execution variables passed to executor from secrets. Deprecated: use Secret Variables instead

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

negativeTest
boolean

whether to run test as negative test

isNegativeTestChangedOnRun
boolean

whether negativeTest was changed by user

activeDeadlineSeconds
integer <int64>

duration in seconds the test may be active, until its stopped

uploads
Array of strings

list of file paths that need to be copied into the test from uploads

bucketName
string

minio bucket name to get uploads from

object (ArtifactRequest)

artifact request body with test artifacts

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

object (TestContentRequest)

test content request body

preRunScript
string

script to run before test execution

postRunScript
string

script to run after test execution

executePostRunScriptBeforeScraping
boolean

execute post run script before scraping (prebuilt executor only)

sourceScripts
boolean

run scripts using source command (container executor only)

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

Array of objects (EnvReference)

config map references

Array of objects (EnvReference)

secret references

object (RunningContext)

running context for test or test suite execution

testExecutionName
string

test execution name started the test execution

downloadArtifactExecutionIDs
Array of strings

execution ids for artifacts to download

downloadArtifactTestNames
Array of strings

test names for artifacts to download from latest executions

object (PodRequest)

pod request body

executionNamespace
string

namespace for test execution (Pro edition only)

Responses

Request samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "testing with 1000 users",
  • "testSuiteName": "test-suite1",
  • "number": 0,
  • "executionLabels": {
    },
  • "namespace": "testkube",
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "variables": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "image": "kubeshop/testkube-executor-custom:1.10.11-dev-0a9c91",
  • "imagePullSecrets": [
    ],
  • "envs": {
    },
  • "secretEnvs": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "negativeTest": false,
  • "isNegativeTestChangedOnRun": false,
  • "activeDeadlineSeconds": 1,
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "contentRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "envConfigMaps": [
    ],
  • "envSecrets": [
    ],
  • "runningContext": {
    },
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Response samples

Content type
application/json
{
  • "status": "queued",
  • "output": "string",
  • "outputType": "text/plain",
  • "errorMessage": "string",
  • "steps": [
    ],
  • "reports": {
    }
}

Get all test executions

Returns array of all available test executions

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test execution

Returns execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc4",
  • "testName": "example-test",
  • "testSuiteName": "test-suite1",
  • "testNamespace": "testkube",
  • "testType": "postman/collection",
  • "name": "test-suite1-example-test-1",
  • "number": 1,
  • "envs": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "variables": {
    },
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "testSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "testSuiteSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "content": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "88s",
  • "durationMs": 10000,
  • "executionResult": {
    },
  • "labels": {
    },
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "runningContext": {
    },
  • "containerShell": "/bin/sh",
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Aborts execution

Aborts execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Upload file

Upload file to be used in executions and tests

Request Body schema: multipart/form-data

Upload files request body data

parentName
string
parentType
string
Enum: "test" "execution"
filePath
string

Responses

Response samples

Content type
"string"

executions

Test suites and tests execution operations

Starts new test suite execution

New test suite execution returns new execution details on successful execution start

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

last
integer
Default: 7

last N days to show

testSuiteExecutionName
string

test suite execution name stated the test suite execution

Request Body schema: application/json

body passed to configure execution

name
string

test execution custom name

number
integer

test suite execution number

namespace
string

test kubernetes namespace ("testkube" when not set)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

object

test suite labels

object

execution labels

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

timeout
integer <int32>

duration in seconds the test suite may be active, until its stopped

object (TestContentRequest)

test content request body

object (RunningContext)

running context for test or test suite execution

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

concurrencyLevel
integer <int32>

number of tests run in parallel

testSuiteExecutionName
string

test suite execution name started the test suite execution

Responses

Request samples

Content type
application/json
{
  • "name": "testing with 1000 users",
  • "number": 1,
  • "namespace": "testkube",
  • "variables": {
    },
  • "labels": {
    },
  • "executionLabels": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "timeout": 1,
  • "contentRequest": {
    },
  • "runningContext": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "concurrencyLevel": 10,
  • "testSuiteExecutionName": "string"
}

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get all test suite executions

Returns array of all available test suite executions

path Parameters
id
required
string

unique id of the object

query Parameters
pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test suite execution

Returns test suite execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "test-suite1.needlessly-sweet-imp",
  • "testSuite": {
    },
  • "status": "queued",
  • "envs": {
    },
  • "variables": {
    },
  • "secretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "2m",
  • "durationMs": 6000,
  • "stepResults": [
    ],
  • "executeStepResults": [
    ],
  • "labels": {
    },
  • "runningContext": {
    },
  • "testSuiteExecutionName": "string"
}

Aborts testsuite execution

Aborts testsuite execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Get test suite execution artifacts

Returns test suite execution artifacts with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": 0,
  • "executionName": "test-1",
  • "status": "ready"
}

Starts new test suite executions

New test suite executions returns new executions details on successful executions start

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

concurrency
integer
Default: 10
Request Body schema: application/json

body passed to configure executions

name
string

test execution custom name

number
integer

test suite execution number

namespace
string

test kubernetes namespace ("testkube" when not set)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

object

test suite labels

object

execution labels

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

timeout
integer <int32>

duration in seconds the test suite may be active, until its stopped

object (TestContentRequest)

test content request body

object (RunningContext)

running context for test or test suite execution

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

concurrencyLevel
integer <int32>

number of tests run in parallel

testSuiteExecutionName
string

test suite execution name started the test suite execution

Responses

Request samples

Content type
application/json
{
  • "name": "testing with 1000 users",
  • "number": 1,
  • "namespace": "testkube",
  • "variables": {
    },
  • "labels": {
    },
  • "executionLabels": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "timeout": 1,
  • "contentRequest": {
    },
  • "runningContext": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "concurrencyLevel": 10,
  • "testSuiteExecutionName": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get all test suite executions

Returns array of test suite executions

query Parameters
last
integer
Default: 7

last N days to show

test
string
Default: ""

test namespaced name to filter

textSearch
string
Default: ""

text to search in name and test name

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

selector
string

Labels to filter by

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test suite execution by ID

Returns test suite execution with given executionID

path Parameters
executionID
required
string

unique id of the object execution

query Parameters
last
integer
Default: 7

last N days to show

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "test-suite1.needlessly-sweet-imp",
  • "testSuite": {
    },
  • "status": "queued",
  • "envs": {
    },
  • "variables": {
    },
  • "secretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "2m",
  • "durationMs": 6000,
  • "stepResults": [
    ],
  • "executeStepResults": [
    ],
  • "labels": {
    },
  • "runningContext": {
    },
  • "testSuiteExecutionName": "string"
}

Aborts testsuite execution

Aborts testsuite execution with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Get test suite execution artifacts

Returns test suite execution artifacts with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": 0,
  • "executionName": "test-1",
  • "status": "ready"
}

Starts new test executions

New test executions returns new executions details on successful executions start

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

executionSelector
string

Execution Labels to add to executions

concurrency
integer
Default: 10
Request Body schema: application/json

body passed to configure executions

id
string <bson objectId>

execution id

name
string

test execution custom name

testSuiteName
string

unique test suite name (CRD Test suite name), if it's run as a part of test suite

number
integer

test execution number

object

test execution labels

namespace
string

test kubernetes namespace ("testkube" when not set)

isVariablesFileUploaded
boolean

in case the variables file is too big, it will be uploaded

variablesFile
string

variables file content - need to be in format for particular executor (e.g. postman envs file)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

command
Array of strings

executor image command

args
Array of strings

additional executor binary arguments

args_mode
string
Enum: "append" "override" "replace"

usage mode for arguments

image
string

container image, executor will run inside this image

Array of objects (LocalObjectReference)

container image pull secrets

object
Deprecated

Environment variables passed to executor. Deprecated: use Basic Variables instead

object
Deprecated

Execution variables passed to executor from secrets. Deprecated: use Secret Variables instead

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

negativeTest
boolean

whether to run test as negative test

isNegativeTestChangedOnRun
boolean

whether negativeTest was changed by user

activeDeadlineSeconds
integer <int64>

duration in seconds the test may be active, until its stopped

uploads
Array of strings

list of file paths that need to be copied into the test from uploads

bucketName
string

minio bucket name to get uploads from

object (ArtifactRequest)

artifact request body with test artifacts

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

object (TestContentRequest)

test content request body

preRunScript
string

script to run before test execution

postRunScript
string

script to run after test execution

executePostRunScriptBeforeScraping
boolean

execute post run script before scraping (prebuilt executor only)

sourceScripts
boolean

run scripts using source command (container executor only)

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

Array of objects (EnvReference)

config map references

Array of objects (EnvReference)

secret references

object (RunningContext)

running context for test or test suite execution

testExecutionName
string

test execution name started the test execution

downloadArtifactExecutionIDs
Array of strings

execution ids for artifacts to download

downloadArtifactTestNames
Array of strings

test names for artifacts to download from latest executions

object (PodRequest)

pod request body

executionNamespace
string

namespace for test execution (Pro edition only)

Responses

Request samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "testing with 1000 users",
  • "testSuiteName": "test-suite1",
  • "number": 0,
  • "executionLabels": {
    },
  • "namespace": "testkube",
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "variables": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "image": "kubeshop/testkube-executor-custom:1.10.11-dev-0a9c91",
  • "imagePullSecrets": [
    ],
  • "envs": {
    },
  • "secretEnvs": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "negativeTest": false,
  • "isNegativeTestChangedOnRun": false,
  • "activeDeadlineSeconds": 1,
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "contentRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "envConfigMaps": [
    ],
  • "envSecrets": [
    ],
  • "runningContext": {
    },
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get all test executions

Returns array of test executions

query Parameters
test
string
Default: ""

test namespaced name to filter

type
string
Default: ""

object type

textSearch
string
Default: ""

text to search in name and test name

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

selector
string

Labels to filter by

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test execution by ID

Returns execution with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc4",
  • "testName": "example-test",
  • "testSuiteName": "test-suite1",
  • "testNamespace": "testkube",
  • "testType": "postman/collection",
  • "name": "test-suite1-example-test-1",
  • "number": 1,
  • "envs": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "variables": {
    },
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "testSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "testSuiteSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "content": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "88s",
  • "durationMs": 10000,
  • "executionResult": {
    },
  • "labels": {
    },
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "runningContext": {
    },
  • "containerShell": "/bin/sh",
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Get execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get execution's logs by ID

Returns logs of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get execution's logs by ID version 2

Returns logs of the given executionID version 2

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

Starts new test execution

New test execution returns new execution details on successful execution start

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

testExecutionName
string

test execution name stated the test execution

Request Body schema: application/json

body passed to configure execution

id
string <bson objectId>

execution id

name
string

test execution custom name

testSuiteName
string

unique test suite name (CRD Test suite name), if it's run as a part of test suite

number
integer

test execution number

object

test execution labels

namespace
string

test kubernetes namespace ("testkube" when not set)

isVariablesFileUploaded
boolean

in case the variables file is too big, it will be uploaded

variablesFile
string

variables file content - need to be in format for particular executor (e.g. postman envs file)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

command
Array of strings

executor image command

args
Array of strings

additional executor binary arguments

args_mode
string
Enum: "append" "override" "replace"

usage mode for arguments

image
string

container image, executor will run inside this image

Array of objects (LocalObjectReference)

container image pull secrets

object
Deprecated

Environment variables passed to executor. Deprecated: use Basic Variables instead

object
Deprecated

Execution variables passed to executor from secrets. Deprecated: use Secret Variables instead

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

negativeTest
boolean

whether to run test as negative test

isNegativeTestChangedOnRun
boolean

whether negativeTest was changed by user

activeDeadlineSeconds
integer <int64>

duration in seconds the test may be active, until its stopped

uploads
Array of strings

list of file paths that need to be copied into the test from uploads

bucketName
string

minio bucket name to get uploads from

object (ArtifactRequest)

artifact request body with test artifacts

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

object (TestContentRequest)

test content request body

preRunScript
string

script to run before test execution

postRunScript
string

script to run after test execution

executePostRunScriptBeforeScraping
boolean

execute post run script before scraping (prebuilt executor only)

sourceScripts
boolean

run scripts using source command (container executor only)

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

Array of objects (EnvReference)

config map references

Array of objects (EnvReference)

secret references

object (RunningContext)

running context for test or test suite execution

testExecutionName
string

test execution name started the test execution

downloadArtifactExecutionIDs
Array of strings

execution ids for artifacts to download

downloadArtifactTestNames
Array of strings

test names for artifacts to download from latest executions

object (PodRequest)

pod request body

executionNamespace
string

namespace for test execution (Pro edition only)

Responses

Request samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "testing with 1000 users",
  • "testSuiteName": "test-suite1",
  • "number": 0,
  • "executionLabels": {
    },
  • "namespace": "testkube",
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "variables": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "image": "kubeshop/testkube-executor-custom:1.10.11-dev-0a9c91",
  • "imagePullSecrets": [
    ],
  • "envs": {
    },
  • "secretEnvs": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "negativeTest": false,
  • "isNegativeTestChangedOnRun": false,
  • "activeDeadlineSeconds": 1,
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "contentRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "envConfigMaps": [
    ],
  • "envSecrets": [
    ],
  • "runningContext": {
    },
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Response samples

Content type
application/json
{
  • "status": "queued",
  • "output": "string",
  • "outputType": "text/plain",
  • "errorMessage": "string",
  • "steps": [
    ],
  • "reports": {
    }
}

Get all test executions

Returns array of all available test executions

path Parameters
id
required
string

unique id of the object

query Parameters
last
integer
Default: 7

last N days to show

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (ExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborted" "timeout" "skipped"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test execution

Returns execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc4",
  • "testName": "example-test",
  • "testSuiteName": "test-suite1",
  • "testNamespace": "testkube",
  • "testType": "postman/collection",
  • "name": "test-suite1-example-test-1",
  • "number": 1,
  • "envs": {
    },
  • "command": [
    ],
  • "args": [
    ],
  • "args_mode": "append",
  • "variables": {
    },
  • "isVariablesFileUploaded": false,
  • "variablesFile": "string",
  • "testSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "testSuiteSecretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "content": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "88s",
  • "durationMs": 10000,
  • "executionResult": {
    },
  • "labels": {
    },
  • "uploads": [
    ],
  • "bucketName": "execution-c01d7cf6-ec3f-47f0-9556-a5d6e9009a43",
  • "artifactRequest": {
    },
  • "preRunScript": "echo -n '$SECRET_ENV' > ./secret_file",
  • "postRunScript": "sleep 30",
  • "executePostRunScriptBeforeScraping": true,
  • "sourceScripts": true,
  • "runningContext": {
    },
  • "containerShell": "/bin/sh",
  • "testExecutionName": "string",
  • "downloadArtifactExecutionIDs": [
    ],
  • "downloadArtifactTestNames": [
    ],
  • "slavePodRequest": {
    },
  • "executionNamespace": "string"
}

Aborts execution

Aborts execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Upload file

Upload file to be used in executions and tests

Request Body schema: multipart/form-data

Upload files request body data

parentName
string
parentType
string
Enum: "test" "execution"
filePath
string

Responses

Response samples

Content type
"string"

Get test workflow execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download test workflow artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download test workflow artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

test-suites

Test suites orchestration operations

Create new test suite

Create new test suite action

Request Body schema:

test details body

name
required
string

object name

namespace
required
string

object kubernetes namespace

description
string
Array of objects (TestSuiteBatchStep)

Run these batch steps before whole suite

Array of objects (TestSuiteBatchStep)

Batch steps to run

Array of objects (TestSuiteBatchStep)

Run these batch steps after whole suite

object

test suite labels

schedule
string

schedule to run test suite

repeats
integer
Default: 1
created
string <date-time>
object (TestSuiteExecutionRequest)

test suite execution request body

required
object (TestSuiteStatus)

test suite status

readOnly
boolean

if test suite is offline and cannot be executed

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "test-suite1",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Get all test suites

Returns array of test suites

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

Responses

Response samples

Content type
[
  • {
    }
]

Delete test suites

Deletes all or labeled test suites

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Get test suite by ID

Returns test suite with given name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "test-suite1",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Update test suite

Update test based on test suite content or git based data

path Parameters
id
required
string

unique id of the object

Request Body schema:

test suite details body

name
required
string

object name

namespace
string

object kubernetes namespace

description
string
Array of objects (TestSuiteBatchStep)

Run these batch steps before whole suite

Array of objects (TestSuiteBatchStep)

Batch steps to run

Array of objects (TestSuiteBatchStep)

Run these batch steps after whole suite

object

test suite labels

schedule
string

schedule to run test suite

repeats
integer
Default: 1
created
string <date-time>
object (TestSuiteExecutionRequest)

test suite execution request body

required
object (TestSuiteStatus)

test suite status

readOnly
boolean

if test suite is offline and cannot be executed

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "test-suite1",
  • "namespace": "testkube",
  • "description": "collection of tests",
  • "before": [
    ],
  • "steps": [
    ],
  • "after": [
    ],
  • "labels": {
    },
  • "schedule": "* * * * *",
  • "repeats": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "executionRequest": {
    },
  • "status": {
    },
  • "readOnly": true
}

Delete test suite

Deletes a test suite

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

List tests for test suite

List available tests for test suite

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Abort all executions of a test suite

Abort all test executions of a test suite

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get all test suite with executions

Returns array of test suite with executions

query Parameters
selector
string

Labels to filter by

textSearch
string
Default: ""

text to search in name and test name

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

Responses

Response samples

Content type
[
  • {
    }
]

Get test suite by ID with execution

Returns test suite with given name with execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "testSuite": {
    },
  • "latestExecution": {
    }
}

Starts new test suite execution

New test suite execution returns new execution details on successful execution start

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

last
integer
Default: 7

last N days to show

testSuiteExecutionName
string

test suite execution name stated the test suite execution

Request Body schema: application/json

body passed to configure execution

name
string

test execution custom name

number
integer

test suite execution number

namespace
string

test kubernetes namespace ("testkube" when not set)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

object

test suite labels

object

execution labels

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

timeout
integer <int32>

duration in seconds the test suite may be active, until its stopped

object (TestContentRequest)

test content request body

object (RunningContext)

running context for test or test suite execution

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

concurrencyLevel
integer <int32>

number of tests run in parallel

testSuiteExecutionName
string

test suite execution name started the test suite execution

Responses

Request samples

Content type
application/json
{
  • "name": "testing with 1000 users",
  • "number": 1,
  • "namespace": "testkube",
  • "variables": {
    },
  • "labels": {
    },
  • "executionLabels": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "timeout": 1,
  • "contentRequest": {
    },
  • "runningContext": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "concurrencyLevel": 10,
  • "testSuiteExecutionName": "string"
}

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get all test suite executions

Returns array of all available test suite executions

path Parameters
id
required
string

unique id of the object

query Parameters
pageSize
integer
Default: 100

the number of executions to get, setting to 0 will return only totals

page
integer
Default: 0

the page index to start at

status
string (TestSuiteExecutionStatus)
Enum: "queued" "running" "passed" "failed" "aborting" "aborted" "timeout"

optional status filter containing multiple values separated by comma

startDate
string <date>

startDate for filtering in ISO-8601 format, i.e. "yyyy-mm-dd"

endDate
string <date>

endDate for filtering

Responses

Response samples

Content type
application/json
{
  • "totals": {
    },
  • "filtered": {
    },
  • "results": [
    ]
}

Get test suite execution

Returns test suite execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "test-suite1.needlessly-sweet-imp",
  • "testSuite": {
    },
  • "status": "queued",
  • "envs": {
    },
  • "variables": {
    },
  • "secretUUID": "7934600f-b367-48dd-b981-4353304362fb",
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "duration": "2m",
  • "durationMs": 6000,
  • "stepResults": [
    ],
  • "executeStepResults": [
    ],
  • "labels": {
    },
  • "runningContext": {
    },
  • "testSuiteExecutionName": "string"
}

Aborts testsuite execution

Aborts testsuite execution with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Get test suite execution artifacts

Returns test suite execution artifacts with given executionID

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": 0,
  • "executionName": "test-1",
  • "status": "ready"
}

Starts new test suite executions

New test suite executions returns new executions details on successful executions start

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

concurrency
integer
Default: 10
Request Body schema: application/json

body passed to configure executions

name
string

test execution custom name

number
integer

test suite execution number

namespace
string

test kubernetes namespace ("testkube" when not set)

object (Variables)

execution variables passed to executor converted to vars for usage in tests

object

test suite labels

object

execution labels

sync
boolean

whether to start execution sync or async

httpProxy
string

http proxy for executor containers

httpsProxy
string

https proxy for executor containers

timeout
integer <int32>

duration in seconds the test suite may be active, until its stopped

object (TestContentRequest)

test content request body

object (RunningContext)

running context for test or test suite execution

jobTemplate
string

job template extensions

jobTemplateReference
string

name of the template resource

cronJobTemplate
string

cron job template extensions

cronJobTemplateReference
string

name of the template resource

scraperTemplate
string

scraper template extensions

scraperTemplateReference
string

name of the template resource

pvcTemplate
string

pvc template extensions

pvcTemplateReference
string

name of the template resource

concurrencyLevel
integer <int32>

number of tests run in parallel

testSuiteExecutionName
string

test suite execution name started the test suite execution

Responses

Request samples

Content type
application/json
{
  • "name": "testing with 1000 users",
  • "number": 1,
  • "namespace": "testkube",
  • "variables": {
    },
  • "labels": {
    },
  • "executionLabels": {
    },
  • "sync": true,
  • "httpProxy": "user:[email protected]:8080",
  • "httpsProxy": "user:[email protected]:8081",
  • "timeout": 1,
  • "contentRequest": {
    },
  • "runningContext": {
    },
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "cronJobTemplate": "string",
  • "cronJobTemplateReference": "string",
  • "scraperTemplate": "string",
  • "scraperTemplateReference": "string",
  • "pvcTemplate": "string",
  • "pvcTemplateReference": "string",
  • "concurrencyLevel": 10,
  • "testSuiteExecutionName": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get test suite execution artifacts

Returns test suite execution artifacts with given executionID

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "size": 0,
  • "executionName": "test-1",
  • "status": "ready"
}

labels

Listing all available labels

List labels

list all available labels

Responses

Response samples

Content type
application/json
{
  • "app": [
    ],
  • "env": [
    ],
  • "toDelete": [
    ]
}

artifacts

Artifact operations

Get execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

Get test workflow execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download test workflow artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download test workflow artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

logs

Log operations

Get execution's logs by ID

Returns logs of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get execution's logs by ID version 2

Returns logs of the given executionID version 2

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

executor

Executor operations

List executors

List executors available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new executor

Create new executor based on variables passed in request

Request Body schema:

executor request body data

executorType
string

ExecutorType one of "rest" for rest openapi based executors or "job" which will be default runners for testkube soon

image
string

Image for kube-job

object (SlavesMeta)

Slave data for executing tests in distributed environment

Array of objects (LocalObjectReference)

container image pull secrets

command
Array of strings

executor image command

args
Array of strings

additional executor binary argument

types
required
Array of strings

Types defines what types can be handled by executor e.g. "postman/collection", ":curl/command" etc

uri
string

URI for rest based executors

contentTypes
Array of strings

list of handled content types

jobTemplate
string

Job template to launch executor

jobTemplateReference
string

name of the template resource

object

executor labels

features
Array of strings
Items Enum: "artifacts" "junit-report"

Available executor features

object (ExecutorMeta)

Executor meta data

useDataDirAsWorkingDir
boolean

use data dir as working dir for executor

namespace
required
string

object kubernetes namespace

name
required
string

object name

Responses

Request samples

Content type
{
  • "executorType": "string",
  • "image": "string",
  • "slaves": {
    },
  • "imagePullSecrets": [
    ],
  • "command": [
    ],
  • "args": [
    ],
  • "types": [
    ],
  • "uri": "string",
  • "contentTypes": [
    ],
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "labels": {
    },
  • "features": [
    ],
  • "meta": {},
  • "useDataDirAsWorkingDir": true,
  • "namespace": "testkube",
  • "name": "name"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

Delete executors

Deletes labeled executors

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Delete executor

Deletes executor by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get executor details

Returns executors data with executions passed to executor

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

Update executor

Update new executor based on variables passed in request

path Parameters
id
required
string

unique id of the object

Request Body schema:

executor request body data

executorType
string

ExecutorType one of "rest" for rest openapi based executors or "job" which will be default runners for testkube soon

image
string

Image for kube-job

object (SlavesMeta)

Slave data for executing tests in distributed environment

Array of objects (LocalObjectReference)

container image pull secrets

command
Array of strings

executor image command

args
Array of strings

additional executor binary argument

types
Array of strings

Types defines what types can be handled by executor e.g. "postman/collection", ":curl/command" etc

uri
string

URI for rest based executors

contentTypes
Array of strings

list of handled content types

jobTemplate
string

Job template to launch executor

jobTemplateReference
string

name of the template resource

object

executor labels

features
Array of strings
Items Enum: "artifacts" "junit-report"

Available executor features

object (ExecutorMeta)

Executor meta data

useDataDirAsWorkingDir
boolean

use data dir as working dir for executor

namespace
string

object kubernetes namespace

name
required
string

object name

Responses

Request samples

Content type
{
  • "executorType": "string",
  • "image": "string",
  • "slaves": {
    },
  • "imagePullSecrets": [
    ],
  • "command": [
    ],
  • "args": [
    ],
  • "types": [
    ],
  • "uri": "string",
  • "contentTypes": [
    ],
  • "jobTemplate": "string",
  • "jobTemplateReference": "string",
  • "labels": {
    },
  • "features": [
    ],
  • "meta": {},
  • "useDataDirAsWorkingDir": true,
  • "namespace": "testkube",
  • "name": "name"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

Get executor details by type

Returns executors data with executions passed to executor

query Parameters
testType
required
string

test type of the executor

Responses

Response samples

Content type
{
  • "name": "string",
  • "executor": {
    },
  • "executions": {
    }
}

webhook

Webhook operations

List webhooks

List webhooks available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new webhook

Create new webhook based on variables passed in request

Request Body schema:

webhook request body data

name
string
namespace
string
uri
required
string
events
required
Array of strings (EventType)
Items Enum: "start-test" "end-test-success" "end-test-failed" "end-test-aborted" "end-test-timeout" "start-testsuite" "end-testsuite-success" "end-testsuite-failed" "end-testsuite-aborted" "end-testsuite-timeout" "queue-testworkflow" "start-testworkflow" "end-testworkflow-success" "end-testworkflow-failed" "end-testworkflow-aborted" "created" "updated" "deleted"
selector
string

Labels to filter for tests and test suites

payloadObjectField
string

will load the generated payload for notification inside the object

payloadTemplate
string

golang based template for notification payload

payloadTemplateReference
string

name of the template resource

object

webhook headers (golang template supported)

object

webhook labels

Responses

Request samples

Content type
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Delete webhooks

Deletes labeled webhooks

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Delete webhook

Deletes webhook by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get webhook details

Returns webhook

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Update new webhook

Update new webhook based on variables passed in request

path Parameters
id
required
string

unique id of the object

Request Body schema:

webhook request body data

name
string
namespace
string
uri
required
string
events
required
Array of strings (EventType)
Items Enum: "start-test" "end-test-success" "end-test-failed" "end-test-aborted" "end-test-timeout" "start-testsuite" "end-testsuite-success" "end-testsuite-failed" "end-testsuite-aborted" "end-testsuite-timeout" "queue-testworkflow" "start-testworkflow" "end-testworkflow-success" "end-testworkflow-failed" "end-testworkflow-aborted" "created" "updated" "deleted"
selector
string

Labels to filter for tests and test suites

payloadObjectField
string

will load the generated payload for notification inside the object

payloadTemplate
string

golang based template for notification payload

payloadTemplateReference
string

name of the template resource

object

webhook headers (golang template supported)

object

webhook labels

Responses

Request samples

Content type
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook1",
  • "namespace": "testkube",
  • "events": [
    ],
  • "selector": "string",
  • "payloadObjectField": "string",
  • "payloadTemplate": "string",
  • "payloadTemplateReference": "string",
  • "headers": {
    },
  • "labels": {
    }
}

test-triggers

Test Triggers CRUD operations

List test triggers

List test triggers from the kubernetes cluster

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new test trigger

Create new test trigger CRD inside a Kubernetes cluster

Request Body schema:

test trigger body

name
required
string

object name

namespace
string

object kubernetes namespace

object

test trigger labels

resource
required
string (TestTriggerResources)
Enum: "pod" "deployment" "statefulset" "daemonset" "service" "ingress" "event" "configmap"

supported kubernetes resources for test triggers

required
object (TestTriggerSelector)
event
required
string

listen for event for selected resource

object (TestTriggerConditionSpec)
object (TestTriggerProbeSpec)
action
required
string (TestTriggerActions)
Value: "run"

supported actions for test triggers

execution
required
string (TestTriggerExecutions)
Enum: "test" "testsuite"

supported test resources for test triggers

required
object (TestTriggerSelector)
concurrencyPolicy
string (TestTriggerConcurrencyPolicies)
Enum: "allow" "forbid" "replace"

supported concurrency policies for test triggers

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Response samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Bulk update test triggers

Updates test triggers provided as an array in the request body

Request Body schema: application/json

array of test trigger upsert requests

Array
name
required
string

object name

namespace
string

object kubernetes namespace

object

test trigger labels

resource
required
string (TestTriggerResources)
Enum: "pod" "deployment" "statefulset" "daemonset" "service" "ingress" "event" "configmap"

supported kubernetes resources for test triggers

required
object (TestTriggerSelector)
event
required
string

listen for event for selected resource

object (TestTriggerConditionSpec)
object (TestTriggerProbeSpec)
action
required
string (TestTriggerActions)
Value: "run"

supported actions for test triggers

execution
required
string (TestTriggerExecutions)
Enum: "test" "testsuite"

supported test resources for test triggers

required
object (TestTriggerSelector)
concurrencyPolicy
string (TestTriggerConcurrencyPolicies)
Enum: "allow" "forbid" "replace"

supported concurrency policies for test triggers

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Delete test triggers

Deletes all or labeled test triggers

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Get test trigger by ID

Get test trigger by ID from CRD in kubernetes cluster

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

Responses

Response samples

Content type
{
  • "name": "test1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Update test trigger

Update test trigger

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

Request Body schema:

test trigger upsert request

name
required
string

object name

namespace
string

object kubernetes namespace

object

test trigger labels

resource
required
string (TestTriggerResources)
Enum: "pod" "deployment" "statefulset" "daemonset" "service" "ingress" "event" "configmap"

supported kubernetes resources for test triggers

required
object (TestTriggerSelector)
event
required
string

listen for event for selected resource

object (TestTriggerConditionSpec)
object (TestTriggerProbeSpec)
action
required
string (TestTriggerActions)
Value: "run"

supported actions for test triggers

execution
required
string (TestTriggerExecutions)
Enum: "test" "testsuite"

supported test resources for test triggers

required
object (TestTriggerSelector)
concurrencyPolicy
string (TestTriggerConcurrencyPolicies)
Enum: "allow" "forbid" "replace"

supported concurrency policies for test triggers

Responses

Request samples

Content type
{
  • "name": "name",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Response samples

Content type
application/json
{
  • "name": "test1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "resource": "pod",
  • "resourceSelector": {
    },
  • "event": "modified",
  • "conditionSpec": {
    },
  • "probeSpec": {
    },
  • "action": "run",
  • "execution": "test",
  • "testSelector": {
    },
  • "concurrencyPolicy": "allow"
}

Delete test trigger

Deletes a test trigger

path Parameters
id
required
string

unique id of the object

query Parameters
namespace
string
Default: "testkube"

Namespace of the object

Responses

Response samples

Content type
application/problem+json
[]

keymap

Keymap for fields in a form

Test triggers keymap

Returns a keymap (supported/allowed fields) for the test trigger UI screen

Responses

Response samples

Content type
application/json
{
  • "resources": [
    ],
  • "actions": [
    ],
  • "executions": [
    ],
  • "events": {
    },
  • "conditions": [
    ],
  • "concurrencyPolicies": [
    ]
}

templates

List templates

List templates available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

template

Create new template

Create new template based on variables passed in request

Request Body schema:

template request body data

name
required
string

template name for reference

namespace
string

template namespace

type
required
string (TemplateType)
Enum: "job" "container" "cronjob" "scraper" "pvc" "webhook" "pod"

template type by purpose

body
required
string

template body to use

object

template labels

Responses

Request samples

Content type
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Delete templates

Deletes labeled templates

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Delete template

Deletes template by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get template details

Returns template

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Update new template

Update new template based on variables passed in request

path Parameters
id
required
string

unique id of the object

Request Body schema:

template request body data

name
required
string

template name for reference

namespace
string

template namespace

type
required
string (TemplateType)
Enum: "job" "container" "cronjob" "scraper" "pvc" "webhook" "pod"

template type by purpose

body
required
string

template body to use

object

template labels

Responses

Request samples

Content type
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

Response samples

Content type
application/json
{
  • "name": "webhook-template",
  • "namespace": "testkube",
  • "type": "job",
  • "body": "{\"id\": \"{{ .Id }}\"}",
  • "labels": {
    }
}

test-sources

List test sources

List test sources available in cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Create new test source

Create new test source based on variables passed in request

Request Body schema:

test source request body data

name
string

test source name

namespace
string

test source namespace

object

test source labels

type
string
Enum: "string" "file-uri" "git-file" "git-dir" "git"

type of sources a runner can get data from. string: String content (e.g. Postman JSON file). file-uri: content stored on the webserver. git-file: the file stored in the Git repo in the given repository.path field (Deprecated: use git instead). git-dir: the entire git repo or git subdirectory depending on the repository.path field (Testkube does a shadow clone and sparse checkout to limit IOs in the case of monorepos). (Deprecated: use git instead). git: automatically provisions either a file, directory or whole git repository depending on the repository.path field.

object (Repository)

repository representation for tests in git repositories

data
string

test content data as string

uri
string

test content

Responses

Request samples

Content type
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Response samples

Content type
application/json
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Process test source batch (create, update, delete)

Process test source batch based on variables passed in request

Request Body schema: application/json

test source batch request body data

required
Array of objects (TestSourceUpsertRequest)
Array
name
string

test source name

namespace
string

test source namespace

object

test source labels

type
string
Enum: "string" "file-uri" "git-file" "git-dir" "git"

type of sources a runner can get data from. string: String content (e.g. Postman JSON file). file-uri: content stored on the webserver. git-file: the file stored in the Git repo in the given repository.path field (Deprecated: use git instead). git-dir: the entire git repo or git subdirectory depending on the repository.path field (Testkube does a shadow clone and sparse checkout to limit IOs in the case of monorepos). (Deprecated: use git instead). git: automatically provisions either a file, directory or whole git repository depending on the repository.path field.

object (Repository)

repository representation for tests in git repositories

data
string

test content data as string

uri
string

test content

Responses

Request samples

Content type
application/json
{
  • "batch": [
    ]
}

Response samples

Content type
application/json
{
  • "created": [
    ],
  • "updated": [
    ],
  • "deleted": [
    ]
}

Delete test sources

Deletes labeled test sources

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Update test source

Update test source based on test content or git based data

path Parameters
id
required
string

unique id of the object

Request Body schema:

test source body

name
string

test source name

namespace
string

test source namespace

object

test source labels

type
string
Enum: "string" "file-uri" "git-file" "git-dir" "git"

type of sources a runner can get data from. string: String content (e.g. Postman JSON file). file-uri: content stored on the webserver. git-file: the file stored in the Git repo in the given repository.path field (Deprecated: use git instead). git-dir: the entire git repo or git subdirectory depending on the repository.path field (Testkube does a shadow clone and sparse checkout to limit IOs in the case of monorepos). (Deprecated: use git instead). git: automatically provisions either a file, directory or whole git repository depending on the repository.path field.

object (Repository)

repository representation for tests in git repositories

data
string

test content data as string

uri
string

test content

Responses

Request samples

Content type
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Response samples

Content type
application/json
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

Delete test source

Deletes test source by its name

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Get test source data

Returns test sources data

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "testsource1",
  • "namespace": "testkube",
  • "labels": {
    },
  • "type": "string",
  • "repository": {
    },
  • "data": "string",
}

repository

Validate new repository

Validate new repository based on variables passed in request

Request Body schema: application/json

repository request body data

type
required
string
Value: "git"

VCS repository type

uri
required
string

uri of content file or git directory

branch
string

branch/tag name for checkout

commit
string

commit id (sha) for checkout

path
string

if needed we can checkout particular path (dir or file) in case of BIG/mono repositories

username
string

git auth username for private repositories

token
string

git auth token for private repositories

object (SecretRef)

Testkube internal reference for secret storage in Kubernetes secrets

object (SecretRef)

Testkube internal reference for secret storage in Kubernetes secrets

certificateSecret
string

secret with certificate for private repositories. Should contain one key ending with .crt such as "mycorp.crt", whose value is the certificate file content, suitable for git config http.sslCAInfo

workingDir
string

if provided we checkout the whole repository and run test from this directory

authType
string
Enum: "basic" "header"

auth type for git requests

Responses

Request samples

Content type
application/json
{
  • "type": "git",
  • "branch": "main",
  • "commit": "b928cbb7186944ab9275937ec1ac3d3738ca2e1d",
  • "path": "test/perf",
  • "username": "string",
  • "token": "string",
  • "usernameSecret": {
    },
  • "tokenSecret": {
    },
  • "certificateSecret": "string",
  • "workingDir": "/",
  • "authType": "basic"
}

Response samples

Content type
application/problem+json
[]

secrets

List secrets

List secrets available in cluster

query Parameters
all
boolean
Default: false

flag to request all resources

namespace
string
Default: "testkube"

Namespace of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

test-workflows

List test workflows

List test workflows from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Delete test workflows

Delete test workflows from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Create test workflow

Create test workflow in the kubernetes cluster

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

List test workflows with latest execution

List test workflows from the kubernetes cluster with latest execution

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow details with latest execution

Get test workflow details from the kubernetes cluster with latest execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "workflow": {
    },
  • "latestExecution": {
    }
}

List test workflow executions

List test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Execute test workflow

Execute test workflow in the kubernetes cluster

Request Body schema: application/json

test workflow execution request

name
string

custom execution name

object (TestWorkflowConfigValue)

configuration values to pass to the template

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "config": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Get test workflow metrics

Get metrics of test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

Get test workflow execution

Get test workflow execution details

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "some-workflow-name-1",
  • "number": 0,
  • "scheduledAt": "2019-08-24T14:15:22Z",
  • "statusAt": "2019-08-24T14:15:22Z",
  • "signature": [
    ],
  • "result": {
    },
  • "output": [
    ],
  • "workflow": {
    },
  • "resolvedWorkflow": {
    }
}

Abort test workflow execution

Abort test workflow execution

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

List test workflow executions

List test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow execution

Get test workflow execution details

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download test workflow artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download test workflow artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

Abort test workflow execution

Abort test workflow execution

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Abort all test workflow executions

Abort all test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Preview test workflow

Preview test workflow after including templates inside

query Parameters
inline
boolean
Default: false

should inline templates in the resolved workflow

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

Get test workflow details

Get test workflow details from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Update test workflow details

Update test workflow details in the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Delete test workflow

Delete test workflow from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

query Parameters
skipDeleteExecutions
boolean
Default: false

dont delete executions

Responses

Response samples

Content type
application/problem+json
[]

List test workflow templates

List test workflow templates from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Delete test workflow templates

Delete test workflow templates from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Create test workflow template

Create test workflow template in the kubernetes cluster

Request Body schema:

test workflow template body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowTemplateSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

Get test workflow template details

Get test workflow template details from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Update test workflow template details

Update test workflow template details in the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Request Body schema:

test workflow template body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowTemplateSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Delete test workflow template

Delete test workflow template from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

pro

List test workflows

List test workflows from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Delete test workflows

Delete test workflows from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Create test workflow

Create test workflow in the kubernetes cluster

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

List test workflows with latest execution

List test workflows from the kubernetes cluster with latest execution

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow details with latest execution

Get test workflow details from the kubernetes cluster with latest execution

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "workflow": {
    },
  • "latestExecution": {
    }
}

List test workflow executions

List test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Execute test workflow

Execute test workflow in the kubernetes cluster

Request Body schema: application/json

test workflow execution request

name
string

custom execution name

object (TestWorkflowConfigValue)

configuration values to pass to the template

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "config": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Get test workflow metrics

Get metrics of test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "passFailRatio": 50,
  • "executionDurationP50": "7m2.71s",
  • "executionDurationP50ms": 422,
  • "executionDurationP90": "7m2.71s",
  • "executionDurationP90ms": 422,
  • "executionDurationP95": "7m2.71s",
  • "executionDurationP95ms": 422,
  • "executionDurationP99": "7m2.71s",
  • "executionDurationP99ms": 422,
  • "totalExecutions": 2,
  • "failedExecutions": 1,
  • "executions": [
    ]
}

Get test workflow execution

Get test workflow execution details

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
{
  • "id": "62f395e004109209b50edfc1",
  • "name": "some-workflow-name-1",
  • "number": 0,
  • "scheduledAt": "2019-08-24T14:15:22Z",
  • "statusAt": "2019-08-24T14:15:22Z",
  • "signature": [
    ],
  • "result": {
    },
  • "output": [
    ],
  • "workflow": {
    },
  • "resolvedWorkflow": {
    }
}

Abort test workflow execution

Abort test workflow execution

path Parameters
id
required
string

unique id of the object

executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

List test workflow executions

List test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow execution

Get test workflow execution details

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
[
  • {
    }
]

Get test workflow execution's artifacts by ID

Returns artifacts of the given executionID

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download test workflow artifact

Download the artifact file from the given execution

path Parameters
id
required
string

unique id of the object

filename
required
string

filename of the object usually used for artifacts

Responses

Response samples

Content type
application/problem+json
[]

Download test workflow artifact archive

Download the artifact archive from the given execution

path Parameters
id
required
string

unique id of the object

query Parameters
mask
string

mask to filter files

Responses

Response samples

Content type
application/problem+json
[]

Abort test workflow execution

Abort test workflow execution

path Parameters
executionID
required
string

unique id of the object execution

Responses

Response samples

Content type
application/problem+json
[]

Abort all test workflow executions

Abort all test workflow executions

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]

Preview test workflow

Preview test workflow after including templates inside

query Parameters
inline
boolean
Default: false

should inline templates in the resolved workflow

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

Get test workflow details

Get test workflow details from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Update test workflow details

Update test workflow details in the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Request Body schema:

test workflow body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Delete test workflow

Delete test workflow from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

query Parameters
skipDeleteExecutions
boolean
Default: false

dont delete executions

Responses

Response samples

Content type
application/problem+json
[]

List test workflow templates

List test workflow templates from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
[
  • {
    }
]

Delete test workflow templates

Delete test workflow templates from the kubernetes cluster

query Parameters
selector
string

Labels to filter by

Responses

Response samples

Content type
application/problem+json
[]

Create test workflow template

Create test workflow template in the kubernetes cluster

Request Body schema:

test workflow template body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowTemplateSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
[
  • {
    }
]

Get test workflow template details

Get test workflow template details from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Update test workflow template details

Update test workflow template details in the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Request Body schema:

test workflow template body

name
string

kubernetes resource name

namespace
string

kubernetes namespace

description
string

human-readable description

object

test workflow labels

object

test workflow annotations

created
string <date-time>
object (TestWorkflowTemplateSpec)

Responses

Request samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Response samples

Content type
{
  • "name": "string",
  • "namespace": "string",
  • "description": "string",
  • "labels": {
    },
  • "annotations": {
    },
  • "created": "2022-07-30T06:54:15Z",
  • "spec": {
    }
}

Delete test workflow template

Delete test workflow template from the kubernetes cluster

path Parameters
id
required
string

unique id of the object

Responses

Response samples

Content type
application/problem+json
[]