API changes from v8.6.1 to v8.6.2

With the new and upcoming releases of QMetry, we continue to add exciting and useful new features that improve usability. With the new features and improvements being added to QMetry also necessitates changes in the APIs. This page enlists such APIs that will be changed from version 8.6.1 to 8.6.2 that is scheduled for release on 4th July for Cloud. The purpose of this document is to help Integration Teams keep their code updated and current with the API changes/updates to the existing APIs. In case you do not use any of these APIs, these changes can be safely ignored.


Summarized API changes

API NameREST URLMethodBackward compatibility with 8.6.1Request Change

Response Change

List all builds/rest/admin/drop/listPOSTYesNoYes
Create build/rest/admin/dropsPOSTYesYesNo
Get Test Suite Run IDs/rest/execution/list/platformHomePOSTYesNoYes
Reset execution statuses on build updates/rest/execution/resetstatusPOSTYesYesYes
Get List of Fields/rest/admin/managefield/listPOSTYesYesYes
List Test Case Executions/rest/testcases/executionPOSTYesNoYes
Fetch Testcase Run ID/rest/execution/list/viewColumnsPOSTYesNoYes
Get List of Users/rest/admin/user/listPOSTYesNoYes
Bulk Update Run Status/rest/execution/runstatus/bulkupdatePUTYesNoYes
Create Project/rest/admin/projectPOSTYesYesNo
Get List of Execution Statuses/rest/admin/execution/listPOSTYesYesNo

Updated APIs

List all builds

API/rest/admin/drop/list
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for changeWith the latest release of QMetry, a default combination of Release and Cycle can be set for each newly created Build or can be set as default by editing the existing ones. The API endpoint is updated To accommodate these additional details in the response.
Changes

Added details of 'Defaultcycle', 'defaultReleaseName', 'DefaultReleaseCycle', 'isBuildSelectionMandatory' to the response.

When there is a default build set for a Release Cycle combination - only then you will see the 3 new parameters 'Defaultcycle', 'defaultReleaseName', 'DefaultReleaseCycle'

Version 8.6.1Version 8.6.2
Response Body
{
	"data": [{
		"dropID": 913,
		"name": "8.6.2.1",
		"createdDate": "2020-06-11T08:25:16",
		"Associatcycle": 1,
		"isArchieved": false,
		"assocReleaseName": "Default Release",
		"countOfReleases": 1
	}],
	"total": 1
}

When a default build is set for a Release Cycle combination

Response Body
{
	"data": [ {
            "dropID": 913,
            "name": "8.6.2.1",
            "createdDate": "2020-06-11T08:25:16",
            "Associatcycle": 1,
            "isArchieved": false,
            "assocReleaseName": "Default Release",
            "Defaultcycle": "Default Cycle",
            "defaultReleaseName": "Default Release",
            "countOfReleases": 1,
            "DefaultReleaseCycle": "Default Release:Default Cycle"
        }],
	"total": 1,
	"isBuildSelectionMandatory": false
}
Response Body
{
	"data": [{
		"dropID": 913,
		"name": "8.6.2.1",
		"createdDate": "2020-06-11T08:25:16",
		"Associatcycle": 1,
		"isArchieved": false,
		"assocReleaseName": "Default Release",
		"countOfReleases": 1
	}],
	"total": 1
}

When no default build is set for a Release Cycle.

Response Body
{
	"data": [
        {
            "dropID": 914,
            "name": "8.6.2.2",
            "createdDate": "2020-06-11T08:34:32",
            "Associatcycle": 1,
            "isArchieved": false,
            "assocReleaseName": "Default Release",
            "countOfReleases": 1
        }],
	"total": 1,
	"isBuildSelectionMandatory": false
}

Create build

