Skip to main content
Skip table of contents

REST API

这个页面介绍了synapseRT提供的REST API,用户可以利用调用这些API以完成对此插件的操作。

测试计划资源

向测试计划中添加测试用例

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

REQUEST

JS
{
	"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

在测试计划中指定“测试者”信息

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

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

 RESPONSE

JS
{
  "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

在测试计划中创建测试周期

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

Please note that date format supported is: yyyy-mm-dd

REQUEST

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

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 /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycles

EXAMPLE

JS
[
  {
    "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 /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/deleteCycleByIdOrName 

REQUEST

By: Test Cycle Name

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

By: Test Cycle Id

JS
{
  "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 /rest/synapse/latest/public/testPlan/{testplanIssueKey}/members

EXAMPLE

JS
[
  {
    "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 /rest/synapse/latest/public/testPlan/{testplanIssueKey}/testPlanInformation

EXAMPLE

JS
{
    "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 /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/defects

RESPONSE

JS
[
  {
    "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

测试周期资源

从测试周期指派测试者

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

REQUEST

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

RESPONSE

JS
{
  "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

改变测试周期状态

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

REQUEST

JS
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

通过测试周期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

JS
{
  "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 /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleName}/testRuns

EXAMPLE

JS
[
  {
    "id": 3174,
    "status": "Failed",
    "attachments": [
      {
        "id": 63,
        "fileName": "Requirement_Issue_Create_Test_Case_in_Detail_View.jpg",
        "mimeType": "image/jpeg"
      }
    ],
    "bugs": [
      {
        "id": 15723,
        "key": "FRS-24",
        "summary": "System is down, testing is blocked."
      },
      {
        "id": 15722,
        "key": "FRS-23",
        "summary": "There is no error returned."
      }
    ],
    "executedBy": "cma",
    "summary": "Valid the bank name",
    "testCaseKey": "FRS-14",
    "executionTimeStamp": 1491453907184
  },
  {
    "id": 3175,
    "status": "Not Tested",
    "bugs": [
      {
        "id": 15723,
        "key": "FRS-24",
        "summary": "System is down, testing is blocked."
      },
      {
        "id": 15722,
        "key": "FRS-23",
        "summary": "There is no error returned."
      }
    ],
    "executedBy": "cma",
    "summary": "Return error if name is not correct",
    "testCaseKey": "FRS-15",
    "executionTimeStamp": 1491452068997
  }
]

 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

通过测试周期ID返回测试周期中的所有测试执行

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

EXAMPLE

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

 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

在测试周期中添加/删除测试用例(基于测试计划中的测试用例)

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

REQUEST

JS
{ 
  "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

在测试周期中重新排序测试执行

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

REQUEST

JS
{"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 /rest/synapse/latest/public/testPlan/{testPlanIssueKey}/cycle/{cycleId}/defects

RESPONSE

JS
[
  {
    "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

向测试周期中添加自动化任务(Jenkins Job)

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

REQUEST

JS
{         
    "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

返回测试周期中“计划/任务“(Plan/Job)的详细信息

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

REQUEST

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

RESPONSE

JS
{
        "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

触发测试周期中的自动化计划/任务(Plan/Job)

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

REQUEST

JS
{         
    	"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

测试执行资源

返回测试执行的详细信息

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

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

EXAMPLE

JS
{
  "id": 3174,
  "type": 0,
  "comment": "Updated through REST",
  "status": "Failed",
  "summary": "Valid the bank name",
  "testCaseKey": "FRS-14",
  "lozenge": "aui-lozenge aui-lozenge-error",
  "testRunDetails": {
    "testRunSteps": [
      {
        "id": 15254,
        "status": "Blocked",
        "step": "Login 'FRS' system valid u/p.",
        "expectedResult": "User logged in successfully.",
        "testRunStepBugsWrapper": [
          {
            "id": 15722,
            "key": "FRS-23",
            "summary": "There is no error returned."
          }
        ],
        "testRunStepAttachments": []
      },
      {
        "id": 15255,
        "status": "Not Tested",
        "step": "Choose any ticket and click on 'Purchase' button.",
        "expectedResult": "It redirects to 'Purchase' page.",
        "testRunStepAttachments": [
          {
            "id": 64,
            "fileName": "FF_Only_Test_Plan_Failed_Expand_Test_Case_Member.jpg",
            "mimeType": "image/jpeg"
          }
        ]
      },
      {
        "id": 15256,
        "status": "Not Tested",
        "step": "Specify a valid bank from which the card was issued in 'Bank Name' textbox.",
        "expectedResult": "",
        "testRunStepAttachments": []
      },
      {
        "id": 15257,
        "status": "Not Tested",
        "step": "Click 'Validation' button.",
        "expectedResult": "A confirmation message 'Bank Validation Passed' pops up.",
        "testRunStepAttachments": []
      },
      {
        "id": 15258,
        "status": "Not Tested",
        "step": "Specify an invalid bank in 'Bank Name' textbox.",
        "expectedResult": "",
        "testRunStepAttachments": []
      },
      {
        "id": 15259,
        "status": "Not Tested",
        "step": "Click 'Validation' button.",
        "expectedResult": "An error message 'Bank Name is not valid!' pops up.",
        "testRunStepAttachments": []
      }
    ],
    "testRunHistory": [
      {
        "executorName": "cma",
        "activity": "Passed",
        "executionTime": 1491451955420,
        "activityType": "Status",
        "testRunId": 3174
      },
      {
        "executorName": "cma",
        "activity": "Blocked",
        "executionTime": 1491453658080,
        "activityType": "Status",
        "testRunId": 3174
      },
      {
        "executorName": "cma",
        "activity": "+ FRS-23",
        "executionTime": 1491453658085,
        "activityType": "Issue",
        "testRunId": 3174
      },
      {
        "executorName": "cma",
        "activity": "Failed",
        "executionTime": 1491453907130,
        "activityType": "Status",
        "testRunId": 3174
      },
      {
        "executorName": "cma",
        "activity": "+ FRS-24",
        "executionTime": 1491453907184,
        "activityType": "Issue",
        "testRunId": 3174
      }
    ],
    "testRunBugs": [
      {
        "id": 15723,
        "key": "FRS-24",
        "summary": "System is down, testing is blocked."
      },
      {
        "id": 15722,
        "key": "FRS-23",
        "summary": "There is no error returned."
      }
    ],
    "testRunAttachments": [
      {
        "id": 63,
        "fileName": "Requirement_Issue_Create_Test_Case_in_Detail_View.jpg",
        "mimeType": "image/jpeg"
      }
    ],
    "nextRunId": 3175
  },
  "testCaseId": 15713
}

 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 /rest/synapse/latest/public/testRun/{testCaseIssueKey}/testRuns

EXAMPLE

JS
[
    {
        "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

返回指定时间段内的测试执行信息

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

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

 RESPONSE

JS
[
    {
        "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

更新测试执行结果

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

注意:如果要更新”执行属性“信息的话,需要手动创建”执行属性“及其值。

REQUEST

JS
{
"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

更新测试执行的步骤结果

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

JS
{ 
  "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

根据runid更新测试执行结果

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

REQUEST

JS
{
	"runId":"3174", "result":"Failed", "comment":"Updated through REST API", "bugs":["FRS-24"]
}

 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

更新多个测试执行的测试结果

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

REQUEST

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

 

JS
{
	"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

向测试执行链接缺陷

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

REQUEST

JS
{
"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

向测试执行添加附件

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

向测试执行的步骤添加附件

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

从测试执行创建一个新的缺陷

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

REQUEST

JS
{
	"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

JS
{
  "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

从测试执行的步骤创建一个新的缺陷

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

REQUEST

JS
{
	"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

JS
{
  "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 /rest/synapse/latest/public/testRun/defects/runId

RESPONSE

JS
[
  {
    "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 /rest/synapse/latest/public/attachment/{runId}/getAttachmentDetails

RESPONSE

JS
[
  {
    "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 /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

测试用例资源

创建新的测试用例以及用例步骤

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

REQUEST

JS
{
  "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

JS
{
  "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

从测试用例集中创建测试用例

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

JS
{
  "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

JS
{
    "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

将测试用例链接到已有的测试用例集中

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

JS
{
	"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

向测试用例添加新的步骤

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

REQUEST

JS
[
 { "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

JS
[
  {
    "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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/steps

EXAMPLE

JS
[
  {
    "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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/linkedTestSuites

EXAMPLE

JS
{
    "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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/linkedTestPlans

EXAMPLE

JS
{
    "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

在测试用例中添加”测试引用“信息

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

JS
{
	"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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/automationReference

EXAMPLE

JS
{
    "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

通过ID更新测试用例的步骤信息

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

REQUEST

JS
{"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

根据测试用例步骤的sequenceNumber(序号)更新步骤信息

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

REQUEST

JS
{ "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

根据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

根据测试用例中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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/linkedRequirements

 RESPONSE

JS
[
  {
    "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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/deleteLinkedRequirements

REQUEST

JS
{"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

从测试用例创建随机测试执行

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

RESPONSE

JS
{
  "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 the Test Case is 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 testCaseIssueKey provided is not found

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

从测试用例返回随机测试执行的详细信息

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

RESPONSE

JS
[
  {
    "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 /rest/synapse/latest/public/testCase/{testCaseIssueKey}/getDefects

RESPONSE

JS
[
  {
    "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

需求资源

向需求关联一个子级需求

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

REQUEST

JS
{"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 /rest/synapse/latest/public/requirement/{requirementIssueKey}/getChildren

 RESPONSE

JS
[
  {
    "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 /rest/synapse/latest/public/requirement/{requirementIssueKey}/getOnlyImmediateChildren

 RESPONSE

JS
[
  {
    "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

向一个需求关联测试用例

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

REQUEST

JS
{
"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 /rest/synapse/latest/public/requirement/{requirementIssueKey}/linkedTestCases

 EXAMPLE

JS
[
  {
    "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 /rest/synapse/latest/public/requirement/{requirementIssueKey}/deleteLinkedTestCases

REQUEST

JS
{ "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 /rest/synapse/latest/public/requirement/{requirementIssueKey}/getDefects

RESPONSE

JS
[
  {
    "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

返回项目中的所有需求集信息

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

RESPONSE

JS
{
    "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 /rest/synapse/latest/public/requirement/requirementSuite/{suiteId}

RESPONSE

JS
{
    "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 /rest/synapse/latest/public/requirement/{requirementIssueKey)/linkedRequirementSuites

RESPONSE

JS
{
    "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

缺陷资源

从一个缺陷返回所有涉及到的测试执行

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

RESPONSE

JS
[
  {
    "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

其它资源

返回指定测试周期版本(Build)中报告的缺陷

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

RESPONSE

JS
[
  {
    "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

返回指定测试周期环境(Environment)中报告的缺陷

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

RESPONSE

JS
[
  {
    "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

创建测试用例集

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

REQUEST

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

 RESPONSE

JS
{
    "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 /rest/synapse/latest/public/testSuite/{projectKey}/testSuites

RESPONSE

JS
[
    {
        "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 /rest/synapse/latest/public/testSuite/testSuite/{suiteId}

RESPONSE

JS
{
    "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

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.