Link a test run to a release

A successful request to this endpoint links a test run to a release. This method returns the updated test run details with the linked release.

Request

This request uses the POST method, which is used to create a link between a test run to a specific release via the specified resource.

For basic authorization, replace this with your actual username and password (or API key) in the header request in the username:password or username:api_key format. Your user creds are combined to form a Base64 encoded string.

The request data is provided as a JSON object. You need to provide the following required query parameters:

  • id: the alphanumeric ID of the test run.
  • projectId: the alphanumeric ID of the test project.
  • releaseId: the alphanumeric ID of the release you want the specific test run to be linked to.

Response

The API response provides a comprehensive overview of the test execution, including its status, associated projects, builds, jobs, and more.

See the following example:

{
  "status": "PASSED",
  "startTime": "2023-09-11T04:11:49.274Z",
  "endTime": "2023-09-11T04:11:49.274Z",
  "duration": 0,
  "elapsedDuration": 0,
  "totalTests": 0,
  "totalPassedTests": 0,
  "totalFailedTests": 0,
  "totalErrorTests": 0,
  "totalIncompleteTests": 0,
  "totalSkippedTests": 0,
  "totalDiffTests": 0,
  "totalDiffPassedTests": 0,
  "totalDiffFailedTests": 0,
  "totalDiffErrorTests": 0,
  "totalDiffIncompleteTests": 0,
  "id": 0,
  "projectId": 0,
  "project": {
    "id": 0,
    "name": "string",
    "teamId": 0,
    "status": "ARCHIVE"
  },
  "buildId": 0,
  "order": 0,
  "executionStage": "RUNNING",
  "webUrl": "string",
  "testSuiteCollections": [
    {
      "id": 0,
      "name": "string",
      "project": {
        "id": 0,
        "name": "string",
        "teamId": 0,
        "team": {
          "id": 0,
          "name": "string",
          "organization": {
            "id": 0,
            "name": "string",
            "role": "OWNER",
            "orgFeatureFlag": {
              "organizationId": 0,
              "subDomain": true,
              "strictDomain": true,
              "sso": true,
              "whitelistIp": true,
              "testOpsIntegration": true
            },
            "quotaKSE": 0,
            "machineQuotaKSE": 0,
            "quotaUnlimitedKSE": 0,
            "quotaEngine": 0,
            "machineQuotaEngine": 0,
            "quotaUnlimitedEngine": 0,
            "usedKSE": 0,
            "usedUnlimitedKSE": 0,
            "usedEngine": 0,
            "usedUnlimitedEngine": 0,
            "quotaTestOps": 0,
            "usedTestOps": 0,
            "numberUser": 0,
            "quotaFloatingEngine": 0,
            "usedFloatingEngine": 0,
            "canCreateOfflineKSE": true,
            "canCreateOfflineUnlimitedKSE": true,
            "canCreateOfflineRE": true,
            "canCreateOfflineUnlimitedEngine": true,
            "subscriptionExpiryDateEngine": "2023-09-11T04:11:49.274Z",
            "subscriptionExpiryDateUnlimitedEngine": "2023-09-11T04:11:49.274Z",
            "subscriptionExpiryDateKSE": "2023-09-11T04:11:49.274Z",
            "subscriptionExpiryDateUnlimitedKSE": "2023-09-11T04:11:49.274Z",
            "subscriptionExpiryDateFloatingEngine": "2023-09-11T04:11:49.274Z",
            "subscriptionExpiryDateTestOps": "2023-09-11T04:11:49.274Z",
            "subscribed": true,
            "ksePaygo": true,
            "krePaygo": true,
            "paygoQuota": 0,
            "domain": "string",
            "subdomainUrl": "string",
            "strictDomain": true,
            "logoUrl": "string",
            "samlSSO": true,
            "kreLicense": true,
            "mostRecentProjectAccessedAt": "2023-09-11T04:11:49.274Z",
            "testOpsFeature": "KSE",
            "platformFeature": "KSE",
            "tier": "FREE",
            "requestedUserVerified": true
          },
          "organizationId": 0
        },
        "timezone": "string",
        "status": "ARCHIVE"
      },
      "path": "string",
      "urlId": "string"
    }
  ],
  "executionTestSuiteResources": [
    {
      "status": "PASSED",
      "startTime": "2023-09-11T04:11:49.274Z",
      "endTime": "2023-09-11T04:11:49.274Z",
      "duration": 0,
      "elapsedDuration": 0,
      "totalTests": 0,
      "totalPassedTests": 0,
      "totalFailedTests": 0,
      "totalErrorTests": 0,
      "totalIncompleteTests": 0,
      "totalSkippedTests": 0,
      "id": 0,
      "execution": {
        "status": "PASSED",
        "startTime": "2023-09-11T04:11:49.274Z",
        "endTime": "2023-09-11T04:11:49.274Z",
        "duration": 0,
        "elapsedDuration": 0,
        "totalTests": 0,
        "totalPassedTests": 0,
        "totalFailedTests": 0,
        "totalErrorTests": 0,
        "totalIncompleteTests": 0,
        "totalSkippedTests": 0,
        "id": 0,
        "projectId": 0,
        "buildId": 0,
        "order": 0,
        "executionStage": "RUNNING",
        "hasComment": true,
        "sessionId": "string",
        "buildLabel": "string",
        "buildUrl": "string",
        "type": "KATALON",
        "useTestCloudTunnel": true
      },
      "testSuite": {
        "id": 0,
        "name": "string",
        "path": "string",
        "alias": "string",
        "updatedAt": "2023-09-11T04:11:49.274Z",
        "createdAt": "2023-09-11T04:11:49.274Z",
        "type": "KATALON_STUDIO",
        "urlId": "string"
      },
      "platform": {
        "id": 0,
        "osName": "string",
        "osVersion": "string",
        "browserName": "string",
        "browserVersion": "string",
        "deviceName": "string",
        "appName": "string"
      },
      "executionId": 0,
      "profiles": [
        "string"
      ],
      "urlId": "string"
    }
  ],
  "release": {
    "id": 0,
    "name": "string",
    "startTime": "2023-09-11",
    "endTime": "2023-09-11",
    "description": "string",
    "projectId": 0,
    "closed": true,
    "createdAt": "2023-09-11T04:11:49.274Z",
    "releaseStatus": "NOT_READY"
  },
  "build": {
    "id": 0,
    "projectId": 0,
    "releaseId": 0,
    "name": "string",
    "description": "string",
    "date": "2023-09-11T04:11:49.274Z"
  },
  "hasComment": true,
  "user": {
    "id": 0,
    "email": "string",
    "firstName": "string",
    "lastName": "string",
    "password": "string",
    "invitingUrl": "string",
    "trialExpirationDate": "2023-09-11T04:11:49.274Z",
    "surveyStatus": "NOT_SUBMITTED",
    "sessionTimeout": 0,
    "businessUser": true,
    "canCreateOfflineKSE": true,
    "canCreateOfflineRE": true,
    "samlSSO": true,
    "createdAt": "2023-09-11T04:11:49.274Z",
    "fullName": "string"
  },
  "sessionId": "string",
  "buildLabel": "string",
  "buildUrl": "string",
  "type": "KATALON",
  "jobs": [
    {
      "id": 0,
      "buildNumber": 0,
      "status": "QUEUED",
      "queuedAt": "2023-09-11T04:11:49.274Z",
      "startTime": "2023-09-11T04:11:49.274Z",
      "stopTime": "2023-09-11T04:11:49.274Z",
      "testProject": {
        "id": 0,
        "name": "string",
        "description": "string",
        "defaultTestProject": true,
        "uploadFileId": 0,
        "projectId": 0,
        "teamId": 0,
        "createdAt": "2023-09-11T04:11:49.274Z",
        "uploadFileName": "string",
        "type": "KS",
        "dirty": true
      },
      "agent": {
        "id": 0,
        "name": "string",
        "ip": "string",
        "uuid": "string",
        "lastPing": "2023-09-11T04:11:49.274Z",
        "os": "string",
        "teamId": 0,
        "hostname": "string",
        "active": true,
        "threshold": 0,
        "numExecutingJobs": 0,
        "numAssignedJobs": 0,
        "agentVersion": "string",
        "deleted": true
      },
      "testCloudAgent": {
        "id": 0,
        "name": "string",
        "os": "string",
        "osVersion": "string",
        "browser": "string",
        "browserVersion": "string",
        "deviceName": "string",
        "appId": "string",
        "appGroupId": "string",
        "appName": "string",
        "numExecutingJobs": 0,
        "numAssignedJobs": 0,
        "teamId": 0,
        "deleted": true,
        "apiKey": "string",
        "totalDuration": 0,
        "headless": true
      },
      "k8sAgent": {
        "id": 0,
        "name": "string",
        "certificateAuthority": "string",
        "url": "string",
        "namespace": "string",
        "username": "string",
        "password": "string",
        "token": "string",
        "cluster": "string",
        "region": "string",
        "accessKey": "string",
        "privateAccessKey": "string",
        "teamId": 0,
        "apiKey": "string",
        "authenticationType": "BASIC_AUTH"
      },
      "circleCiAgent": {
        "id": 0,
        "name": "string",
        "url": "string",
        "username": "string",
        "token": "string",
        "project": "string",
        "vcsType": "string",
        "branch": "string",
        "teamId": 0,
        "apiKey": "string"
      },
      "runConfiguration": {
        "id": 0,
        "name": "string",
        "command": "string",
        "projectId": 0,
        "teamId": 0,
        "testProjectId": 0,
        "releaseId": 0,
        "testSuiteCollectionId": 0,
        "testSuiteId": 0,
        "executionProfileId": 0,
        "baselineCollectionGroupOrder": 0,
        "timeOut": 0,
        "kobitonDeviceId": "string",
        "configType": "TSC",
        "cloudType": "K8S",
        "genericCommand": "string",
        "ksVersion": "string",
        "ksLocation": "string",
        "executionMode": "SEQUENTIAL",
        "enabledKobitonIntegration": true,
        "enabledTestCloudTunnel": true,
        "triggerMode": "TESTOPS_SCHEDULER",
        "browserType": "CHROME"
      },
      "order": 0,
      "triggerBy": "MANUAL",
      "duration": 0,
      "triggerAt": "2023-09-11T04:11:49.274Z",
      "scheduler": {
        "id": 0,
        "name": "string",
        "startTime": "2023-09-11T04:11:49.274Z",
        "nextTime": "2023-09-11T04:11:49.274Z",
        "endTime": "2023-09-11T04:11:49.274Z",
        "active": true,
        "interval": 0,
        "intervalUnit": "MINUTE",
        "runConfigurationId": 0,
        "exceededLimitTime": true
      },
      "processId": 0,
      "nodeStatus": "PENDING_CANCELED",
      "runConfigurationId": 0
    }
  ],
  "useTestCloudTunnel": true,
  "kEyesExecution": {
    "id": 0,
    "status": "RUNNING",
    "execution": {
      "status": "PASSED",
      "startTime": "2023-09-11T04:11:49.274Z",
      "endTime": "2023-09-11T04:11:49.274Z",
      "duration": 0,
      "elapsedDuration": 0,
      "totalTests": 0,
      "totalPassedTests": 0,
      "totalFailedTests": 0,
      "totalErrorTests": 0,
      "totalIncompleteTests": 0,
      "totalSkippedTests": 0,
      "id": 0,
      "projectId": 0,
      "buildId": 0,
      "order": 0,
      "executionStage": "RUNNING",
      "hasComment": true,
      "sessionId": "string",
      "buildLabel": "string",
      "buildUrl": "string",
      "type": "KATALON",
      "useTestCloudTunnel": true
    },
    "totalCheckpoints": 0,
    "passedCheckpoints": 0,
    "failedCheckpoints": 0,
    "unresolvedCheckpoints": 0,
    "unsaved": true
  }
}

