Document toolboxDocument toolbox

REST API

This documentation explains the list of publicly available REST API in synapseRT to perform the products own actions via programmatically.

Test Plan Resource

 Add Test Cases to Test Plan

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/addMembers

REQUEST

{
	"testCaseKeys":["FRS-1","FRS-2","FRS-3"]
}

 RESPONSE

 STATUS 200 Returned if the Test Cases are successfully added to the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Test Assignment from Test Plan level

PUT /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/assignTesterToTestCase

To get "memberId", please execute "GET /rest/synapse/latest/public/testPlan/{testplanIssueKey}/members" and then pickup "id" value from its response. 

REQUEST

{
	"memberId":1215,"userName":"cma"
}

 RESPONSE

{
  "data": "Cheney Ma"
}

 STATUS 200 Returned if the Test Cases are successfully assigned to specified Tester

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add Test Cycle to Test Plan

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/addCycle

Note:

  1. The date format supported is: yyyy-mm-dd
  2. To create a 'Advanced Test Cycle', please add following parameter in REQUEST"testCycleType": "Advanced"
  3. Parameter "preloadRuns":"no" means adding a Test Cycle without loading Test Cases from Test Plan issue; while "preloadRuns":"yes" is just doing opposite. 

REQUEST

{
  "name":"REST API Cycle 1",
  "environment":"Firefox",
  "build":"build 1.0"
  "plannedStartDate":"2017-04-13",
  "plannedEndDate":"2017-04-15"
  "preloadRuns":"no"
}

RESPONSE

 STATUS 200 Returned if the Test Cycle is successfully added to the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Cycles in a Test Plan

GET /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycles

EXAMPLE

[
  {
    "id": 151,
    "name": "Round 1 with Chrome",
    "environment": "Chrome",
    "status": "Active",
    "deleteable": false,
    "aborted": false,
    "active": true,
    "build": "8.4",
    "draft": false,
    "plannedStartDate": "2016-11-03",
    "plannedEndDate": "2016-11-03",
    "cycleStartedDate": "2016-11-03T15:55:48.883+0800"
  },
  {
    "id": 152,
    "name": "Round 2 with Firefox",
    "environment": "Firefox 47",
    "status": "Active",
    "deleteable": false,
    "aborted": false,
    "active": true,
    "build": "8.4",
    "draft": false,
    "plannedStartDate": "2016-11-04",
    "plannedEndDate": "2016-11-04",
    "cycleStartedDate": "2016-11-03T16:10:38.695+0800"
  }
]

 RESPONSE

 STATUS 200 Returned if the Test Cycles are successfully retrieved

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Test Cycle from Test Plan

DELETE /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/deleteCycleByIdOrName 

REQUEST

By: Test Cycle Name

{
  "name":"REST API Cycle 1"
}

By: Test Cycle Id

{
  "id":"188"
}

RESPONSE

 STATUS 200 Returned if the Test Cycle is successfully deleted from the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Cases in a Test Plan

GET /rest/synapse/latest/public/testPlan/{testplanIssueKey}/members

EXAMPLE

[
  {
    "id": 1215,
    "testCaseSummary": "Valid the bank name",
    "tcId": 15713,
    "tpId": 15802,
    "testCaseKey": "FRS-14",
    "testPlanKey": "FRS-31"
  },
  {
    "id": 1216,
    "testCaseSummary": "Return error if name is not correct",
    "tcId": 15714,
    "tpId": 15802,
    "testCaseKey": "FRS-15",
    "testPlanKey": "FRS-31"
  }
]

 RESPONSE

 STATUS 200 Returned if the Test Cases are successfully retrieved from the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Run Details in a Test Plan

GET /rest/synapse/latest/public/testPlan/{testplanIssueKey}/testPlanInformation

EXAMPLE

{
    "testCycles": [
        {
            "testCycleId": 151,
            "testCycleName": "Round 1 with Chrome",
            "notifyTester": false
        },
        {
            "testCycleId": 152,
            "testCycleName": "Round 2 with Firefox",
            "notifyTester": false
        }
    ],
    "cycleWithRuns": {
        "Round 1 with Chrome": [
            {
                "executedBy": "cma",
                "testRunSteps": [
                    {
                        "id": 15203,
                        "status": "Passed",
                        "step": "<p>Login 'FRS' system valid u/p.</p>",
                        "actualResult": "",
                        "stepData": "",
                        "stepRaw": "Login 'FRS' system valid u/p.",
                        "expectedResultRaw": "User logged in successfully.",
                        "expectedResult": "<p>User logged in successfully.</p>"
                    },
                    {
                        "id": 15204,
                        "status": "Passed",
                        "step": "<p>Choose any ticket and click on 'Purchase' button.</p>",
                        "actualResult": "",
                        "stepData": "",
                        "stepRaw": "Choose any ticket and click on 'Purchase' button.",
                        "expectedResultRaw": "It redirects to 'Purchase' page.",
                        "expectedResult": "<p>It redirects to 'Purchase' page.</p>"
                    },
                    {
                        "id": 15205,
                        "status": "Passed",
                        "step": "<p>Specify a valid bank from which the card was issued in 'Bank Name' textbox.</p>",
                        "actualResult": "",
                        "stepData": "",
                        "stepRaw": "Specify a valid bank from which the card was issued in 'Bank Name' textbox.",
                        "expectedResultRaw": "",
                        "expectedResult": ""
                    },
                    {
                        "id": 15206,
                        "status": "Passed",
                        "step": "<p>Click 'Validation' button.</p>",
                        "actualResult": "",
                        "stepData": "",
                        "stepRaw": "Click 'Validation' button.",
                        "expectedResultRaw": "A confirmation message 'Bank Validation Passed' pops up.",
                        "expectedResult": "<p>A confirmation message 'Bank Validation Passed' pops up.</p>"
                    },
                    {
                        "id": 15207,
                        "status": "Passed",
                        "step": "<p>Specify an invalid bank in 'Bank Name' textbox.</p>",
                        "actualResult": "",
                        "stepData": "",
                        "stepRaw": "Specify an invalid bank in 'Bank Name' textbox.",
                        "expectedResultRaw": "",
                        "expectedResult": ""
                    },
                    {
                        "id": 15208,
                        "status": "Passed",
                        "step": "<p>Click 'Validation' button.</p>",
                        "actualResult": "",
                        "stepData": "",
                        "stepRaw": "Click 'Validation' button.",
                        "expectedResultRaw": "An error message 'Bank Name is not valid!' pops up.",
                        "expectedResult": "<p>An error message 'Bank Name is not valid!' pops up.</p>"
                    }
                ],
                "testRunHistory": [
                    {
                        "executorName": "cma",
                        "activity": "Passed",
                        "activityType": "Status",
                        "testRunId": 3148,
                        "executionTime": 1478161145190
                    }
                ],
                "id": 3148,
                "type": 0,
                "comment": "",
                "status": "Passed",
                "commentWiki": "",
                "lozenge": "aui-lozenge aui-lozenge-success",
                "testCaseKey": "FRS-14",
                "summary": "Valid the bank name",
                "testerName": "cma",
                "executedByFromRun": "cma",
                "executionTimeStamp": "2016-11-03T16:19:05.190+0800",
                "executedByDisplayName": "Cheney Ma",
                "testCaseId": 15713,
                "changeInfo": "null|null",
                "executionOn": 1478161145190
            }
		]
	}
}

 RESPONSE

 STATUS 200 Returned if the Test Run details are successfully retrieved from the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Run List from a Test Plan for Given Period

GET /rest/synapse/latest/public/testRun/getTestRunsCreated?testPlanIdOrKey=FRS-43&cutOffDateAndTime=2022-06-20 14:17:45

EXAMPLE