API/rest/admin/drops
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for changeUser can now make use of the 'default' option in the request body to make a specific Release and Cycle pair as default while creating Builds.
ChangesAdded 'default' flag to the request body.
Version 8.6.1Version 8.6.2
Request Body
{
	"dropID": "0",
	"name": "Advanced",
	"chkDrop": false,
	"grdRelCyc": [{
		"name": "Default Cycle",
		"scope": "cycle",
		"default": "NO",
		"cyclID": 13224,
		"relID": 7008
	}]
}
Request Body
{
	"dropID": "0",
	"name": "1.4",
	"chkDrop": false,
	"grdRelCyc": [{
		"name": "8.6.2.1",
		"scope": "cycle",
		"default": "YES",
		"cyclID": 17528,
		"relID": 3655
	}]
}

Get Test Suite Run IDs

API/rest/execution/list/platformHome
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for changeUsers will be able to make sure if the Build selection is made mandatory or not for a particular project.
ChangesAdded the following flags in the response:
  • isBuildSelectionMandatory
  • showDefaultBuild
Version 8.6.1Version 8.6.2
Response Body
{
	"data": [{
		"isAutomatedFlag": false,
		"PlatformId": 5580,
		"Platform": "Firefox",
		"TestSuiteName": "Amazon Session - Exploratory Testing",
		"tsRunID": 105826,
		"tsID": 24226,
		"isTestRun": false,
		"startTime": "05-27-2020 17:36:19",
		"isPlatformArchived": false,
		"isTestSuiteArchived": false,
		"cycleName": "8.6.2.1",
		"releaseName": "Release v8.6.2",
		"cycleID": 17528,
		"releaseID": 3655,
		"entityKey": "862-TS-6",
		"TestSuitePath": "/Fit Tracker",
		"totalTCWithExecutionTime": 3,
		"totalExecutionTime": 40,
		"RemainingTime": 11,
		"Total": 3,
		"isCycleArchived": false,
		"isReleaseArchived": false,
		"state": 1,
		"status_17041": 0,
		"status_17045": 0,
		"status_17042": 1,
		"status_17040": 1,
		"status_17046": 1,
		"status_17152": 0,
		"status_17043": 0,
		"Status": "Failed",
		"statusID": 17042,
		"Defects": 0,
		"createdDate": "02-06-2020 14:13:29",
		"createdByAlias": "jatin",
		"attributeValues": ""
	}],
	"total": 1
}
Response Body
{
	"data": [{
		"isAutomatedFlag": false,
		"PlatformId": 5580,
		"Platform": "Firefox",
		"TestSuiteName": "Amazon Session - Exploratory Testing",
		"tsRunID": 105826,
		"tsID": 24226,
		"isTestRun": false,
		"startTime": "05-27-2020 17:36:19",
		"isPlatformArchived": false,
		"isTestSuiteArchived": false,
		"cycleName": "8.6.2.1",
		"releaseName": "Release v8.6.2",
		"cycleID": 17528,
		"releaseID": 3655,
		"entityKey": "862-TS-6",
		"TestSuitePath": "/Fit Tracker",
		"totalTCWithExecutionTime": 3,
		"totalExecutionTime": 40,
		"RemainingTime": 11,
		"Total": 3,
		"isCycleArchived": false,
		"isReleaseArchived": false,
		"state": 1,
		"status_17041": 0,
		"status_17045": 0,
		"status_17042": 1,
		"status_17040": 1,
		"status_17046": 1,
		"status_17152": 0,
		"status_17043": 0,
		"Status": "Failed",
		"statusID": 17042,
		"Defects": 0,
		"createdDate": "02-06-2020 14:13:29",
		"createdByAlias": "jatin",
	}],
	"total": 1,
	"isBuildSelectionMandatory": false,
	"showDefaultBuild": true
}

Reset execution statuses on build updates

API/rest/execution/resetstatus
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change8.6.2 has a new feature that allows setting build for individual test cases in the test suite execution.
ChangesBy passing the "tcrIDs" i.e test case run IDs, the build can be set for individual test cases in the test suite.


