You can integrate any Testing framework with Sealights to capture Tests Events like Start and End of Test Stage, Tests results, etc using the API described on this page.
This API includes getting the list of tests recommended to be skipped by Sealights for Test Optimization (TIA) and forcing a Full-Run on the next execution of a Test Stage.
For your reference, you’ll find a few sample integrations with various Testing frameworks listed on our dedicated documentation page.
This API requires an Agent Token.
This API requires an Agent Token.
Create a test session with a specific Labid and test stage, if there is no labId - use BSId instead
Calling this request to create a new test session for the current run
POST /sl-api/v1/test-sessions |
Parameter | Description | Default value | Is mandatory? |
---|---|---|---|
| Lab Id |
|
|
| Test Stage |
|
|
| Build Session Id |
|
|
| Session Timeout (seconds), max timeout 86400 (24 hours) | 14,400 (4 hours) |
|
| Test group id |
POST /sl-api/v1/test-sessions HTTP/1.1 Authorization: Bearer {sealights-agent-token} Content-Type: application/json { "labId": "LabId", "testStage": "Unit Tests", "bsid": "bsId", "sessionTimeout": 10000, "testGroupId": "job name" } HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "testSessionId": "341dc795-71a8-4253-b686-27ff09f04468" } } |
Linux |
| |
---|---|---|
Powershell |
|
Getting a list of tests that should be excluded
Test Optimization must be turned on for the Test Stage in order to receive a non-empty response. |
Calling this request to get a list of test names that should be excluded in the current run (by default with test names)
GET /sl-api/v1/test-sessions/{testSessionId}/exclude-tests |
You can specify to get only the External Tests IDs (instead of Test Names) to be returned in the response
GET /sl-api/v1/test-sessions/{testSessionId}/exclude-tests?type=externalId |
Parameter | Description | Is mandatory? |
---|---|---|
| Test Session ID |
|
| enum:
|
Sample | Request | Response | ||
---|---|---|---|---|
Default (using test names) |
|
| ||
|
|
|
curl -X GET "https://$DOMAIN/sl-api/v1/test-sessions/$TESTSESSIONID/exclude-tests" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" 200 OK 404 NOT_FOUND 500 BAD_REQUEST |
Getting a list of tests that should be excluded
Test Optimization must be turned on for the Test Stage in order to receive a non-empty response. |
Calling this request to get a list of test names that should be excluded in the current run (by default with test names)
GET /sl-api/v2/test-sessions/{testSessionId}/exclude-tests |
Parameter | Description | Is mandatory? |
---|---|---|
| Test Session ID |
|
Sample | Request | Response | ||
---|---|---|---|---|
Default (using test names) |
|
|
curl -X GET "https://$DOMAIN/sl-api/v2/test-sessions/$TESTSESSIONID/exclude-tests" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" 200 OK 404 NOT_FOUND 500 BAD_REQUEST |
Sending test events with status
Calling this request for reporting SeaLights test event result.
POST /sl-api/v2/test-sessions/{testSessionId} |
|
This API can be called several times during a session to report tests in bulk. |
Parameter | Description | Is mandatory? |
---|---|---|
| Test Session ID |
|
|
Parameter | Description | Is mandatory? |
---|---|---|
| Array of Test run events (even for a single test) |
|
Test run event |
|
|
| Test Name |
|
| (Optional) Test ID from the Test Management platform/framework . | |
| Starting time of the test (milliseconds since epoch) |
|
| Ending time of the test (milliseconds since epoch) |
|
| Test status: |
|
In case of Invalid parameters, API will return an Error code |
POST /sl-api/v2/test-sessions/{testSessionId} Authorization: Bearer {sealights-agent-token} Content-Type: application/json [ { "name": "TestToRun1", "start": 1619341754996, "end": 1619341754998, "status": "passed" } ] HTTP/1.1 200 OK HTTP/1.1 400 INVALID HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
curl -X POST "https://$DOMAIN/sl-api/v2/test-sessions/$TESTSESSIONID" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ -d "[{\"name\":\"TestToRun1\",\"start\":1619341754996,\"end\":1619341754998,\"status\":\"passed\"}]" 200 OK 400 INVALID 404 NOT_FOUND 500 BAD_REQUEST |
Delete test session when sending of test events has been done.
Calling this request will close the test session and update the coverage.
DELETE /sl-api/v1/test-sessions/{testSessionId} |
Parameter | Description | Is mandatory? |
---|---|---|
| Test Session ID |
|
DELETE /sl-api/v1/test-sessions/{testSessionId} Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
curl -X DELETE "https://$DOMAIN/sl-api/v1/test-sessions/$TESTSESSIONID" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" 200 OK 404 NOT_FOUND 500 BAD_REQUEST |
This request will schedule a “full run” for the subsequent execution of a specified Test Stage.
PUT /sl-api/v1/tia/apps/{appName}/branches/{branchName}/testStages/{testStage}/full-run |
This API call should be executed BEFORE creating the test session. |
Parameter | Description | Is mandatory? |
---|---|---|
| App to schedule full run for |
|
| Branch to schedule full run for |
|
| Test Stage to schedule full run for |
|
Parameter | Description | Is mandatory? |
---|---|---|
| Boolean indicator, indicates if next run will be full run or not |
|
PUT /sl-api/v1/tia/apps/{appName}/branches/{branchName}/testStages/{testStage}/full-run Authorization: Bearer {sealights-agent-token} Content-Type: application/json { "enable": true } HTTP/1.1 200 OK HTTP/1.1 400 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
curl -X PUT "https://$DOMAIN/sl-api/v1/tia/apps/$APPNAME/branches/$BRANCHNAME/testStages/$TESTSTAGE/full-run" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"enable\":true}" 200 OK 404 NOT_FOUND 500 BAD_REQUEST |
This API call does not require a test session. |
Get recommendations for the latest build for a specific app/branch: it returns a list of test names recommended to be run.
/sl-api/v1/tia/apps/{appName}/branches/{branchName}/test-stages/{testStage}/recommendations |
Parameter | Description | Is mandatory? |
---|---|---|
appName | App name | |
branchName | Branch name | |
testStage | Test Stage name |
|
Sample | Request | Response | ||
---|---|---|---|---|
Default |
|
|
curl -X GET "https://$DOMAIN/sl-api/v1/tia/apps/$APP_NAME/branches/$BRANCH_NAME/test-stages/$TEST_STAGE/recommendations" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters 401 Recommendations not found due to error |
Get recommendations for a specific build according to buildSessionId: it will return a list of test names that are recommended to be run for the given build.
/sl-api/v1/tia/builds/{bsId}/test-stages/{testStage}/recommendations |
Parameter | Description | Is mandatory? |
---|---|---|
bsId | Build session Id | |
testStage | Test Stage name | |
offset | Result offset - used for pagination |
|
limit | Result limit - used for pagination (max limit 100,000 records) |
|
search | Free text to filter the recommednations by |
|
sortBy | Sort recommnedations bym options are:
|
|
sortDirection | Sort recommendations direction, options are:
|
|
facet | Saved filters according to recommendations` types, options are:
|
|
/sl-api/v1/tia/builds/{bsId}/test-stages/{testStage}/recommendations Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 500, "next": 50, "previous": 0, "list": [ { "testName": "it should return ok", "testType": "parameterized", "numberOfpermutations": 3, "reasons": [ "impacted" ], "relativeBuild": { "bsId": "some-bsid", "buildName": "build1", "timestamp": 1651545121 }, "pinnedBy": "user", "pinnedDate": "12/12/2022", "pinnedReason": "important test" } ], "metadata": { "appName": "app1", "branchName": "master", "buildName": "build1", "buildSessionId": "bsid1", "testStage": "Unit Tests" } } } |
curl -X GET "https://$DOMAIN/sl-api/v1/tia/builds/$BSID/test-stages/$TEST_STAGE/recommendations" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters 401 Recommendations not found due to error |
Get recommendations for a specific build according to app/branch/build-name.
Calling this request for getting a list of test names that are recommended to be run for the given build.
/sl-api/v1/tia/apps/{appName}/branches/{branchName}/builds/{buildName}/test-stages/{testStage}/recommendations |
Parameter | Description | Is mandatory? |
---|---|---|
appName | App name | |
branchName | Branch name | |
buildName | Build name | |
testStage | Test Stage name | |
offset | Result offset - used for pagination |
|
limit | Result limit - used for pagination (max limit 100,000 records) |
|
search | Free text to filter the recommednations by |
|
sortBy | Sort recommnedations bym options are:
|
|
sortDirection | Sort recommendations direction, options are:
|
|
facet | Saved filters according to recommendations` types, options are:
|
|
/sl-api/v1/tia/apps/{appName}/branches/{branchName}/builds/{buildName}/test-stages/{testStage}/recommendations Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 500, "next": 50, "previous": 0, "list": [ { "testName": "it should return ok", "testType": "parameterized", "numberOfpermutations": 3, "reasons": [ "impacted" ], "relativeBuild": { "bsId": "some-bsid", "buildName": "build1", "timestamp": 1651545121 }, "pinnedBy": "user", "pinnedDate": "12/12/2022", "pinnedReason": "important test" } ], "metadata": { "appName": "app1", "branchName": "master", "buildName": "build1", "buildSessionId": "bsid1", "testStage": "Unit Tests" } } } |
curl -X GET "https://$DOMAIN/sl-api/v1/tia/apps/$APP_NAME/branches/$BRANCH_NAME/builds/$BUILD_NAME/test-stages/$TEST_STAGE/recommendations" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters 401 Recommendations not found due to error |
Calling this request will respond with a status of all executions that are suitable for the request.
GET /sl-api/v1/executions |
This API provides you the ability to handle unexpected end of the execution of your tests that may not trigger the graceful closure of the test session to Sealights (via delete Session API call).
If the Timeout set at the creation of the execution is not sufficient to ensure automatic closure, you can use this API to list the executions left open and close them one by one gracefully before opening new sessions.
This API provides you the ability to handle unexpected end of the execution of your tests that may not trigger the graceful closure of the test session to Sealights (via delete Session API call).
If the Timeout set at the creation of the execution is not sufficient to ensure automatic closure, you can use this API to list the executions left open and close them one by one gracefully before opening new sessions.
You must provide LabId or/and BuildSessionID (bsid) |
Parameter | Description | Is mandatory? |
---|---|---|
| Build session Id |
|
| Lab Id |
|
| Test Stage | |
| enum:
|
GET /sl-api/v1/executions?bsid={bsid}&status={status}&testStage={testStage} Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 3, "list": [ { "executionId": "executionId1", "bsId": "buildSessionId1", "labId": "labId1", "creationTime": 226978745454, "ttl": 3000, "testStage": "unit", "status": "created" } ] } } |
curl -X GET "https://$DOMAIN/sl-api/v1/executions?bsid=$bsid" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" 200 OK 500 BAD_REQUEST |
Get test runs for a specific build according to the build session ID and test stage.
/sl-api/v2/tests/builds/{bsId}/test-stages/{testStage}/runs |
Parameter | Description | Is mandatory? |
---|---|---|
bsId | Build session Id | |
testStage | Test Stage name | |
testGroupId | Id of the test group | |
offset | Result offset - used for pagination |
|
limit | Result limit - used for pagination (max limit 100,000 records) |
|
/sl-api/v2/tests/builds/{bsId}/test-stages/{testStage}/runs Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 163, "list": [ { "executionId": "eId1", "testName": "it should return ok", "results": { "passed": 0, "failed": 0, "skipped": 1, "total": 1 }, "testGroupId": "group 1" } ], "metadata": { "appName": "My app", "branchName": "Development", "buildName": "21.2", "buildSessionId": "45699dbe-b7a9-4b95-98ba-10e9173a1221", "testStage": "Acceptance Tests", "txId": "APIGW-2c8688c2-6c93-48df-9e21-c15862f4as5f", "dateTime": "Tue, 01 Aug 2023 04:53:12 GMT" }, "summary": { "total": 163, "passed": 80, "skipped": 94, "failed": 0 } } } |
curl -X GET "https://$DOMAIN/sl-api/v2/tests/builds/{bsId}/test-stages/{testStage}/runs" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters |
Get test runs for a specific build according to the app name, branch name, build name and test stage.
/sl-api/v2/tests/apps/{appName}/branches/{branchName}/builds/{buildName}/test-stages/{testStage}/runs |
Parameter | Description | Is mandatory? |
---|---|---|
appName | App Name | |
branchName | Branch Name | |
buildName | Build Name | |
testStage | Test Stage name | |
testGroupId | Id of the test group | |
offset | Result offset - used for pagination |
|
limit | Result limit - used for pagination (max limit 100,000 records) |
|
/sl-api/v2/tests/apps/{appName}/branches/{branchName}/builds/{buildName}/test-stages/{testStage}/runs Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 163, "list": [ { "executionId": "eId1", "testName": "it should return ok", "results": { "passed": 0, "failed": 0, "skipped": 1, "total": 1 }, "testGroupId": "group 1" } ], "metadata": { "appName": "My app", "branchName": "Development", "buildName": "21.2", "buildSessionId": "45699dbe-b7a9-4b95-98ba-10e9173a1221", "testStage": "Acceptance Tests", "txId": "APIGW-2c8688c2-6c93-48df-9e21-c15862f4as5f", "dateTime": "Tue, 01 Aug 2023 04:53:12 GMT" }, "summary": { "total": 163, "passed": 80, "skipped": 94, "failed": 0 } } } |
curl -X GET "https://$DOMAIN//sl-api/v2/tests/apps/{appName}/branches/{branchName}/builds/{buildName}/test-stages/{testStage}/runs" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters |
Get test runs for a specific build according to the app name, branch name, build name and test stage.
/sl-api/v2/tests/apps/{appName}/branches/{branchName}/testStages/{testStage}/runs |
Parameter | Description | Is mandatory? |
---|---|---|
appName | App Name | |
branchName | Branch Name | |
testStage | Test Stage name | |
testGroupId | Id of the test group | |
offset | Result offset - used for pagination |
|
limit | Result limit - used for pagination (max limit 100,000 records) |
|
/sl-api/v2/tests/apps/{appName}/branches/{branchName}/testStages/{testStage}/runs Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 163, "list": [ { "executionId": "eId1", "testName": "it should return ok", "results": { "passed": 0, "failed": 0, "skipped": 1, "total": 1 }, "testGroupId": "group 1" } ], "metadata": { "appName": "My app", "branchName": "Development", "buildName": "21.2", "buildSessionId": "45699dbe-b7a9-4b95-98ba-10e9173a1221", "testStage": "Acceptance Tests", "txId": "APIGW-2c8688c2-6c93-48df-9e21-c15862f4as5f", "dateTime": "Tue, 01 Aug 2023 04:53:12 GMT" }, "summary": { "total": 163, "passed": 80, "skipped": 94, "failed": 0 } } } |
curl -X GET "https://$DOMAIN///sl-api/v2/tests/apps/{appName}/branches/{branchName}/testStages/{testStage}/runs" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters |
This specific API is in beta mode. Please contact your Customer Success representative for details. |
Get a list of previous builds that the TIA can re-calculate against them
/sl-api/v1/builds/{bsId}/test-stages/{testStage}/previous |
Parameter | Description | Is mandatory? |
---|---|---|
bsId | Build Session Id | |
testStage | Test stage name | |
offset | Result offset - Used for pagination | |
limit | Result limit - Used for pagination (max limit 100,000 records) | |
branchName | Limit query to a specific branch |
/sl-api/v1/builds/{bsId}/test-stages/{testStage}/previous Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "total": 500, "next": 50, "previous": 0, "list": [ { "branchName": "dev-1", "buildName": "build-1", "bsId": "some-bsid" } ] } } |
curl -X GET "https://$DOMAIN/sl-api/v1/builds/$BSID/test-stages/$TEST_STAGE}/previous" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters |
This specific API is in beta mode. Please contact your Customer Success representative for details. |
Re-calculation of recommendations to specific build and test stage
/sl-api/v1/tia/builds/{bsId}/test-stages/{testStage}/recommendations/calculate |
Parameter | Description | Is mandatory? |
---|---|---|
bsId | Build Session Id | |
testStage | Test stage name | |
baselineBsId | Build Session ID against which to recalculate |
/sl-api/v1/tia/builds/${bsId}/test-stages/${testStage}/recommendations/calculate?baselineBsId=${baseLineBsID} Authorization: Bearer {sealights-agent-token} Content-Type: application/json HTTP/1.1 200 OK HTTP/1.1 404 NOT_FOUND HTTP/1.1 500 BAD_REQUEST |
{ "data": { "recommendationsUrl": "/sl-api/v1/tia/builds/ff1e8adf-2617-4320-a6ec-aab25b46f15a/test-stages/Unit Tests/recommendations" } } |
curl -X GET "https://$DOMAIN/sl-api/v1/tia/builds/$BSID/test-stages/$TEST_STAGE/recommendations/calculate?baselineBsId=$BASELINE_BSID" \ -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ -H "Content-Type: application/json" \ 200 OK 400 Missing parameters |
Enable/Disable TIA for a given app/branch
POST /sl-api/v1/tia/apps/{appName}/branches/{branchName}/test-stages/{testStage}/test-selection-status |
Parameter | Description | Is mandatory? |
---|---|---|
appName | App Name | |
branchName | Branch Name | |
testStage | Test Stage name |
Parameter | Description | Default value | Is mandatory? |
---|---|---|---|
| Enable/Disable TIA |
|
|
POST /sl-api/v1/tia/apps/{appName}/branches/{branchName}/test-stages/{testStage}/test-selection-status HTTP/1.1 Authorization: Bearer {sealights-agent-token} Content-Type: application/json { "testSelectionStatus": true } HTTP/1.1 200 test selection status updated HTTP/1.1 400 Bad request HTTP/1.1 500 Server error |
Linux |
| |
---|---|---|
Powershell |
|