[
    {
        "runStatus": {
            "immutable": false,
            "description": "Test is not executed yet",
            "name": "Not Tested",
            "color": "#747474",
            "enabled": true,
            "id": 4,
            "default": true
        },
        "testRunHistory": [
            {
                "executionOn": "20-Jun-2022 14:48:13",
                "activityType": "Test Run",
                "executorId": 10001,
                "activity": "New Created",
                "testRunId": 3300,
                "executorFullName": "Cheney Ma",
                "executorName": "cma"
            }
        ],
        "summary": "Test Case 2",
        "testCaseId": 16401,
        "cycleReadOnly": false,
        "lozenge": "aui-lozenge ",
        "id": 3300,
        "comment": "",
        "executedByDisplayName": "",
        "resultColor": "#747474",
        "adhocRunDeletable": true,
        "testCaseKey": "FRS-40",
        "status": "Not Tested",
        "type": 0
    },
    {
        "runStatus": {
            "immutable": false,
            "description": "Test is not executed yet",
            "name": "Not Tested",
            "color": "#747474",
            "enabled": true,
            "id": 4,
            "default": true
        },
        "testRunSteps": [
            {
                "stepRaw": "It is the first step",
                "expectedResultRaw": "Expected result for step 1",
                "stepDataRaw": "",
                "runStatus": {
                    "color": "#747474",
                    "enabled": true,
                    "description": "Test is not executed yet",
                    "name": "Not Tested",
                    "id": 4,
                    "default": true
                },
                "actualResult": "",
                "step": "<p>It is the first step</p>",
                "expectedResult": "<p>Expected result for step 1</p>",
                "stepData": "",
                "localizedStatus": "Not Tested",
                "id": 15656,
                "actualResultRaw": "",
                "status": "Not Tested"
            },
            {
                "stepRaw": "It is the second step",
                "expectedResultRaw": "",
                "stepDataRaw": "",
                "runStatus": {
                    "color": "#747474",
                    "enabled": true,
                    "description": "Test is not executed yet",
                    "name": "Not Tested",
                    "id": 4,
                    "default": true
                },
                "actualResult": "",
                "step": "<p>It is the second step</p>",
                "expectedResult": "",
                "stepData": "",
                "localizedStatus": "Not Tested",
                "id": 15657,
                "actualResultRaw": "",
                "status": "Not Tested"
            },
            {
                "stepRaw": "It is the third step",
                "expectedResultRaw": "Expected result for step 3",
                "stepDataRaw": "",
                "runStatus": {
                    "color": "#747474",
                    "enabled": true,
                    "description": "Test is not executed yet",
                    "name": "Not Tested",
                    "id": 4,
                    "default": true
                },
                "actualResult": "",
                "step": "<p>It is the third step</p>",
                "expectedResult": "<p>Expected result for step 3</p>",
                "stepData": "",
                "localizedStatus": "Not Tested",
                "id": 15658,
                "actualResultRaw": "",
                "status": "Not Tested"
            },
            {
                "stepRaw": "It is new step.",
                "expectedResultRaw": "",
                "stepDataRaw": "",
                "runStatus": {
                    "color": "#747474",
                    "enabled": true,
                    "description": "Test is not executed yet",
                    "name": "Not Tested",
                    "id": 4,
                    "default": true
                },
                "actualResult": "",
                "step": "<p>It is new step.</p>",
                "expectedResult": "",
                "stepData": "",
                "localizedStatus": "Not Tested",
                "id": 15659,
                "actualResultRaw": "",
                "status": "Not Tested"
            }
        ],
        "testRunHistory": [
            {
                "executionOn": "20-Jun-2022 14:48:13",
                "activityType": "Test Run",
                "executorId": 10001,
                "activity": "New Created",
                "testRunId": 3299,
                "executorFullName": "Cheney Ma",
                "executorName": "cma"
            }
        ],
        "summary": "Test Case 1",
        "testCaseId": 16400,
        "cycleReadOnly": false,
        "lozenge": "aui-lozenge ",
        "id": 3299,
        "comment": "",
        "executedByDisplayName": "",
        "resultColor": "#747474",
        "adhocRunDeletable": true,
        "testCaseKey": "FRS-39",
        "status": "Not Tested",
        "type": 0
    }
]

 RESPONSE

 STATUS 200 Returned if the Test Run details are successfully retrieved from the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Defects Reported from a Test Plan

GET /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/defects

RESPONSE

[
  {
    "id": 16001,
    "key": "FRS-35",
    "summary": "REST API Defect Created for Test Run Step"
  },
  {
    "id": 15723,
    "key": "FRS-24",
    "summary": "System is down, testing is blocked."
  },
  {
    "id": 15725,
    "key": "FRS-26",
    "summary": "Error message is wrong after clicking 'Save' button."
  },
  {
    "id": 15803,
    "key": "FRS-32",
    "summary": "The dialog box should be improved."
  },
  {
    "id": 16000,
    "key": "FRS-34",
    "summary": "REST API Defect Created for Test Run"
  },
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Test Plan

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

Test Cycle Resource

 Create Test Runs with Run Attribute/s Assigned from an 'Advanced Test Cycle'

POST /rest/synapse/latest/public/testRun/createTestRuns

Note:

  1. If you want to leave 'Urgency' as blank, set value as: null
  2. If you want to leave 'Tester' as 'Unassigned', set value as: Unassigned
  3. If you only have one run attribute created in your project, specify following for "attributeValues": "AttributeName": "AttributeValue", "-": "-"
  4. If there are partial test runs created due to some invalid attribute input, it will still return code 200, succeed records will be listed in response and error for invalid input will also be there.

REQUEST

{
    "testCaseKeys": "FRS-14,FRS-15,FRS-16",
    "cycleId": "164",
    "attributeValues": 
    [
        {
            "Instance": "sbus.ins1", "Configuration": "-"
        }, 
        {   
            "Instance": "-", "Configuration": "Inter_Configure_1"
        },
        {
            "Instance": "sbus.ins1", "Configuration": "Inter_Configure_1"
        }
    ],
    "urgencyValue": "High,null,Low",
    "assignValue": "tester,cma,Unassigned",
    "progressKey": "bulkTestRun-Create"
}

RESPONSE

 STATUS 200 Returned if the Test Runs are successfully created from the Test Cycle

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseKey or cycleId or attributeValues provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Test Assignment from Test Cycle level

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/bulkAssignUpdate

REQUEST

{
	"testCycleId":153,
	"testerName":"cma",
	"runIds":[3164,3165,3166],
	"notifyTester":false
}

 RESPONSE

{
  "message": "Success"
}

 STATUS 200 Returned if the Test Runs are successfully assigned to specified Tester

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Cycle Status

PUT /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleName}/wf/{action}

REQUEST

Valid actions are:
- Start
- Complete
- Abort
- Resume

 RESPONSE

 STATUS 200 Returned if the Test Cycle status is updated successfully

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Cycle Details with Test Cycle ID

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/editCycle

To get "Test Cycle ID", please execute "GET /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycles" and then pickup "id" value from its response. 

REQUEST

{
  "id": 152,
  "name":"Round 2 with Firefox_Update",
  "environment":"Firefox 47_Update",
  "build":"8.4_Update",
  "plannedStartDate":"2017-04-13",
  "plannedEndDate":"2017-04-15"
}

 RESPONSE

 STATUS 200 Returned if the Test Cycle details is updated successfully

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Runs in a Test Cycle

GET /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleName}/testRuns

EXAMPLE

[
    {
        "id": 3148,
        "comment": "",
        "executedBy": "cma",
        "status": "Passed",
        "executionTimeStamp": "03/Nov/16 4:19 PM",
        "summary": "Valid the bank name",
        "testerName": "cma",
        "testCaseKey": "FRS-14"
    },
    {
        "id": 3149,
        "comment": "",
        "executedBy": "cma",
        "status": "Failed",
        "attachments": [
            {
                "fileName": "Performance_Manage_REQs_Loading_Issue.jpg",
                "id": 62,
                "mimeType": "image/jpeg"
            }
        ],
        "executionTimeStamp": "03/Nov/16 4:06 PM",
        "summary": "Return error if name is not correct",
        "testerName": "cma",
        "bugs": [
            {
                "id": 15722,
                "key": "FRS-23",
                "summary": "There is no error returned."
            }
        ],
        "testCaseKey": "FRS-15"
    }
]

 RESPONSE

 STATUS 200 Returned if the Test Runs are successfully retrieved

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Runs in a Test Cycle with Test Cycle ID

