Create Requirements
Create a requirement tree in the release node
Use the following operation:
POST /flex/services/rest/latest/requirementtree/add
Request format
To create a requirement in a release node, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/requirementtree/add
Request body
{ "name": "Node1", "description": "", "type": "req", "releaseIds": [ "1" ], "parentId": 0, "projectId": 1 }
parentId - pass 0 when creating under the release node.
releaseIds - the ID of the release where the requirement folder should be created.
Response body
{ "id" : 7, "name" : "Node1", "description" : "", "projectId" : 1, "parentId" : 0, "categories" : [ ], "requirements" : [ ], "releaseIds" : [ 1 ], "releaseId" : 1, "type" : "req" }
Create a requirement tree sub-folder
Use the following operation:
POST /flex/services/rest/latest/requirementtree/add
Request format
To create a requirement tree sub-folder, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/requirementtree/add
Request body
{ "name": "Sub Folder", "description": "", "type": "req", "releaseIds": [ "1" ], "parentId": 7, "projectId": 1 }
parentId - pass the ID of the parent folder where a sub-folder should be created.
Response body
{ "id" : 8, "name" : "Sub Folder", "description" : "", "projectId" : 1, "parentId" : 7, "categories" : [ ], "requirements" : [ ], "releaseIds" : [ 1 ], "releaseId" : 1, "type" : "req" }
Create a requirement
Use the following operation to create a requirement in Zephyr Enterprise:
POST /flex/services/rest/latest/requirement
Request format
To create a requirement, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/requirement
Request body
{ "requirementTreeId": 7, "name": "Untitled requirement", "details": "requirement details", "createdBy": 1, "lastModifiedBy": 1, "requirementType": 0, "testcaseIds": [], "releaseIds": [ 1 ], "customProperties": null }
requirementTreeId - the ID of the tree where the requirement will be created.
Response body
{ "customProperties" : { }, "customProcessedProperties" : { }, "id" : 1, "requirementTreeId" : 7, "name" : "Untitled requirement", "details" : "requirement details", "createdOn" : 1594991430176, "reqCreationDate" : "07/17/2020", "createdBy" : 1, "lastModifiedBy" : 1, "lastModifiedOn" : 1594991430206, "createDatetime" : 1594991430195, "requirementType" : 0, "testcaseIds" : [ ], "testcaseVersionIds" : [ ], "releaseIds" : [ 1 ], "requirementTreeIds" : [ 7, 9 ], "requirementReleaseTestcaseCountMapping" : [ ], "projectId" : 1, "customFieldProcessed" : false, "customFieldValues" : [ ], "releaseNames" : [ ], "isBddSupported" : false, "actualTestcaseIds" : [ ] }
Update a requirement
Use the following operation to update a requirement in Zephyr Enterprise:
PUT /flex/services/rest/latest/requirement/{id}
{id} - the requirement ID.
Request format
To update a requirement, send a PUT request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/requirement/{id}
Sample request body
{ "attachmentCount": 0, "actualTestcaseIds": [], "requirementTreeId": 7, "name": "Updated Requirement", "details": "requirement details", "externalId": "AltId:1", "url": "http://localhost/", "priority": 1, "id": 1, "releaseIds": [ "1" ], "customProperties": {}, "customProcessedProperties": {}, "createdBy": 1, "createdOn": 1594924200000, "reqCreationDate": "07/17/2020", "testcaseIds": [], "requirementType": 0, "requirementReleaseTestcaseCountMapping": [], "projectId": 1 }
Sample response
1
Link the test case to requirements
You can do this in one of the following ways:
Map a single test case to a single requirement
Use the following operation:
POST /flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
testcaseid - the ID of the test case.
releaseid - the release ID.
Request format
To map a single test case to a single requirement, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
Sample request
{ "modRequirementTree": [ [ 10, 0 ] ], "testcaseid": 192, "modRequirement": [ [ 10, 2 ] ], "releaseId": 4 }
In this request, 10
is the requirement tree ID, and 2
is the requirement ID.
Sample response
[ 2 ]
Map a single test case to multiple requirements
Use the following operation:
POST /flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
testcaseid - the ID of the test case.
releaseid - the release ID.
Request format
To map a single test case to multiple requirements, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
Sample request
{ "modRequirementTree": [ [ 10, 0 ] ], "testcaseid": 25, "modRequirement": [ [ 10, 2 ], [ 10, 3 ] ], "releaseId": 4 }
In this request, 10
is the requirement tree ID; 2
and 3
are requirement IDs.
Sample response
[ 2, 3 ]
Map a single test case to requirements from multiple nodes
Use the following operation:
POST /flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
testcaseid - the ID of the test case.
releaseid - the release ID.
Request format
To map a single test case to requirements from multiple nodes, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
Sample request
{ "modRequirementTree": [ [ 10, 0 ], [ 11, 0 ] ], "testcaseid": 26, "modRequirement": [ [ 10, 4 ], [ 11, 7 ] ], "releaseId": 4 }
In this request, 10
and 11
are requirement tree IDs. 4
and 7
are requirement IDs.
Sample response
[ 4, 7 ]
Map multiple test cases to multiple requirements
Use the following operation:
POST /flex/services/rest/latest/testcase/allocate/requirement?releaseid={id}&tcrCatalogTreeId={id}
Request format
To map multiple test cases to multiple requirements, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/testcase/allocate/requirement?releaseid={id}&tcrCatalogTreeId={id}
releaseid - the release ID.
tcrCatalogTreeId - the ID of the tree where the test case resides.
Sample request
{ "selectedAll": 1, "modRequirementTree": [ [ 11, 0 ], [ 10, 0 ] ], "testcaseids": [ 196, 195 ], "modRequirement": [ [ 10, 5 ], [ 10, 6 ] ], "releaseId": 4, "override": false }
testcaseid - the ID of the test case.
10
and 11
are requirement tree IDs. 5
and 6
are requirement IDs.
Sample response
{ "195" : [ 5, 6 ], "196" : [ 5, 6 ] }
Map a single test case to the entire Requirements node
Use the following operation:
POST /flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
Request format
To map a single test case to the entire Requirements node, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/testcase/allocate/requirement/{testcaseid}?releaseid={id}
testcaseid - the ID of the test case.
releaseid - the ID of the release.
Sample request
{ "modRequirementTree": [ [ 10, 0 ], [ 11, 2 ] ], "testcaseid": 198, "modRequirement": [], "releaseId": 4 }
In [11, 2]
, 2
is specified to map the entire node.
In [10, 0]
, 0
indicates that no requirement is mapped to the test case in the node with the ID 10.
Sample response
[ 7, 8, 9, 10, 11 ]
Synchronize requirements
Use the following operation to synchronize requirements in Zephyr Enterprise:
POST /flex/services/rest/latest/externalrequirement/importall?projectId={id}
projectId - the ID of the project.
Request format
To synchronize requirements, send a POST request to the following URL:
http://{ZEPHYR-SERVER}/flex/services/rest/latest/externalrequirement/importall?projectId={id}
Sample request
{ "projectId": 1, "importExternalRequirementDTO": { "projectId": 1, "topFolderName": "", "jiraSync": true }, "searchStringDTO": { "searchString": "Project = \"zs-development\"" }, "filterSearch": false, "filterName": "", "filterId": null, "jiraSyncId": "", "releaseId": "1", "bugs": [], "importAll": true }
searchString - a Jira query for importing requirements.
Sample response
Successfully imported total 19 requirements