Refer to the following table about the response body parameters:

PropertyTypeDescription
statusstringStatus of the test run: PASSED, FAILED ERROR, INCOMPLETE, RUNNING, SKIPPED NOT_RUN.
startTimedatetimeThe date and time when the test run starts.
endTimedatetimeThe date and time when the test run ends.
durationintegerThe sum of execution time of all test cases in the test run (in seconds).
elapsedDurationintegerThe duration between startTime and endTime (in seconds). elapsedDuration might be shorter than duration if the cases are executed concurrently.
totalTestsintegerThe total number of test results in the test run.
totalPassedTestsintegerThe total number of test results with the PASSED status.
totalFailedTestsintegerThe total number of test results with the FAILED status.
totalErrorTestsintegerThe total number of test results with the ERROR status.
totalInCompleteTestsintegerThe total number of test results with the INCOMPLETE status.
totalSkippedTests integerThe total number of test results with the SKIPPED status.
totalDiffTests , totalDiffPassedTests , totalDiffFailedTests , totalDiffErrorTests , and totalDiffIncompleteTests integerRelated to comparing test results with a baseline (usually a previous run).
idintegerThe unique identifier of the test run.
projectIdintegerThe ID of the project that contains the test run.
projectProject objectThe project object associated with the test run.
buildIdintegerThe ID of the build associated with the test execution.
orderintegerThe order of the test run.
executionStagestringThe stage of the test run: RUNNING, COMPLETED,
TERMINATE,
ANALYZING,
ANALYZED,
IMPORTING,
ERROR.
webUrlstringThe URL of of test run detail page.
testSuiteCollectionsarray of GetTestSuiteCollectionEntity objectsThe test suite collections associated with the test run.
executionTestSuiteResourcesarray of GetExecutionTestSuite objectsThe test suites that are executed in this test run.
releaseBasicReleaseResource objectThe release that is associated with the test run.
buildBasicBuildResource objectThe build associated with the test run.
hasCommentbooleantrue if the test run has comments.
userBasicUserResource objectThe user that creates the test run.
sessionIdstringThe UUID generated for the test run. TestOps does not use this UUID to identify the test run.
buildLabelstringThe build label specified in the execution command to associate the test run with a specific build.

See: TestOps integration arguments.
buildUrlstringThe build URL specified in the execution command to associate the test run with a specific build.

See: TestOps integration arguments.
typestringThere are two test run types: KATALON and BDD.
jobsarray of BasicJobResource objectsThe scheduled jobs that execute test cases in the test run.
useTestCloudTunnelbooleantrue if the test run is executed with TestCloud Tunnel.
kEyesExecutionGetKEyesExecution objectThis object represents the Visual Testing execution results.

Try it!

  1. Enter the test run, project, and release IDs below.
  2. Select the language in Language.
  3. Enter your user name or API credentials.
  4. Review your API call and click Try it!
Language
Authorization
Basic
base64
:
Click Try It! to start a request and see the response here!