GET /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleId}/testRunsByCycleId

EXAMPLE

[
    {
        "id": 3148,
        "comment": "",
        "executedBy": "cma",
        "status": "Passed",
        "executionTimeStamp": "03/Nov/16 4:19 PM",
        "summary": "Valid the bank name",
        "testerName": "cma",
        "testCaseKey": "FRS-14"
    },
    {
        "id": 3149,
        "comment": "",
        "executedBy": "cma",
        "status": "Failed",
        "attachments": [
            {
                "fileName": "Performance_Manage_REQs_Loading_Issue.jpg",
                "id": 62,
                "mimeType": "image/jpeg"
            }
        ],
        "executionTimeStamp": "03/Nov/16 4:06 PM",
        "summary": "Return error if name is not correct",
        "testerName": "cma",
        "bugs": [
            {
                "id": 15722,
                "key": "FRS-23",
                "summary": "There is no error returned."
            }
        ],
        "testCaseKey": "FRS-15"
    }
]

 RESPONSE

 STATUS 200 Returned if the Test Runs are successfully retrieved

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add/Remove Test Cases to Test Cycle (with the reference Test Case members in Test Plan)

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/addMembersToTestCycle

REQUEST

{ 
  "testCycleId":153, 
  "testCycleName":"Round 3 with IE", 
  "addTestCaseKeys":["SPA-320","SPA-330"], 
  "removeTestCaseKeys":["FRS-29","FRS-30"]
}

 RESPONSE

 STATUS 200 Returned if the Test Cases are added/removed successfully

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Reorder Test Runs in a Test Cycle

PUT /rest/synapse/latest/public/testRun/reorderTestRun

REQUEST

{"testRunId":3169,"refTestRunId":3167}
  • This will move the Test Run (runId is 3169) right below Test Run (runId is 3167)
  • refTestRunId would be -1 if the Test Run needs to be moved to the top

 RESPONSE

 STATUS 200 Returned if the Test Run is reordered successfully

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testRunId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Defects Reported from a Test Cycle

GET /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleId}/defects

RESPONSE

[
  {
    "id": 16001,
    "key": "FRS-35",
    "summary": "REST API Defect Created for Test Run Step"
  },
  {
    "id": 15723,
    "key": "FRS-24",
    "summary": "System is down, testing is blocked."
  },
  {
    "id": 15803,
    "key": "FRS-32",
    "summary": "The dialog box should be improved."
  },
  {
    "id": 16000,
    "key": "FRS-34",
    "summary": "REST API Defect Created for Test Run"
  },
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Test Cycle

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add Automation Job to Test Cycle

POST /rest/synapse/latest/public/testCycle/addAutomationJobToTestCycle

REQUEST

{         
    "testPlanKey": "FRS-31",         
    "testCycleName": "Round 3 with IE",
    "appName": "Demo-Jenkins",
    "jobKey": "DemoParameterJob",
    "testType": "SELENIUM",
    "params" : "stringp1=p1value;stringp2=p2value"
}

RESPONSE

 STATUS 200 Returned if the Automation Job is successfully added to the Test Cycle

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Retrieve 'Plan/Job' Details from a Test Cycle

POST /rest/synapse/latest/public/testCycle/automationJobs

REQUEST

{      
	"testPlanKey": "FRS-31",         
   	"testCycleName": "Round 3 with IE"
}

RESPONSE

{
	"automationBuildId": 4,
	"appName": "Demo-Jenkins",
	"jobKey": "DemoParameterJob",
	"testType": "SELENIUM",
	"params": "stringp1=p1value;stringp2=p2value;SRTCYCLE=153"
}

 STATUS 200 Returned if the Automation Job details is successfully retrieved

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Trigger an Automation Job/Plan from Test Cycle

POST /rest/synapse/latest/public/testCycle/triggerAutomationJob

REQUEST

{         
	"testPlanKey": "FRS-31",         
	"testCycleName": "Round 3 with IE",
	"automationBuildId": "4"
}

RESPONSE

 STATUS 200 Returned if the Automation Job is successfully triggered from Test Cycle

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

Test Run Resource

 Get Test Run Details

GET /rest/synapse/latest/public/testRun/{runID}

Please note that runID doesn't include the prefix 'TR'.

EXAMPLE

{
    "id": 3148,
    "type": 0,
    "comment": "",
    "summary": "Valid the bank name",
    "estimate": "10m",
    "status": "Passed",
    "testerName": "cma",
    "testCaseId": 15713,
    "efforts": "5m",
    "testRunDetails": {
        "testRunSteps": [
            {
                "id": 15203,
                "status": "Passed",
                "expectedResult": "User logged in successfully.",
                "step": "Login 'FRS' system valid u/p.",
                "testRunStepAttachments": []
            },
            {
                "id": 15204,
                "status": "Passed",
                "expectedResult": "It redirects to 'Purchase' page.",
                "step": "Choose any ticket and click on 'Purchase' button.",
                "testRunStepAttachments": []
            },
            {
                "id": 15205,
                "status": "Passed",
                "expectedResult": "",
                "step": "Specify a valid bank from which the card was issued in 'Bank Name' textbox.",
                "testRunStepAttachments": []
            },
            {
                "id": 15206,
                "status": "Passed",
                "expectedResult": "A confirmation message 'Bank Validation Passed' pops up.",
                "step": "Click 'Validation' button.",
                "testRunStepAttachments": []
            },
            {
                "id": 15207,
                "status": "Passed",
                "expectedResult": "",
                "step": "Specify an invalid bank in 'Bank Name' textbox.",
                "testRunStepAttachments": []
            },
            {
                "id": 15208,
                "status": "Passed",
                "expectedResult": "An error message 'Bank Name is not valid!' pops up.",
                "step": "Click 'Validation' button.",
                "testRunStepAttachments": []
            }
        ],
        "testRunHistory": [
            {
                "executorName": "cma",
                "activity": "Passed",
                "activityType": "Status",
                "executionTime": 1478161145190,
                "testRunId": 3148
            }
        ],
        "nextRunId": 3149
    },
    "testCaseKey": "FRS-14",
    "lozenge": "aui-lozenge aui-lozenge-success"
}

 RESPONSE

 STATUS 200 Returned if the Test Run Details are successfully retrieved

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Case Execution History

GET /rest/synapse/latest/public/testRun/{testCaseIssueKey}/testRuns

EXAMPLE

[
    {
        "type": 0,
        "id": 3116,
        "status": "Passed",
        "summary": "Valid the bank name",
        "testCaseKey": "FRS-14",
        "lozenge": "aui-lozenge aui-lozenge-success",
        "testPlanKey": "FRS-22",
        "executionOn": "01/Jul/16 11:01 AM",
        "testPlanSummary": "Functionality Testing in Sprint 16",
        "testerName": "Murali",
        "testCycleSummary": "Cycle - Chrome",
        "executedBy": "cma",
        "testCaseId": 15713,
        "testCycleId": 147,
        "testRunDetails": {
            "testRunSteps": [
                {
                    "id": 15081,
                    "step": "Login 'FRS' system valid u/p.",
                    "status": "Passed",
                    "expectedResult": "User logged in successfully.",
                    "testRunStepAttachments": []
                },
                {
                    "id": 15082,
                    "step": "Choose any ticket and click on 'Purchase' button.",
                    "status": "Passed",
                    "expectedResult": "It redirects to 'Purchase' page.",
                    "testRunStepAttachments": []
                },
                {
                    "id": 15083,
                    "step": "Specify a valid bank from which the card was issued in 'Bank Name' textbox.",
                    "status": "Passed",
                    "expectedResult": "",
                    "testRunStepAttachments": []
                },
                {
                    "id": 15084,
                    "step": "Click 'Validation' button.",
                    "status": "Passed",
                    "expectedResult": "A confirmation message 'Bank Validation Passed' pops up.",
                    "testRunStepAttachments": []
                },
                {
                    "id": 15085,
                    "step": "Specify an invalid bank in 'Bank Name' textbox.",
                    "status": "Passed",
                    "expectedResult": "",
                    "testRunStepAttachments": []
                },
                {
                    "id": 15086,
                    "step": "Click 'Validation' button.",
                    "status": "Passed",
                    "expectedResult": "An error message 'Bank Name is not valid!' pops up.",
                    "testRunStepAttachments": []
                }
            ],
            "testRunHistory": [
                {
                    "executionTime": 1467342064503,
                    "executorName": "cma",
                    "activity": "Passed",
                    "executorId": 10001,
                    "activityType": "Status",
                    "testRunId": 3116,
                    "executorFullName": "Cheney Ma"
                },
                {
                    "executionTime": 1467342064502,
                    "executorName": "cma",
                    "activity": "Passed",
                    "executorId": 10001,
                    "activityType": "Status",
                    "testRunId": 3116,
                    "executorFullName": "Cheney Ma"
                },
                {
                    "executionTime": 1467342064502,
                    "executorName": "cma",
                    "activity": "Passed",
                    "executorId": 10001,
                    "activityType": "Status",
                    "testRunId": 3116,
                    "executorFullName": "Cheney Ma"
                }
            ],
            "prevRunId": 3119,
            "nextRunId": 3117
        }
    },      
] 

 RESPONSE

 STATUS 200 Returned if the Test Case Execution History are successfully retrieved

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Runs Those were Done during a Period

POST /rest/synapse/latest/public/testRun/testRunsBetween

Please note that if leave "toDate" as blank ("toDate" : ""), it will return Test Runs done till current day

REQUEST

{ 
	"fromDate" : "2019-04-12", 
	"toDate" : "2019-04-12"
}

 RESPONSE

[
    {
        "type": 0,
        "id": 3170,
        "status": "Passed",
        "executedBy": "cma",
        "summary": "FRS Smoke Testing - Automation Demo Test Case 1",
        "testCaseKey": "FRS-29",
        "testCycleId": 153,
        "testCaseId": 15800,
        "testerName": "",
        "executionOn": "12/Apr/19 1:43 AM",
        "testPlanSummary": " Functionality Testing in Sprint 20",
        "testPlanKey": "FRS-31",
        "testRunDetails": {
            "testRunHistory": [
                {
                    "executorName": "cma",
                    "activity": "Passed",
                    "testRunId": 3170,
                    "executorId": 10001,
                    "executionOn": "12-Apr-2019 01:43:14",
                    "activityType": "Status",
                    "executorFullName": "Cheney Ma"
                }
            ],
            "prevRunId": 3169,
            "nextRunId": 3171
        },
        "testCycleSummary": "Round 3 with IE"
  	}
]

 STATUS 200 Returned if the Test Runs are successfully done during the specified period

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Run

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleName}/updateTestRun