Version 8.6.1Version 8.6.2
Request Body
{
	"qmTsRunId": "106860",
	"dropID": 912,
	"isBulkStausSetNotNotRun": true
}
Request Body
{
	"qmTsRunId": "106860",
	"dropID": 912,
	"isBulkStausSetNotNotRun": true,
	"tcrIDs": "6597857,6597858"
}
Response Body
{
	"success": true,
	"code": "TS.EXECUTION_STATUS_RESET_AND_BUILD_SET_SUCCESS",
	"message": "Execution status reset successfully and build is set successfully.",
	"data": [{
		"qmTsRunId": "106860",
		"dropID": 912,
		"isBulkStausSetNotNotRun": true,
		"COUNT": 2,
		"Status": "12664"
	}]
}
Response Body
{
    "success": true,
    "code": "TS.EXECUTION_STATUS_RESET_AND_BUILD_SET_SUCCESS",
    "message": "Execution status reset successfully and build is set successfully.",
    "data": [
        {
            "qmTsRunId": "106860",
            "dropID": 912,
            "isBulkStausSetNotNotRun": true,
            "tcrIDs": "6597857,6597858",
            "COUNT": 2,
            "Status": "12664",
            "isBuildSelectionMandatory": true
        }
    ]
}

Get List of Fields

API

/rest/admin/managefield/list

MethodPOST
Impact of ChangeLow
Backward CompatibilityYes
Reason for changeUsers will now be able to see if the respective fields are mandatory or not in which module.
ChangesAdded the flag 'mandatoryFieldModules' in the response.


Version 8.6.1Version 8.6.2
Request Body
{
	"start": 0,
	"limit": 100,
	"page": 1,
	"entityTypeID": 0,
	"projectID": 0,
	"isSystemFieldRequired": false
}
Request Body
{
	"start": 0,
	"limit": 10,
	"page": 1,
	"projectID": 1697,
	"isSystemFieldRequired": false,
	"filter": "[{\"type\":\"string\",\"value\":\"1697\",\"field\":\"projects\"}]"
}
Response Body
{
	"data": [{
		"mandatory": false,
		"userFieldID": 18,
		"isIssue": false,
		"eprjud": "1:18,11:22,6:15",
		"modules": "ISSUE,REQUIREMENT,TESTSUITE",
		"projectID": 212,
		"defaultValueID": 0,
		"listMasterID": 0,
		"mapped": false,
		"label": "str3_udf",
		"name": "str3_udf",
		"fieldLength": 12,
		"fieldType": "STRING",
		"fieldTypeID": 6,
		"inUse": "Yes",
		"fieldMasterID": 3,
		"isSystem": false,
		"isShare": false,
		"projectCount": "1"
	}],
	"total": 1
}
Response Body
{
	"data": [{
		"mandatory": false,
		"userFieldID": 18,
		"isIssue": false,
		"eprjud": "1:18,11:22,6:15",
		"modules": "ISSUE,REQUIREMENT,TESTSUITE",
		"projectID": 212,
		"defaultValueID": 0,
		"listMasterID": 0,
		"mapped": false,
		"label": "str3_udf",
		"name": "str3_udf",
		"fieldLength": 12,
		"fieldType": "STRING",
		"fieldTypeID": 6,
		"inUse": "Yes",
		"fieldMasterID": 3,
		"isSystem": false,
		"isShare": false,
		"projectCount": "1",
		"mandatoryFieldModules": {
			"IS": 0,
			"RQ": 0,
			"TS": 1
		}
	}],
	"total": 1
}

List Test Case Executions

