Test Automation API Documentation

Zephyr for Jira is now Zephyr Squad! Read more about this

Zephyr for Jira is now Zephyr Squad! Read more about this

Prerequisites

  1. Create a project and add the issue type Test to the project.

  2. Retrieve an access key and a secret key. This can be done by navigating to the Zephyr menu and clicking on API keys.

Limitations

  • You cannot create test automation tasks for the Cucumber framework.

  • You cannot get the status of a single automation task.

  • ZBot jobs cannot be created through the API.

Test Automation API Details and Functions

Generate JWT Token

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/jwt/generate

Request Header: Content-Type: application/json

Request Method: POST

Request Body:

1 2 3 4 5 { "accessKey":"MDc0MzMwNDMtMTMyYi0zYTVjLWIwYzAtNjg2OTJiMTIwNDVjIDU1NzA1OCUzQWY0YTc5MzEyLTZhMmQtNDAxOS05ZDFlLTcwMTMyYTI2MWUyNiBVU0VSX0RFRkFVTFRfTkFNRQ", "secretKey":"SwZP386jHYMADQMAsIX3ZgsO7BGjfYx6FxVWU6gdknM", "accountId":"557058:f4a79312-6a2d-4019-9d1e-70132a261e26" }

Response Body:

1 JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NTcwNTg6ZjRhNzkzMTItNmEyZC00MDE5LTlkMWUtNzAxMzJhMjYxZTI2IiwicXNoIjoiNzhmMDM2NzNjYWMzNDUxMjc5NDA5YTIyYjhmYWViNjFhNDQ1MzQzMDFiNDVhNDA0NGI2ODlmNmU1NjQwMzQzZCIsImlzcyI6Ik1EYzBNek13TkRNdE1UTXlZaTB6WVRWakxXSXdZekF0TmpnMk9USmlNVEl3TkRWaklEVTFOekExT0NVelFXWTBZVGM1TXpFeUxUWmhNbVF0TkRBeE9TMDVaREZsTFRjd01UTXlZVEkyTVdVeU5pQlZVMFZTWDBSRlJrRlZURlJmVGtGTlJRIiwiZXhwIjoxNTgyNTQ3MTk4LCJpYXQiOjE1ODI1NDM1OTh9.nwHTVBIsKQr1wQ_ppGDyf2UBoVxCwUfNx2iu8z_y2fE

Create Automation Task

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/create

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: POST

Request Body:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 jobName:Job1 automationFramework:JUNIT cycleName:Cycle1 folderName:Folder1 appendDateTimeInCycleName:true/false appendDateTimeInFolderName:true/false versionName:Unscheduled projectKey:{projectKey} cycleStartingDate: cycleEndingDate: createNewCycle:true/false createNewFolder:true/false file:result.zip assigneeUser:assignee accountId jobDescription:Descriptions

Response Body:

1 2 3 { "message": "Job has been successfully created, Job id is : 726FAE2BD1280BCED437FE7582885F7CB1FE97C1A8D10ADEF6F1B1D239A51642" }

Execute Automation Task

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/execute

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: POST

Request Body:

1 jobId:{jobId}

Response Body:

1 2 3 { "message": "Job executed successfully." }

Update Automation Task

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/update

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: PUT

Request Body:

1 2 3 4 5 6 7 8 9 10 11 12 13 jobId:{jobId} jobName:Job-edited automationFramework:JUNIT cycleName:Cycle1 folderName:Folder1 versionName:Unscheduled cycleStartingDate: cycleEndingDate: createNewCycle:true/false createNewFolder:true/false file:result.zip assigneeUser:assignee accountId jobDescription:Descriptions

Response Body:

1 2 3 { "message": "Job has been successfully updated, Job id is : FAE1F0594E94069F9A8FCD80278EEA06818D671C6A46C397FE141F0B21D3A5F4" }

Get Automation Task Status

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/status/{JobId}

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: GET

Request Body: N/A

Response Body:

1 2 3 4 5 For a Successful Job: SUCCESS For a Failed Job:FAIL For a InProgress Job:IN PROGRESS

Get All Automation Tasks

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/list/{projectKey}

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: GET

Request Body: N/A

Response Body:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 { "jobName": "job11", "agentId": null, "jobDescription": " !@#$%^&*((()*)(*)(**(&(*&(*&*", "projectId": 10033, "versionId": 10067, "modifiedDate": null, "createdDate": 1582529598679, "automationFramework": "Test_Ng", "scriptPath": null, "invokeScript": null, "resultPath": null, "manualRun": null, "createPackage": false, "cycleName": "uftJOB1", "cycleId": null, "folderName": null, "folderId": null, "assigneeUser": "557058:621c5f3d-5d5b-40d6-85e8-0005f93349c6", "assigneeDisplayName": "Zephyr QA", "assigneeName": "Zephyr QA", "cycleStartDate": 1580544000000, "cycleEndDate": 1582272000000, "executionStatus": null, "currentStatus": "UNEXECUTED", "setFromFileWatcher": false, "automationVia": "Upload", "fileName": "UFT_Report_1002D4670BE84E75891B7D0B5B6B4542D6374D3BA6E5471316AB359896318E2816.xml", "fileDisplayName": "UFT_Report_10.xml", "accessKey": "MDc0MzMwNDMtMTMyYi0zYTVjLWIwYzAtNjg2OTJiMTIwNDVjIDU1NzA1OCUzQWY0YTc5MzEyLTZhMmQtNDAxOS05ZDFlLTcwMTMyYTI2MWUyNiBVU0VSX0RFRkFVTFRfTkFNRQ", "secretKey": "SwZP386jHYMADQMAsIX3ZgsO7BGjfYx6FxVWU6gdknM", "userKey": "557058:f4a79312-6a2d-4019-9d1e-70132a261e26", "accountId": "557058:f4a79312-6a2d-4019-9d1e-70132a261e26", "projectKey": null, "versionName": null, "agentName": null, "assigneeUserName": null, "createNewCycle": null, "createNewFolder": null, "jobId": null, "cycleStartingDate": null, "cycleEndingDate": null, "ctId": "6b855e21-46e7-4d35-810a-81482ef444c8", "autoJobId": "02D4670BE84E75891B7D0B5B6B4542D6374D3BA6E5471316AB359896318E2816" }