Please note that "Run Attribute" and its values must be created manually before run this API

REQUEST

{
"testcaseKey":"FRS-14",
"result":"Passed",
"comment":"Updated through REST"
"runAttributes": 
    {
        "Configuration": [
            "Inter_Configure_2",
            "Inter_Configure_3"
        ],
        "Instance": [
            "sbus.ins1",
            "sbus.ins2"
        ]
    }
}

 RESPONSE

 STATUS 200 Returned if the Test Run is updated successfully

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Run Step Result

POST /rest/synapse/latest/public/testRun/updateStep/

To get "runStepId", please execute "GET /rest/synapse/latest/public/testRun/{runID}" and then pickup "testRunSteps id" value from its response. 

REQUEST

{ 
  "runStepId":15366, "result":"Blocked", "actualResult":"This Test Step is failed.", "bugs":["FRS-23"]
}

 RESPONSE

 STATUS 200 Returned if the Test Run Step Result is successfully updated

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runStepId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Run Result with runid

POST /rest/synapse/latest/public/testRun/update

Please note that "Run Attribute" and its values must be created manually before run this API

REQUEST

{
"runId":"3167",
"result":"Blocked",
"comment":"Updated through REST",
"bugs":["FRS-23"],
"runAttributes": 
    {
        "Configuration": [
            "Inter_Configure_2",
            "Inter_Configure_3"
        ],
        "Instance": [
            "sbus.ins1",
            "sbus.ins2"
        ]
    }
}

 RESPONSE

 STATUS 200 Returned if the Test Run Step Result is successfully updated

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Results for Multiple Test Runs

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/bulkStatusUpdate

REQUEST

Valid 'status' are:
- Passed
- Failed
- Not Tested
- Blocked
- NA

 

{
	"testCycleId":153,
	"status":"Failed",
	"runIds":[3164,3165,3166]
}

 RESPONSE

 STATUS 200 Returned if the Test Runs results are successfully updated

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Link Bug to Test Run

POST /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleName}/linkBugToTestRun

REQUEST

{
	"testcaseKey":"FRS-15",
	"bugs":["FRS-23","FRS-24"]
}

 RESPONSE

 STATUS 200 Returned if the Bug is successfully linked to the Test Run

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testPlanIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add Attachments to Test Run

POST /rest/synapse/latest/public/attachment/{runId}/testrun

Please note that runId doesn't include the prefix 'TR'.

Supported content type: MULTIPART_FORM_DATA

 RESPONSE

 STATUS 200 Returned if the attachment is successfully added to Test Run

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add Attachments to Test Run Step

POST /rest/synapse/latest/public/attachment/{runId}/testrun/step/{stepno}

Please note that runId doesn't include the prefix 'TR'.

Supported content type: MULTIPART_FORM_DATA

 RESPONSE

 STATUS 200 Returned if the attachment is successfully added to Test Run Step

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Create a New Defect from Test Run

POST /rest/synapse/latest/public/testRun/createRunBug

REQUEST

{
	"fields": 
	{
		"project":
		{"key": "FRS"},
		"summary": "REST API Defect Created for Test Run",
		"description": "This Defect is Created from a Test Run",
		"issuetype":
		{"name": "Defect"}
	},
	"runId":3149
}

 RESPONSE

{
	"id": 16000,
	"key": "FRS-34"
}

 STATUS 200 Returned if the Defect is successfully created from the Test Run

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Create a New Defect from Test Run Step

POST /rest/synapse/latest/public/testRun/createRunStepBug

REQUEST

{
	"fields": 
		{
			"project":
			{"key": "FRS"},
			"summary": "REST API Defect Created for Test Run Step",
			"description": "This Defect is Created from a Test Run Step",
			"issuetype":
			{"name": "Defect"}
		},
	"runStepId":15176
}

 RESPONSE

{
	"id": 16001,
	"key": "FRS-35"
}

 STATUS 200 Returned if the Defect is successfully created from the Test Run Step

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runStepId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Defects Reported from a Test Run

GET /rest/synapse/latest/public/testRun/defects/runId

RESPONSE