API/rest/testcases/execution
MethodPOST
Impact of ChangeLow
Backward CompatibilityYes
Reason for changeAdditional details of the Build associated with the Release Cycle pair to which the Test Case is associated with is also provided in the response now.
ChangesAdded "defaultDropID""defaultDropName" and "lastExecDropId" parameters in the response.
Version 8.6.1Version 8.6.2
Response Body
{
	"data": [{
		"testLogs": 0,
		"testSuiteName": "Epic Test Suite Execution",
		"description": "Epic Test Suite Execution",
		"tsEntityKey": "862-TS-5",
		"isApprovalWorkflowEnabled": false,
		"startTime": "05-23-2020 03:38:14",
		"exeTime": "05-23-2020 03:38:14",
		"testCaseStatus": "iVBORw0KGgoAAADX...",
		"platform": "Safari",
		"isArchived": false,
		"displayName": "Passed",
		"statusName": "passed",
		"executedBy": "jatin",
		"testSuiteStatus": "iVBORw0KGgoAAADX...",
		"tcRunID": 6087290,
		"lastExecDrop": "None",
		"executedVersion": 3,
		"tsID": 196336,
		"attributes": "",
		"cycleName": "8.6.2.1",
		"isCycleArchived": false,
		"releaseName": "Release v8.6.2",
		"isReleaseArchived": false,
		"scope": "1490:3655:17528",
		"executionStatusIconImage": "#14892C|#FFFFFF",
		"tsrunID": 104443,
		"statusID": 10924,
		"state": 1,
		"projectID": 1490,
		"isPlatformArchived": false,
		"isTestSuiteArchived": false,
		"totalExecutionTime": 10,
		"RemainingTime": 60,
		"cycleID": 17528,
		"releaseID": 3655,
		"projectName": "Fit Tracker"
	}],
	"total": 1
}
Response Body
{
	"data": [{
		"testLogs": 0,
		"testSuiteName": "Test Suite from Exploratory Session",
		"description": "This test suite is created from Exploratory Session",
		"tsEntityKey": "862-TS-5",
		"isApprovalWorkflowEnabled": false,
		"startTime": "05-23-2020 03:38:14",
		"exeTime": "05-23-2020 03:38:14",
		"testCaseStatus": "iVBORw0KGgoAAADX...",
		"platform": "Safari",
		"isArchived": false,
		"displayName": "Passed",
		"statusName": "passed",
		"executedBy": "jatin",
		"testSuiteStatus": "iVBORw0KGgoAAADX...",
		"tcRunID": 6087290,
		"lastExecDropId": 717,
		"lastExecDrop": "Basic",
		"executedVersion": 1,
		"tsID": 23606,
		"cycleName": "8.6.2.1",
		"isCycleArchived": false,
		"releaseName": "Release v8.6.2",
		"isReleaseArchived": false,
		"scope": "1490:3655:17528",
		"executionStatusIconImage": "#14892C|#FFFFFF",
		"tsrunID": 104443,
		"statusID": 10924,
		"state": 1,
		"projectID": 1490,
		"isPlatformArchived": false,
		"isTestSuiteArchived": false,
		"totalExecutionTime": 10,
		"cycleID": 17528,
		"releaseID": 3655,
		"projectName": "Fit Tracker",
		"defaultDropID": 717,
		"defaultDropName": "Basic"
	}],
	"total": 1
}

Fetch Testcase Run ID

API/rest/execution/list/viewColumns
MethodPOST
Impact of ChangeLow
Backward CompatibilityYes
Reason for change

Test Run : Display test case Build name in column grid

Changes

Added "buildName" parameter in the response