Delete Single Automation Task

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/{jobId}

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: DELETE

Request Body: N/A

Response Body:

1 Job has been deleted successfully.

Delete All Automation Tasks

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/delete/{projectKey}

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: DELETE

Request Body: N/A

Response Body:

1 All job has been deleted successfully.

Update Automation Task Status

Request URL: https://prod-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/status

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: PUT

Request Body:

1 2 jobId:{jobId} jobStatus:FAIL/SUCCESS/INPROGRESS

Response Body:

1 Status has been updated successfully.

Delete Multiple Automation Tasks at a Time

Request URL: https://qabench-vortexapi.zephyr4jiracloud.com/api/v1/automation/delete/jobs

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: DELETE

Request Body:

1 2 jobId:{jobId1,jobId2,jobId3} projectKey:{projectKey}

Response Body:

1 All job has been deleted successfully.

Get a Single Automation Task Information

Request URL: https://qabench-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/{jobId}

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: GET

Request Body: N/A

Response Body:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 { "jobName": "z2", "agentId": "C87B9520099B61E78CB76AD434327E67234B0E3C6514A389A26300302CD699C2", "jobDescription": null, "projectId": 10004, "versionId": -1, "modifiedDate": null, "createdDate": 1584970166331, "automationFramework": "Junit", "scriptPath": null, "invokeScript": null, "resultPath": "D:\\vortex\\Files\\Junit\\junit.xml", "manualRun": null, "createPackage": false, "cycleName": "junit cycle", "cycleId": "63d25096-5ebf-4b8d-be86-4461017824c3", "folderName": "folder", "folderId": "5a044524-441d-46f4-beba-6ce32232f98a", "assigneeUser": "557058:621c5f3d-5d5b-40d6-85e8-0005f93349c6", "assigneeDisplayName": "Zephyr QA", "assigneeName": "USER_DEFAULT_NAME", "cycleStartDate": 1584921600000, "cycleEndDate": 1584921600000, "executionStatus": "Job Executed Successfully", "currentStatus": "Success", "setFromFileWatcher": false, "automationVia": "ZBot", "fileName": null, "fileDisplayName": null, "accessKey": "NDhmYTExYzktYzQ4OS0zOWFjLThiM2YtZDk4MTUwNWI1NmY3IDU1NzA1OCUzQTYyMWM1ZjNkLTVkNWItNDBkNi04NWU4LTAwMDVmOTMzNDljNiBVU0VSX0RFRkFVTFRfTkFNRQ", "secretKey": "ZhYlrQ5V_3eoRVX8iSIEGl_g4UH1EFuBLss_GmNouDY", "userKey": "557058:621c5f3d-5d5b-40d6-85e8-0005f93349c6", "accountId": "557058:621c5f3d-5d5b-40d6-85e8-0005f93349c6", "projectKey": null, "versionName": null, "agentName": null, "assigneeUserName": null, "createNewCycle": null, "createNewFolder": null, "jobId": null, "cycleStartingDate": null, "cycleEndingDate": null, "modifiedBy": null, "createdBy": null, "executedOn": null, "autoScheduleDateTimePicker": null, "autoJobId": "8C688C99012BC87FE2855E4B458075FF17C3AD1B7CC82C68C4AEDA5986D34033", "ctId": "446d9d34-2597-4697-a7c2-d65cc66dd86c" }

Bulk Execute Automation Tasks

Request URL: https://qacloud-vortexapi.zephyr4jiracloud.com/api/v1/automation/bulk/job/execute

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: POST

Request Body:

1 2 jobId:{jobId1,jobId2,jobId3} projectKey:{projectKey}

Response Body:

1 Jobs are running

Save and Execute Automation Task

Request URL: https://qabench-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/saveAndExecute

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: POST

Request Body:

1 2 3 4 5 6 7 8 9 10 11 12 jobName:selenium automationFramework:Selenium (or any) cycleName:sele27api1 folderName:sele27api1 versionName:5.4.2 projectKey:NEW //cycleStartingDate:2020-02-20 (optional) //cycleEndingDate:2020-02-21 (optional) createNewCycle:false/true createNewFolder:false/true assigneeUser:assignee accountId //jobDescription:selenium job (optional)

Response Body:

1 2 3 { "message": "Job has been created & executed successfully" }

Update and Execute Automation Task

Request URL: https://qabench-vortexapi.zephyr4jiracloud.com/api/v1/automation/job/updateAndExecute

Request Header: accessKey: {accessKey} / jwt: {jwt}

Request Method: PUT

Request Body:

1 2 3 4 5 6 7 8 9 10 jobName: Selenium automationFramework:Selenium (or any) cycleName:sele27api1 folderName:sele27api1 versionName:5.4.2 projectKey:NEW createNewCycle:false/true createNewFolder:falsetrue jobId: {jobid} which job user wants to update and execute jobDescription:Descriptions

Response Body:

1 2 3 { "message": "Job has been updated & executed successfully" }

See Also

Test Automation
Import Cucumber Test Results
Continuous Integration