[
  {
    "id": 16001,
    "key": "FRS-35",
    "summary": "REST API Defect Created for Test Run Step"
  },
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  },
  {
    "id": 16000,
    "key": "FRS-34",
    "summary": "REST API Defect Created for Test Run"
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Test Run

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Attachment Details from a Test Run

GET /rest/synapse/latest/public/attachment/{runId}/getAttachmentDetails

RESPONSE

[
  {
    "fileName": "Attachment1 - Attached in a Test Run Step.jpg",
    "mimeType": "image/jpeg",
    "id": 63,
    "filePath": "http://localhost:8848/plugins/servlet/downloadTRAttachment?attachmentId=63"
  },
  {
    "fileName": "Attachment2 - Attached in a Test Run.jpg",
    "mimeType": "image/jpeg",
    "id": 64,
    "filePath": "http://localhost:8848/plugins/servlet/downloadTRAttachment?attachmentId=64"
  }
]

 STATUS 200 Returned if the attachments are successfully retrieved from the Test Run

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Attachment from a Test Run

DELETE /rest/synapse/latest/public/attachment/{runId}/deleteAttachment/{attachmentId}

RESPONSE

 STATUS 200 Returned if the attachment is successfully deleted from the Test Run

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the runId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

Test Case Resource

 Create New Test Case with Test Steps

POST: /rest/synapse/latest/public/testCase/create/createTestCase

REQUEST

{
  "fields": 
  {
    "project":
      {"key": "FRS"},
    "summary": "REST API Test Case 1",
    "description": "This Test Case Is Created from REST API",
    "issuetype":
      {"name": "Test Case"}
  },
  "testcasesteps":
  [
    {"step":"It is the first Test Step", "stepData": "It is Test Data for the first Test Step", "expectedResult":"It is the Expected Result for the first Test Step"},
    {"step":"It is the second Test Step", "stepData": "It is Test Data for the second Test Step", "expectedResult":"It is the Expected Result for the second Test Step"}
  ]
}

 RESPONSE

{
	"id": 16000,
	"key": "FRS-34"
}

 STATUS 200 Returned if the Test Case is successfully created

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the 'fields' provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Create New Test Case with Test Suite

POST: /rest/synapse/latest/public/testSuite/createTestCase

  • If 'testSuitePath' doesn't exist, a new Test Suite will be created by API and then link Test Case to it.
  • If 'TestSuitePath' exists, the Test Case will be linked to the Test Suite directly.

REQUEST

{
  "fields": 
  {
    "project":
     {"key": "FRS"},
    "summary": "REST API Test Case with Test Suite",
    "description": "This Test Case Is Created from REST API",
    "issuetype":
     {"name": "Test Case"}
  },
  "testcasesteps":
  [
    {"step": "It is the first Test Step", "stepData": "It is Test Data for the first Test Step", "expectedResult": "It is the Expected Result for the first Test Step"},
    {"step": "It is the second Test Step", "stepData": "It is Test Data for the second Test Step", "expectedResult": "It is the Expected Result for the second Test Step"}
  ],
   "linkToTestSuite":
	{
		"testSuitePath": "ROOT Test Suite/Sub Test Suite",
    	"projectKey": "FRS"
	}
}

 RESPONSE

{
    "testSuitePath": "ROOT Test Suite/Sub Test Suite",
    "projectKey": "FRS",
    "testCaseKey": "FRS-146",
    "createdTestSuiteId": 281,
    "createdTestCase": {
        "id": 16282,
        "key": "FRS-146"
    }
}

 STATUS 200 Returned if the Test Case is successfully created

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Link Existing Test Case/s to Test Suite

POST: /rest/synapse/latest/public/testSuite/linkTestCase

  • If 'testSuitePath' doesn't exist, a new Test Suite will be created by API and then link Test Case/s to it.
  • If 'TestSuitePath' exists, the Test Case/s will be linked to the Test Suite directly.

REQUEST

{
	"testCaseKeys": ["FRS-14","FRS-15"],
	"testSuitePath": "ROOT Test Suite/Sub Test Suite",
	"projectKey": "FRS"
}

 RESPONSE

 STATUS 200 Returned if the Test Case/s is successfully linked to specified Test Suite

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Test Suite Information from a Test Case

DELETE /rest/synapse/latest/public/testSuite/{projectKey}/removeTestSuiteMember

  1. If you want to delete multiple Test Suites from the Test Case/s, separate Test Suites by using comma (,)
  2. If you want to delete Test Suite/s from multiple Test Cases, separate Test Cases by using comma (,)

REQUEST

{
    "testSuiteName": "synapseRT All Test Cases/Requirement Issue",
    "testCaseKeys": "FRS-51"
}

 RESPONSE

 STATUS 200 Returned if the Test Suite information is successfully deleted from Test Case issue.

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testSuiteName or testCaseKeys provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add Test Steps to a Test Case

POST /rest/synapse/latest/public/testCase/{testCaseIssueKey}/addSteps

REQUEST

[
 { "step":"Step 1 added via REST API",
    "stepData": "It is step data A for testing",
    "expectedResult":"Expected Result 1 added via REST API" 
 },
 {   "step":"Step 2 added via REST API", 
  "stepData": "It is step data B for testing", 
  "expectedResult":"Expected Result 1 added via REST API" 
 }
]

 RESPONSE

[
  {
    "sequenceNumber": "8",
    "id": 1707,
    "step": "Step 1 added via REST API",
    "expectedResult": "Expected Result 1 added via REST API",
    "tcId": 15713,
    "stepData": "It is step data A for testing"
  },
  {
    "sequenceNumber": "9",
    "id": 1708,
    "step": "Step 2 added via REST API",
    "expectedResult": "Expected Result 1 added via REST API",
    "tcId": 15713,
    "stepData": "It is step data B for testing"
  }
]

 STATUS 200 Returned if the Test Steps are successfully added to the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Steps from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/steps

EXAMPLE

[
  {
    "sequenceNumber": "1",
    "id": 1672,
    "step": "Login 'FRS' system valid u/p.",
    "expectedResult": "User logged in successfully.",
    "tcId": 15713
  },
  {
    "sequenceNumber": "2",
    "id": 1673,
    "step": "Choose any ticket and click on 'Purchase' button.",
    "expectedResult": "It redirects to 'Purchase' page.",
    "tcId": 15713
  }
]

 RESPONSE

 STATUS 200 Returned if the Test Steps are successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Time Tracking Information from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/timeTracking

EXAMPLE

{
    "estimate": "10m",
    "forecast": "5m",
    "issueKey": "FRS-15",
    "issueId": "16110"
}

 RESPONSE

 STATUS 200 Returned if the Time Tracking information is successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Linked Test Suite/s from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/linkedTestSuites

EXAMPLE

{
    "summary": "Return error if name is not correct",
    "projectKey": "FRS",
    "testSuites": [
        "Flight Reservation System/Purchase Ticket/Credit Card Validation/Valid Card Owner"
    ]
}

 RESPONSE

 STATUS 200 Returned if the linked Test Suite information is successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Linked Test Plan/s from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/linkedTestPlans

EXAMPLE

{
    "summary": "Return error if name is not correct",
    "projectKey": "FRS",
    "testPlans": [
                {
            "testPlanKey": "FRS-31",
            "testPlanSummary": " Functionality Testing in Sprint 20",
            "testCycles": [
                {
                    "testCycleId": 151,
                    "testCycleName": "Round 1 with Chrome",
                    "notifyTester": false
                },
                {
                    "testCycleId": 152,
                    "testCycleName": "Round 2 with Firefox_Update",
                    "notifyTester": false
                },
                {
                    "testCycleId": 153,
                    "testCycleName": "Round 3 with IE",
                    "notifyTester": false
                },
                {
                    "testCycleId": 159,
                    "testCycleName": "REST API Cycle 1",
                    "notifyTester": false
                },
                {
                    "testCycleId": 162,
                    "testCycleName": "Round 1 with Chromea",
                    "notifyTester": false
                }
            ]
        },
        {
            "testPlanKey": "FRS-22",
            "testPlanSummary": "Functionality Testing in Sprint 16",
            "testCycles": [
                {
                    "testCycleId": 147,
                    "testCycleName": "Cycle - Chrome",
                    "notifyTester": false
                },
                {
                    "testCycleId": 148,
                    "testCycleName": "Cycle - Firefox",
                    "notifyTester": false
                },
                {
                    "testCycleId": 149,
                    "testCycleName": "Cycle - IE",
                    "notifyTester": false
                }
            ]
        }
    ]
}

 RESPONSE

 STATUS 200 Returned if the linked Test Plan information is successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Add Test Reference Information to a Test Case

POST /rest/synapse/latest/public/testCase/{testCaseIssueKey}/updateTestReference

  • If 'Test Reference' value doesn't exist, the value will be created by the API.
  • If 'Test Reference' value already exists, it will be replaced by the new value mentioned in API.
  • If 'Test Reference' value needs to be cleared, specify automationReference":"" as API body.

EXAMPLE

{
	"automationReference":"API.Automation_Script_ClassName1:Test1"
}

 RESPONSE

 STATUS 200 Returned if the Test Reference information is successfully created from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Reference Information from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/automationReference

EXAMPLE

{
    "summary": "FRS Smoke Testing - Automation Demo Test Case 1",
    "projectKey": "FRS",
    "automationReference": "com.pba.test.module2.TestCase1:VerifyJiraRalDefSync"
}

 RESPONSE

 STATUS 200 Returned if the Test Reference information is successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Step from Test Case with ID

PUT /rest/synapse/latest/public/testCase/{testCaseIssueKey}/updateStep

REQUEST

{
	"ID":"1704",
	"step":"Update Step X",
	"expectedResult":"Update Expected Result X",
	"stepData":"Update Test Data X"
}

 RESPONSE

 STATUS 200 Returned if the Test Step is successfully updated

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the ID provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Update Test Step from Test Case with sequenceNumber

PUT /rest/synapse/latest/public/testCase/{testCaseIssueKey}/updateStep

REQUEST

{ 
	"sequenceNumber":"1", 
	"step":"Step 1", 
	"expectedResult":"Result 1", 
	"stepData":"Data 1" 
}

 RESPONSE

 STATUS 200 Returned if the Test Step is successfully updated

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the sequenceNumber provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Test Step from Test Case with ID

DELETE /rest/synapse/latest/public/testCase/{testCaseIssueKey}/deleteStep/{stepId}

 RESPONSE

 STATUS 200 Returned if the Test Step is successfully deleted

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the stepId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Test Step from Test Case with sequenceNumber

DELETE /rest/synapse/latest/public/testCase/{testCaseIssueKey}/deleteStepBySequenceNo/{stepNo}

 RESPONSE

 STATUS 200 Returned if the Test Step is successfully deleted

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the stepNo provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get All Linked Requirements from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/linkedRequirements

 RESPONSE

[
  {
    "id": 15703,
    "key": "FRS-4",
    "summary": "Valid Card Owner"
  },
  {
    "id": 15701,
    "key": "FRS-2",
    "summary": "Credit Card Validation"
  },
  {
    "id": 15704,
    "key": "FRS-5",
    "summary": "Passenger Information Validation"
  }
]

 STATUS 200 Returned if the linked Requirements are successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Requirement Associations from a Test Case

DELETE /rest/synapse/latest/public/testCase/{testCaseIssueKey}/deleteLinkedRequirements

REQUEST

{
	"requirementKeys":["FRS-3","FRS-4"]
}

 RESPONSE

 STATUS 200 Returned if the Requirement Associations are successfully deleted

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Create Ad hoc Test Run from a Test Case

PUT /rest/synapse/latest/public/testRun/adhoc/create/{testCaseIssueKey}

RESPONSE

{
	"id": 3176,
	"type": 0,
	"status": "Not Tested",
	"testCaseKey": "FRS-15",
	"lozenge": "aui-lozenge ",
	"summary": "Return error if name is not correct",
	"testRunDetails": 
		{
    		"prevRunId": 3175
		},
  "testerName": "cma",
  "testCaseId": 15714
}

 STATUS 200 Returned if Test Run is successfully created from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Ad Hoc Test Run Details from a Test Case

GET /rest/synapse/latest/public/testRun/adhoc/getTestRuns/{testCaseIssueKey}

RESPONSE

[
  {
    "id": 3176,
    "type": 0,
    "status": "Not Tested",
    "testCaseKey": "FRS-15",
    "lozenge": "aui-lozenge ",
    "summary": "Return error if name is not correct",
    "testRunDetails": {
      "testRunSteps": [
        {
          "id": 15265,
          "status": "Not Tested",
          "step": "Login 'FRS' system valid u/p.",
          "testRunStepAttachments": [],
          "expectedResult": "User logged in successfully."
        },
        {
          "id": 15266,
          "status": "Not Tested",
          "step": "Choose any ticket and click on '*Purchase*' button.",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": "It redirects to 'Purchase' page."
        },
        {
          "id": 15267,
          "status": "Not Tested",
          "step": "Specify your ID and Name in '{color:red}Passenger Name{color}' section.",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": ""
        },
        {
          "id": 15268,
          "status": "Not Tested",
          "step": "Click 'Check' button. ",
          "testRunStepAttachments": [],
          "expectedResult": "It returns an error: 'Your ID and Name are inconsistent, please check again!'."
        },
        {
          "id": 15269,
          "status": "Not Tested",
          "step": "*Below is an inline image for Step 5:*\n !UG_AD11_Preference.jpg|thumbnail!",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": "*Below is an inline image for Step 5:*\n !UG_AD10_Preference.jpg|thumbnail!"
        }
      ],
      "prevRunId": 3175
    },
    "testerName": "cma",
    "testCaseId": 15714
  },
  {
    "id": 3174,
    "type": 0,
    "status": "Passed",
    "testCaseKey": "FRS-15",
    "lozenge": "aui-lozenge aui-lozenge-success",
    "summary": "Return error if name is not correct",
    "testRunDetails": {
      "testRunSteps": [
        {
          "id": 15254,
          "status": "Passed",
          "step": "Login 'FRS' system valid u/p.",
          "testRunStepAttachments": [],
          "expectedResult": "User logged in successfully."
        },
        {
          "id": 15255,
          "status": "Passed",
          "step": "Choose any ticket and click on '*Purchase*' button.",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": "It redirects to 'Purchase' page."
        },
        {
          "id": 15256,
          "status": "Passed",
          "step": "Specify your ID and Name in '{color:red}Passenger Name{color}' section.",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": ""
        },
        {
          "id": 15257,
          "status": "Passed",
          "step": "Click 'Check' button. ",
          "testRunStepAttachments": [],
          "expectedResult": "It returns an error: 'Your ID and Name are inconsistent, please check again!'."
        },
        {
          "id": 15258,
          "status": "Passed",
          "step": "*Below is an inline image for Step 5:*\n !UG_AD11_Preference.jpg|thumbnail!",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": "*Below is an inline image for Step 5:*\n !UG_AD10_Preference.jpg|thumbnail!"
        }
      ],
      "testRunHistory": [
        {
          "executorName": "cma",
          "testRunId": 3174,
          "activity": "Passed",
          "executionTime": 1492569650867,
          "activityType": "Status"
        }
      ],
      "prevRunId": 3173,
      "nextRunId": 3175
    },
    "testerName": "cma",
    "testCaseId": 15714
  }
]

 STATUS 200 Returned if the Ad Hoc Test Run Details are successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Defects Reported from a Test Case

GET /rest/synapse/latest/public/testCase/{testCaseIssueKey}/getDefects

RESPONSE

[
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  },
  {
    "id": 15725,
    "key": "FRS-26",
    "summary": "Error message is wrong after clicking 'Save' button."
  },
  {
    "id": 15900,
    "key": "FRS-33",
    "summary": "There is an error when open xxx page."
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Test Case

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the testCaseIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

Requirement Resource

 Add Child Requirements to a Requirement

POST /rest/synapse/latest/public/requirement/{requirementIssueKey}/addChildren

REQUEST

{
	"requirementKeys":["FRS-3","FRS-4"]
}

 RESPONSE

 STATUS 200 Returned if the Child Requirements are successfully linked to the Requirement

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get All Child Requirements from a Requirement

GET /rest/synapse/latest/public/requirement/{requirementIssueKey}/getChildren

 RESPONSE

[
  {
    "id": 15701,
    "key": "FRS-2",
    "summary": "Credit Card Validation"
  },
  {
    "id": 15704,
    "key": "FRS-5",
    "summary": "Passenger Information Validation"
  },
  {
    "id": 15702,
    "key": "FRS-3",
    "summary": "Valid Bank"
  },
  {
    "id": 15703,
    "key": "FRS-4",
    "summary": "Valid Card Owner"
  },
  {
    "id": 15705,
    "key": "FRS-6",
    "summary": "Registered User"
  },
  {
    "id": 15706,
    "key": "FRS-7",
    "summary": "Not Registered User"
  }
]

 STATUS 200 Returned if the Child Requirements are successfully retrieved from the Requirement

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get All Immediate Child Requirements from a Requirement

GET /rest/synapse/latest/public/requirement/{requirementIssueKey}/getOnlyImmediateChildren

 RESPONSE

[
  {
    "id": 15702,
    "key": "FRS-3",
    "summary": "Valid Bank"
  },
  {
    "id": 15703,
    "key": "FRS-4",
    "summary": "Valid Card Owner"
  }
]

 STATUS 200 Returned if the immediate Child Requirements are successfully retrieved from the Requirement

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Link Test Case to a Requirement

POST /rest/synapse/latest/public/requirement/{requirementIssueKey}/linkTestCase

REQUEST

{
	"testCaseKeys":["FRS-14","FRS-15"]
}

 RESPONSE

 STATUS 200 Returned if the Test Cases are successfully linked to the Requirement

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Linked Test Cases from a Requirement

GET /rest/synapse/latest/public/requirement/{requirementIssueKey}/linkedTestCases

 EXAMPLE

[
  {
    "id": 15714,
    "key": "FRS-15",
    "summary": "Return error if name is not correct"
  },
  {
    "id": 15715,
    "key": "FRS-16",
    "summary": "Return  error if age is not correct"
  },
  {
    "id": 15716,
    "key": "FRS-17",
    "summary": "Return error if sex is not correct "
  }
]

 STATUS 200 Returned if the linked Test Cases are successfully retrieved from the Requirement

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete Test Case Associations from a Requirement

DELETE /rest/synapse/latest/public/requirement/{requirementIssueKey}/deleteLinkedTestCases

REQUEST

{
	"testCaseKeys":["FRS-16","FRS-17"]
}

 RESPONSE

 STATUS 200 Returned if the Test Case Associations are successfully deleted

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey  provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Defects Reported from a Requirement

GET /rest/synapse/latest/public/requirement/{requirementIssueKey}/getDefects

RESPONSE

[
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  },
  {
    "id": 15723,
    "key": "FRS-24",
    "summary": "System is down, testing is blocked."
  },
  {
    "id": 15725,
    "key": "FRS-26",
    "summary": "Error message is wrong after clicking 'Save' button."
  },
  {
    "id": 15900,
    "key": "FRS-33",
    "summary": "There is an error when open xxx page."
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Requirement

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Create a Requirement Suite from a Project

POST /rest/synapse/latest/public/requirementSuite/create

REQUEST

{
   "projectKey": "FRS",
   "suiteName": "Root REQ Suite",
   "parentSuiteId": "0"
}

 RESPONSE

 STATUS 200 Returned if the Requirement Suite is successfully created

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the projectKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete a Requirement Suite

DELETE /rest/synapse/latest/public/requirementSuite/delete?projectKeyOrId=?&requirementSuiteId=?

Example: 

DELETE /rest/synapse/latest/public/requirementSuite/delete?projectKeyOrId=10901&requirementSuiteId=116

 RESPONSE

 STATUS 200 Returned if the Requirement Suite is successfully deleted

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the projectKeyOrId or requirementSuiteId  provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Link a Requirement Issue to a Requirement Suite

POST /rest/synapse/latest/public/requirementSuite/addMember?requirementSuiteId=?&memberId=?&memberProjectKeyOrId=?

Example: 

POST /rest/synapse/latest/public/requirementSuite/addMember?requirementSuiteId=116&memberId=16107&memberProjectKeyOrId=FRS

 RESPONSE

 STATUS 200 Returned if the Requirement Issue is successfully linked to Requirement Suite

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementSuiteId or memberId or memberProjectKeyOrId  provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Delete a Requirement Issue from a Requirement Suite

POST /rest/synapse/latest/public/requirementSuite/deleteMember?requirementSuiteId=?&memberId=?

Example: 

POST /rest/synapse/latest/public/requirementSuite/deleteMember?requirementSuiteId=116&memberId=16107

 RESPONSE

 STATUS 200 Returned if the Requirement Issue is successfully deleted from Requirement Suite

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementSuiteId or memberId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Requirement Suite List from a Project

GET /rest/synapse/latest/public/requirement/{projectKey}/requirementSuites

RESPONSE

{
    "requirementSuites": [
        {
            "name": "v1.0 - In Progress",
            "id": 2,
            "projectId": 10800
        },
        {
            "name": "v2.0 - Backlog (Need Review)",
            "id": 3,
            "projectId": 10800
        },
        {
            "name": "933A3 REQ Suite1",
            "id": 4,
            "projectId": 10800
        }
    ],
    "requirements": [
        {
            "id": 16202,
            "key": "FRS-36",
            "summary": "v3.0 - Develop Feature C (TBD)"
        }
    ]
}

 STATUS 200 Returned if the Requirement Suites are successfully retrieved from the project

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the projectKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Requirement Suite Members (both Sub Requirement Suites and Requirement Issues)

GET /rest/synapse/latest/public/requirement/requirementSuite/{suiteId}

RESPONSE

{
    "requirementSuites": [],
    "id": 5,
    "name": "Sub Suite 1",
    "projectId": 10800,
    "requirements": [
        {
            "id": 16201,
            "key": "FRS-35",
            "summary": "v3.0 - Develop Feature B (TBD)"
        }
    ]
}

 STATUS 200 Returned if the Requirement Suite Members are successfully retrieved from the project

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the suiteId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Requirement Suite Information from a Requirement

GET /rest/synapse/latest/public/requirement/{requirementIssueKey)/linkedRequirementSuites

RESPONSE

{
    "requirementSuites": "933A3 REQ Suite1/Sub Suite 1",
    "summary": "v3.0 - Develop Feature A (TBD)",
    "projectKey": "FRS",
    "requirementHierarchy": "FRS-35->FRS-34"
}

 STATUS 200 Returned if the Requirement Suite Information is successfully retrieved from the project

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the requirementIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

Defect Resource

 Get Test Run Details from a Defect

GET /rest/synapse/latest/public/testRun/getTestRunsForDefect/{defectIssueKey}

RESPONSE

[
  {
    "id": 3117,
    "type": 0,
    "status": "Failed",
    "testCaseKey": "FRS-15",
    "lozenge": "aui-lozenge aui-lozenge-error",
    "summary": "Return error if name is not correct",
    "testRunDetails": {
      "testRunSteps": [
        {
          "id": 15087,
          "status": "Passed",
          "step": "Login 'FRS' system valid u/p.",
          "testRunStepAttachments": [],
          "expectedResult": "User logged in successfully."
        },
        {
          "id": 15088,
          "status": "Passed",
          "step": "Choose any ticket and click on 'Purchase' button.",
          "testRunStepAttachments": [],
          "expectedResult": "It redirects to 'Purchase' page."
        },
        {
          "id": 15089,
          "status": "Passed",
          "step": "Specify your ID and Name in 'Passenger Name' section.",
          "testRunStepAttachments": [],
          "expectedResult": ""
        },
        {
          "id": 15090,
          "status": "Failed",
          "step": "Click 'Check' button. ",
          "testRunStepBugsWrapper": [
            {
              "id": 15722,
              "key": "FRS-23",
              "summary": "There is no error returned."
            }
          ],
          "testRunStepAttachments": [
            {
              "id": 60,
              "fileName": "Test_Case_View_Test_Suite_v8.1.jpg",
              "mimeType": "image/jpeg"
            }
          ],
          "expectedResult": "It returns an error: 'Your ID and Name are inconsistent, please check again!'."
        }
      ],
      "testRunHistory": [
        {
          "executorName": "cma",
          "testRunId": 3117,
          "activity": "Passed",
          "executionTime": 1467342070139,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3117,
          "activity": "Passed",
          "executionTime": 1467342070140,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3117,
          "activity": "Passed",
          "executionTime": 1467342070140,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3117,
          "activity": "Passed",
          "executionTime": 1467342070140,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3117,
          "activity": "Failed",
          "executionTime": 1467342073924,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3117,
          "activity": "Attached",
          "executionTime": 1467342100470,
          "activityType": "Issue"
        }
      ],
      "testRunBugs": [
        {
          "id": 15722,
          "key": "FRS-23",
          "summary": "There is no error returned."
        }
      ],
      "testRunAttachments": [],
      "prevRunId": 3120
    },
    "testerName": "cma",
    "testCaseId": 15714
  },
  {
    "id": 3149,
    "type": 0,
    "status": "Failed",
    "testCaseKey": "FRS-15",
    "lozenge": "aui-lozenge aui-lozenge-error",
    "summary": "Return error if name is not correct",
    "testRunDetails": {
      "testRunSteps": [
        {
          "id": 15173,
          "status": "Passed",
          "step": "Login 'FRS' system valid u/p.",
          "testRunStepAttachments": [],
          "expectedResult": "User logged in successfully."
        },
        {
          "id": 15174,
          "status": "Passed",
          "step": "Choose any ticket and click on '*Purchase*' button.",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": "It redirects to 'Purchase' page."
        },
        {
          "id": 15175,
          "status": "Passed",
          "step": "Specify your ID and Name in '{color:red}Passenger Name{color}' section.",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": ""
        },
        {
          "id": 15176,
          "status": "Failed",
          "step": "Click 'Check' button. ",
          "testRunStepBugsWrapper": [
            {
              "id": 15722,
              "key": "FRS-23",
              "summary": "There is no error returned."
            }
          ],
          "testRunStepAttachments": [
            {
              "id": 61,
              "fileName": "Performance_Manage_REQs_Loading_Issue.jpg",
              "mimeType": "image/jpeg"
            }
          ],
          "expectedResult": "It returns an error: 'Your ID and Name are inconsistent, please check again!'."
        },
        {
          "id": 15177,
          "status": "Passed",
          "step": "*Below is an inline image for Step 5:*\n!Image_for_DEMO_Purpose.png|thumbnail!",
          "stepData": "",
          "testRunStepAttachments": [],
          "expectedResult": "*Below is an inline image for Step 5:*\n!Image_for_DEMO_Purpose.png|thumbnail!"
        }
      ],
      "testRunHistory": [
        {
          "executorName": "cma",
          "testRunId": 3149,
          "activity": "Passed",
          "executionTime": 1478160384762,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3149,
          "activity": "Failed",
          "executionTime": 1478160387086,
          "activityType": "Status"
        },
        {
          "executorName": "cma",
          "testRunId": 3149,
          "activity": "+ FRS-23",
          "executionTime": 1478160401266,
          "activityType": "Issue"
        }
      ],
      "testRunBugs": [
        {
          "id": 15722,
          "key": "FRS-23",
          "summary": "There is no error returned."
        }
      ],
      "testRunAttachments": [
        {
          "id": 62,
          "fileName": "Performance_Manage_REQs_Loading_Issue.jpg",
          "mimeType": "image/jpeg"
        }
      ],
      "prevRunId": 3148,
      "nextRunId": 3150
    },
    "testerName": "cma",
    "testCaseId": 15714
  }
]

 STATUS 200 Returned if the Test Run Details are successfully retrieved from the Defect

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the defectIssueKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

Other Resource

 Get Defects Reported in Specified Build

GET /rest/synapse/latest/public/testPlan/defects/buildDefects/{buildName}

RESPONSE

[
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  },
  {
    "id": 16000,
    "key": "FRS-34",
    "summary": "REST API Defect Created for Test Run"
  },
  {
    "id": 16001,
    "key": "FRS-35",
    "summary": "REST API Defect Created for Test Run Step"
  },
  {
    "id": 15723,
    "key": "FRS-24",
    "summary": "System is down, testing is blocked."
  },
  {
    "id": 15803,
    "key": "FRS-32",
    "summary": "The dialog box should be improved."
  },
  {
    "id": 15725,
    "key": "FRS-26",
    "summary": "Error message is wrong after clicking 'Save' button."
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Build

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the buildName provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Defects Reported in Specified Environment

GET /rest/synapse/latest/public/testPlan/defects/environmentDefects/{envName}

RESPONSE

[
  {
    "id": 15722,
    "key": "FRS-23",
    "summary": "There is no error returned."
  },
  {
    "id": 15723,
    "key": "FRS-24",
    "summary": "System is down, testing is blocked."
  },
  {
    "id": 15727,
    "key": "FRS-28",
    "summary": "Not able to input any data in 'Data' field."
  },
  {
    "id": 16000,
    "key": "FRS-34",
    "summary": "REST API Defect Created for Test Run"
  },
  {
    "id": 16001,
    "key": "FRS-35",
    "summary": "REST API Defect Created for Test Run Step"
  },
  {
    "id": 15803,
    "key": "FRS-32",
    "summary": "The dialog box should be improved."
  }
]

 STATUS 200 Returned if the Defects are successfully retrieved from the Environment

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the envName provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Create New Test Suite

POST: /rest/synapse/latest/public/testSuite/createTestSuite

If wants to add '/' as part as Test Suite name, please use escape character '\\'.  

REQUEST

{
	"testSuitePath": "API Test Suite/Sub Test Suite",
    "projectKey": "FRS"
}

 RESPONSE

{
    "testSuitePath": "API Test Suite/Sub Test Suite",
    "projectKey": "FRS"
}

 STATUS 200 Returned if the Test Suite is successfully created

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Suite List from a Project

GET /rest/synapse/latest/public/testSuite/{projectKey}/testSuites

RESPONSE

[
    {
        "name": "Flight Reservation System",
        "state": 1,
        "id": 217,
        "projectId": 10800,
        "nameEncoded": "Flight Reservation System"
    },
    {
        "name": "ROOT Test Suite1",
        "state": 1,
        "id": 233,
        "projectId": 10800,
        "nameEncoded": "ROOT Test Suite1"
    },
    {
        "name": "ROOT Test Suite 2",
        "state": 1,
        "id": 234,
        "projectId": 10800,
        "nameEncoded": "ROOT Test Suite 2"
    }
]

 STATUS 200 Returned if the Test Suite List is successfully retrieved from the project

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the projectKey provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error

 Get Test Suite Members (both Sub Test Suites and Test Case Issues)

GET /rest/synapse/latest/public/testSuite/testSuite/{suiteId}

RESPONSE

{
    "name": "Valid Bank",
    "state": 1,
    "id": 226,
    "projectId": 10800,
    "testSuiteMembers": [
        {
            "memberType": 0,
            "id": 812,
            "sequence": 0,
            "memberId": 15713,
            "testCaseIssue": {
                "id": 15713,
                "key": "FRS-14",
                "summary": "Valid the bank name"
            }
        }
    ],
    "nameEncoded": "Valid Bank"
}

 STATUS 200 Returned if the Test Suite Members are successfully retrieved from the project

 STATUS 403 Returned if the user is not authorized perform the action or there is no valid license

 STATUS 404 Returned if the suiteId provided is not found

 STATUS 500 Returned if there is any validation error with input data or any unknown Internal Server Error