Version 8.6.1Version 8.6.2
Response Body
{
	"data": [{
		"tsRunID": 105826,
		"tcRunID": 6535337,
		"tcID": 1087748,
		"tcVersionID": 1099732,
		"testerID": 216,
		"projectID": 1490,
		"runStatus": "Passed",
		"testerAlias": "jatin",
		"attachmentCount": 0,
		"entityKey": "862-TC-49",
		"tcFolderId": 11996,
		"tctsorderId": 1,
		"runStatusID": 10924,
		"isVersionArchived": false,
		"associatedVersion": 1,
		"summary": "Set device to Brazilian Jiu Jitsu mode",
		"linkedDfCount": 0,
		"executedVersion": 1,
		"stepCount": 8,
		"linkedStepDfCount": 0,
		"isTcArchived": false,
		"hasRows": 0,
		"latestVersion": 2,
		"tctsID": 1280114,
		"isChild": false
	}],
	"total": 1,
	"noOfUnarchivedRecord": 10,
	"viewId": 6847,
	"udfFilter": "[]",
	"showTcWithDefects": false
}
Response Body
{
	"data": [{
		"tsRunID": 105826,
		"tcRunID": 6535337,
		"tcID": 1087748,
		"tcVersionID": 1099732,
		"projectID": 1490,
		"runStatus": "Passed",
		"attachmentCount": 0,
		"executedAt": "06-10-2020 05:36:32",
		"entityKey": "862-TC-49",
		"tcFolderId": 11996,
		"tctsorderId": 1,
		"runStatusID": 10924,
		"isVersionArchived": false,
		"associatedVersion": 1,
		"summary": "Set device to Brazilian Jiu Jitsu mode",
		"linkedDfCount": 0,
		"executedVersion": 1,
		"stepCount": 8,
		"linkedStepDfCount": 0,
		"isTcArchived": false,
		"hasRows": 0,
		"executedBy": "afjal",
		"latestVersion": 1,
		"tctsID": 1280114,
		"isChild": false,
		"buildName": "Build 1.3"
	}],
	"total": 1,
	"noOfUnarchivedRecord": 10,
	"viewId": 6847,
	"udfFilter": "[]",
	"showTcWithDefects": false
}

Get List of Users

API/rest/admin/user/list
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for changeWith the latest release of QMetry, the user's last login date/time and Number of projects assigned details can be fetched. The API endpoint is updated To accommodate these additional details in the response. Optimized performance and removed unnecessary attributes from the response which are no longer in use.
ChangesAdded 'lastLoginTime' and 'projectsAssigned' parameters to the response.
Version 8.6.1Version 8.6.2
Response Body
{
	"data": [{
		"userID": 2046,
		"loginId": "Brad",
		"userAlias": "Brad",
		"firstName": "Brad",
		"lastName": "Garden",
		"email": "brad.garden@qmetry.com",
		"isActive": true,
		"authType": "QMETRY",
		"userType": 1,
		"isSysAdmin": false,
		"isDeleted": false
	}],
	"total": 1
}
Response Body
{
	"data": [{
		"userID": 2046,
		"loginId": "Brad",
		"userAlias": "Brad",
		"firstName": "Brad",
		"lastName": "Garden",
		"email": "brad.garden@qmetry.com",
		"isActive": true,
		"authType": "QMETRY",
		"userType": 1,
		"isSysAdmin": false,
		"lastLoginTime": "06-08-2020 07:51:28",
		"projectsAssigned": 12,
		"isDeleted": false
	}],
	"total": 1
}

Bulk Update Run Status

API/rest/execution/runstatus/bulkupdate
MethodPUT
Impact of changeLow
Backward CompatibilityYes
Reason for changeWith the latest release of QMetry, added the build reflection details on update Test Case step execution status. The API endpoint is updated To accommodate these additional details in the response. 
ChangesAdded 'lastExecDropAlias' parameter that displays the build details in the response.
Version 8.6.1Version 8.6.2
Response Body
{
	"success": true,
	"code": "CO.UPDATE_RUNSTATUS_SUCCESS",
	"message": "Test Case(s) status was updated.",
	"data": [{
		"entityIDs": "6535337",
		"entityType": "TCR",
		"qmTsRunId": "105826",
		"runStatusID": 10924,
		"dropID": 909,
		"qmRunObj": "",
		"lastExecuted": "10-06-2020 16:23:52",
		"tcrStatus": "10924",
		"tcrStatusAlias": "Passed",
		"executedBy": "Brad"
	}]
}

