Test Suites
Get Test Suite Details¶
Role: Guest and above.
Parameters
| Name | Description |
|---|---|
| id * | Numeric ID of the Test Suite. Type: integer (path) |
Responses
| Code | Description |
|---|---|
| 200 |
Test Suite data. Media type: application/json Example Value: { "id": 0, "name": "string", "description": "string", "testCases": [ { "id": 0, "name": "string", "weight": 1 } ], "schedule": { "startTime": "2026-09-23T08:00:00Z", "repeating": true, "repeatPeriod": 1, "repeatUnit": "H", "repeatDays": "MON,TUE,WED,THU,FRI", "repeatTimeRange": "08:00-18:00", "timezone": "Europe/London" }, "tags": [ "string" ], "notifyFailureThresholdPercentage": 99, "disabled": false, "notifEmail": "string", "failureNotifEmail": "string", "skipInitialization": false, "skipCleanup": false, "projects": [ { "id": 0, "name": "string" } ], "scheduleConflicts": [ { "conflictingSuiteId": 0, "conflictingSuiteName": "string", "detectedAt": "2026-09-23T08:00:00Z" } ], "status": "string" } |
| 404 |
Resource was not found. |
Update a Test Suite¶
Role: Admin, or the user who created the Test Suite.
name is required (at least 5 characters) and must be unique. testCaseIds lists the Test Cases in run order; testCaseWeights gives each one's weight, in the same order. notifyFailureThresholdPercentage is 0-100: the failure percentage at which notifications are sent. Assign projects with POST /api/v2/projects/assignments.
schedule: startTime is an ISO-8601 instant. repeatUnit is S, M or H (seconds, minutes, hours) and repeatPeriod is 0-24 hours or 0-1440 minutes. repeatDays is a comma-separated list such as MON,TUE; repeatTimeRange is HH:mm-HH:mm (a range that crosses midnight needs at least two consecutive days); timezone is an IANA name. skipCleanup is ignored unless Skip Cleanup is enabled for your environment.
Parameters
| Name | Description |
|---|---|
| id * | Numeric ID of the Test Suite. Type: integer (path) |
Request body *
{ "name": "string", "description": "string", "testCaseIds": [ 0 ], "testCaseWeights": [ 1 ], "schedule": { "startTime": "2026-09-23T08:00:00Z", "repeating": true, "repeatPeriod": 1, "repeatUnit": "H", "repeatDays": "MON,TUE,WED,THU,FRI", "repeatTimeRange": "08:00-18:00", "timezone": "Europe/London" }, "tags": [ "string" ], "notifyFailureThresholdPercentage": 99, "disabled": false, "notifEmail": "string", "failureNotifEmail": "string", "skipInitialization": false, "skipCleanup": false }
Responses
| Code | Description |
|---|---|
| 200 |
Test Suite was updated successfully. |
| 400 |
The body is invalid, for example a schedule with an unknown repeat unit or date format. |
| 404 |
Resource was not found. |
| 409 |
Another Test Suite already has this name. |
Delete a Test Suite¶
Role: Admin, or the user who created the Test Suite.
Parameters
| Name | Description |
|---|---|
| id * | Numeric ID of the Test Suite. Type: integer (path) |
Responses
| Code | Description |
|---|---|
| 200 |
Test Suite was deleted successfully. |
| 404 |
Resource was not found. |
| 409 |
Test Suite is currently executing. |
Execute a Test Suite¶
Role: Standard and above.
Parameters
| Name | Description |
|---|---|
| id * | Numeric ID of the Test Suite. Type: integer (path) |
Responses
| Code | Description |
|---|---|
| 200 |
The execution was requested. Media type: application/json Example Value: { "executionId": 0, "result": "SUCCESS" } |
| 404 |
Resource was not found. |
| 500 |
The execution could not be scheduled. |
Cancel a Test Suite execution¶
Role: Admin, or the user who created the Test Suite.
Parameters
| Name | Description |
|---|---|
| id * | Numeric ID of the Test Suite. Type: integer (path) |
Responses
| Code | Description |
|---|---|
| 200 |
The execution was cancelled. The response is the ID of the cancelled Test Execution. Media type: application/json Example Value: { "id": 0 } |
| 409 |
Test Suite is not running. |
List Test Suites¶
Role: Guest and above.
Parameters
| Name | Description |
|---|---|
| page | Zero-based page number. Default 0. Type: integer (query) |
| size | Page size. Default 20. Type: integer (query) |
| sort | <field>,asc or <field>,desc.Type: string (query) |
| prj | Only return items assigned to these projects: comma-separated project IDs. Type: string (query) |
| filterName | Filter to apply: text (name contains), tagsAny, tagsAll or tagsNone (comma-separated tag names), testcase (suites that contain the Test Case with this exact name), status (running, scheduled or problematic), or testexecutions (sort by number of executions).Type: string (query) |
| filterValue | The value for filterName.Type: string (query) |
Responses
| Code | Description |
|---|---|
| 200 |
A page of Test Suites. Media type: application/json Example Value: { "content": [ { "id": 0, "name": "string", "description": "string", "testCaseNames": [ "string" ], "nextRunTime": "string", "schedule": { "startTime": "2026-09-23T08:00:00Z", "repeating": true, "repeatPeriod": 1, "repeatUnit": "H", "repeatDays": "MON,TUE,WED,THU,FRI", "repeatTimeRange": "08:00-18:00", "timezone": "Europe/London" }, "status": "string", "lastExecutionId": 0, "lastExecutionTime": "string", "statistics": { "tsExecution": 0, "tsReserveFailure": 0, "tsAvgExecutionTime": 0, "tcExecution": 0, "tcSuccess": 0 }, "notifEmail": "string", "updated": "string", "projects": [ { "id": 0, "name": "string" } ], "tags": [ "string" ], "relatedTestNodes": [ { "id": 0, "name": "string" } ], "hasScheduleConflicts": false } ], "totalElements": 0, "totalPages": 0, "number": 0, "size": 20 } |
Create a Test Suite¶
Role: Standard and above.
name is required (at least 5 characters) and must be unique. testCaseIds lists the Test Cases in run order; testCaseWeights gives each one's weight, in the same order. notifyFailureThresholdPercentage is 0-100: the failure percentage at which notifications are sent. Assign projects with POST /api/v2/projects/assignments.
schedule: startTime is an ISO-8601 instant. repeatUnit is S, M or H (seconds, minutes, hours) and repeatPeriod is 0-24 hours or 0-1440 minutes. repeatDays is a comma-separated list such as MON,TUE; repeatTimeRange is HH:mm-HH:mm (a range that crosses midnight needs at least two consecutive days); timezone is an IANA name. skipCleanup is ignored unless Skip Cleanup is enabled for your environment.
Request body *
{ "name": "string", "description": "string", "testCaseIds": [ 0 ], "testCaseWeights": [ 1 ], "schedule": { "startTime": "2026-09-23T08:00:00Z", "repeating": true, "repeatPeriod": 1, "repeatUnit": "H", "repeatDays": "MON,TUE,WED,THU,FRI", "repeatTimeRange": "08:00-18:00", "timezone": "Europe/London" }, "tags": [ "string" ], "notifyFailureThresholdPercentage": 99, "disabled": false, "notifEmail": "string", "failureNotifEmail": "string", "skipInitialization": false, "skipCleanup": false }
Responses
| Code | Description |
|---|---|
| 201 |
ID of the Test Suite. Media type: application/json Example Value: { "id": 0 } |
| 400 |
The body is invalid, for example a schedule with an unknown repeat unit or date format. |
| 409 |
Name needs to be unique. |
List upcoming scheduled executions¶
Role: Guest and above.
Parameters
| Name | Description |
|---|---|
| hours | Look-ahead window in hours. Default 24. Type: integer (query) |
| prj | Only return items assigned to these projects: comma-separated project IDs. Type: string (query) |
Responses
| Code | Description |
|---|---|
| 200 |
The scheduled runs of enabled suites that start within the window, with each suite's estimated duration. Media type: application/json Example Value:
[
{
"suiteId": 0,
"suiteName": "string",
"scheduledTime": "2026-09-23T10:00:00Z",
"estimatedDurationMs": 0
}
]
|