For a Test Case :

Response Body
{
	"success": true,
	"code": "CO.UPDATE_RUNSTATUS_SUCCESS",
	"message": "Test Case(s) status was updated.",
	"data": [{
		"entityIDs": "6535337",
		"entityType": "TCR",
		"qmTsRunId": "105826",
		"runStatusID": 10924,
		"dropID": 909,
		"qmRunObj": "",
		"lastExecuted": "06-10-2020 06:52:18",
		"tcrStatus": "10924",
		"tcrStatusAlias": "Passed",
		"lastExecDropAlias": "8.6.2.2",
		"executedBy": "Brad"
	}]
}
Response Body
{
	"success": true,
	"code": "CO.UPDATE_RUNSTATUS_SUCCESS",
	"message": "Test Case(s) status was updated.",
	"data": [{
		"entityIDs": "9022691",
		"entityType": "TCSR",
		"qmTsRunId": "106860",
		"runStatusID": 12668,
		"type": "TCSR",
		"dropID": 914,
		"qmRunObj": "",
		"lastExecuted": "06-11-2020 17:11:10",
		"tcrStatus": "12668",
		"tcrStatusAlias": "Failed",
		"executedBy": "Brad"
	}]
}

For a test-case step :

Response Body
{
	"success": true,
	"code": "CO.UPDATE_RUNSTATUS_SUCCESS",
	"message": "Test Case(s) status was updated.",
	"data": [{
		"entityIDs": "9022691",
		"entityType": "TCSR",
		"qmTsRunId": "106860",
		"runStatusID": 12668,
		"type": "TCSR",
		"qmRunObj": "",
		"dropID": 914,
		"tcrStatus": "12668",
		"tcrStatusAlias": "Failed",
		"executedBy": "Brad",
		"lastExecuted": "06-11-2020 17:11:10",
		"lastExecDropAlias": "8.6.2.2"
	}]
}

Create Project

API/rest/admin/project
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for changeWith the latest release of QMetry, it is possible to make build selection mandatory for execution. This flag is added while creating a new project.
ChangesAdded 'isBuildSelectionMandatory' flag (whose value would be true/false) in request parameter of Project submit API. Setting it to True makes build selection mandatory in the project.
Version 8.6.1Version 8.6.2
Request Body
{
	"project": {
		"isAutoAddValue": true,
		"approvalWorkflow": true,
		"name": "FitTracker",
		"projectKey": "FTR",
		"description": "FitTracker",
		"isRichText": true,
		"addLdapUser": true
	},
	"release": {
		"name": "Default Release",
		"description": ""
	},
	"cycle": {
		"name": "Default Cycle",
		"isLocked": false,
		"isArchived": false
	}
}
Request Body
{
	"project": {
		"isAutoAddValue": true,
		"approvalWorkflow": false,
		"name": "FitTracker",
		"projectKey": "FTR",
		"isRichText": true,
		"isBuildSelectionMandatory": true
	},
	"release": {
		"name": "Default Release",
		"description": ""
	},
	"cycle": {
		"name": "Default Cycle",
		"isLocked": false,
		"isArchived": false
	},
	"addLdapUser": false
}

Get List of Execution Statuses

API/rest/admin/execution/list
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for changeProject ID introduced in the API, to see project-specific execution statuses in the API response
ChangesAdded 'projectIDs' filter for execution status.
Version 8.6.1Version 8.6.2
Request Body
{
	"start": 0,
	"limit": 100,
	"page": 1,
	"roleID": 1,
	"sort": "[{\"property\":\"weightage\",\"direction\":\"DESC\"}]"
}
Request Body
{
	"start": 0,
	"limit": 100,
	"page": 1,
	"roleID": 1,
	"sort": "[{\"property\":\"weightage\",\"direction\":\"DESC\"}]",
	"projectIDs": [247]
}