Import Results using Rest API

Working Sample

Please look at Sample Projects for Automation sections for a more concrete end-to-end example.

1. Use API Key for Importing Results

Please Generate API Key if you don't have it for your selected project.

2. Import test results

The import process is divided into three sections.

  1. Get Upload file URL: This API gets all required test automation details from the user and responds with a URL to upload the results.

  2. Upload your test result file to the generated URL: This API is used to upload the automation results file and import test results.

  3. Check Progress: This API is used to check the progress of automation result import.

2.1 Get Upload file URL

This API gets all required test automation details from the user and responds with a URL to upload the results.

URL : https://{{Jira base URL}}/rest/qtm4j/automation/latest/importresult

Method : POST

REQUEST HEADER :

  • Content-Type: application/json

  • apiKey:

    {generated-api-key}

  • Authorization: This Automation REST API is protected by the same restrictions that are provided via JIRA. This means that you need to log in to JIRA to access this API.

Option 1:

To supply a basic Auth header, perform the following steps:

1. Build a string of the form username:password

Password: Password refers to the API token generated from the API Token Authentication for Jira app.

{
    "format": "cucumber",
        "testCycleToReuse":"TR-PRJ-1",
    "attachFile": true,
    "isZip": false,
    "environment": "Chrome",
    "build": "4.1.0",
        "matchTestSteps": true,
    "fields": {
        "testCycle": {
            "labels": [
                "label1",
                "label2"
            ],
            "components": [
                "component1"
            ],
            "priority": "High",
            "status": "To Do",
                        "folderPath":"F1/F2/F3",
            "summary": "Test Cycle Summary Automation with custom fields",
            "description": "Test Cycle Automation Description",
            "assignee": "JIRAUSER11801",
            "reporter": "JIRAUSER11600",
            "plannedStartDate": "20/May/2021 00:00",
            "plannedEndDate": "30/May/2021 00:00",
            "customFields": [{
                    "name": "Check Boxes",
                    "value": "MCB 1,MCB 2"
                },
                {
                    "name": "Date picker",
                    "value": "29/May/2021"
                },
                {
                    "name": "Date time picker",
                    "value": "29/May/2021 14:55"
                },
                {
                    "name": "Multi DropDown",
                    "value": "MDD 2,MDD 1"
                },
                {
                    "name": "Multi line text field",
                    "value": "QMetry Automation Testing using cucumber framework "
                },
                {
                    "name": "Number field",
                    "value": 1234567890
                },
                {
                    "name":"Cascade Drop down",
                    "value":"User Details", "cascadeValue": "Email"
                },
                {
                    "name": "Single DropDown",
                    "value": "DD2"
                },
                {
                    "name": "Single line Textbox",
                    "value": "QMetry Automation Testing using cucumber framework"
                },
                {
                    "name": "Custom Radio Button",
                    "value": "Test C"
                },
                {
                    "name":"Single User Picker",
                    "value":"JIRAUSER11600"
                },
                {
                    "name":"Multiple user picker field",
                    "value":"JIRAUSER11801,JIRAUSER11800,JIRAUSER11702"
                },
                 {
                    "name":"Custom field type Label for Test Cycle",
                    "value":"TestLabel"
                }
            ]
        },
        "testCase": {
            "labels": [
                "label1",
                "label2"
            ],
            "components": [
                "component1"
            ],
            "priority": "High",
            "status": "To Do",
                        "folderPath":"F1/F2/F3",
            "sprintId": "1000",
            "fixVersionId": "10000",
            "description": "Automated generated Test Case",
                        "precondition": "Precondition of Test Case",
            "assignee": "JIRAUSER11702",
            "reporter": "JIRAUSER11800",
            "estimatedTime": "10:10",
            "customFields": [{
                    "name": "Check Boxes",
                    "value": "MCB 1,MCB 2"
                },
                {
                    "name": "Date Picker",
                    "value": "29/May/2021"
                },
                {
                    "name": "Date Time Picker",
                    "value": "29/May/2021 14:55"
                },
                {
                    "name": "Multi DropDown",
                    "value": "MDD 2,MDD 1"
                },
                {
                    "name": "Multi line text field",
                    "value": "QMetry Automation Testing using cucumber framework "
                },
                {
                    "name": "Number field",
                    "value": 1234567890
                },
                {
                    "name":"Cascade Drop down",
                    "value":"User Details", "cascadeValue": "Email"
                },
                {
                    "name": "Single DropDown",
                    "value": "DD2"
                },
                {
                    "name": "Single Line Textbox",
                    "value": "QMetry Automation Testing using cucumber framework"
                },
                {
                    "name": "Radio Buttons",
                    "value": "Test C"
                },
                {
                    "name":"Single User Picker",
                    "value":"JIRAUSER11600"
                },
                {
                    "name":"Multiple User Picker",
                    "value":"JIRAUSER11801,JIRAUSER11800,JIRAUSER11702"
                },
                {
                    "name":"Custom Labels for Test Case",
                    "value":"TestLabel"
                }
            ]
                },
        "testCaseExecution":{
                "comment": "Test Case Execution Comment",
                "actualTime": "10:10",
                        "executionPlannedDate": "16/Feb/2024",
                "assignee": "{Valid User Account Key}"
                "customFields": [
            {
              "name": "custom field 1",
              "value": "high,medium,low"
            },
            {
              "name": "custom field 2",
              "value": 10.12
            }
                ]
       }
    }
} 

Responses

Response

Description

STATUS 200

Returned if results file is uploaded successfully. The import process might take a while and you would be notified (by email or checking the status of the created test run) once the process completed.

Example

{
    "url": "https://{{jira base url}}/rest/qmetry/automation/latest/importresult/submitFile?trackingId=3d19c19d-935c-4d08-b3de-74a38b5042a0",
    "trackingId": "3d19c19d-935c-4d08-b3de-74a38b5042a0"
}

STATUS 400

Returned if import fails

If unsupported framework is sent in request

{
  "status":400,
  "errorMessage":"Framework ‘xyz’ is not supported.",
  "timestamp":"28/May/2019 04:58"
}

If zip file is not sent in QAF framework request

{  
  "status":400,
  "errorMessage":"Zip file format is required for QAF framework.",
  "timestamp":"28/May/2019 05:00"
} 

If one or more fields have invalid value

{
      "status":400,
      "errorMessage": "The supplied fields are invalid",
      "errors":[
        "Provided Component Name(s) xyz not found ",
        "Provided Label Name(s) xyz not found"
      ],
      "timestamp":"29/May/2019 12:44"
}

2.2 Upload test result file

This API is used to upload the automation results file and import test results.

URL : {{URL generated from step 1}}

Method : POST

Request Header

  • Content-Type : multipart/form-data

  • apiKey:

    {generated-api-key}

  • Authorization :

    Basic ZnJlZDpmcmVk

Request Body - Binary : Your result file to be uploaded. Supported file extensions: .json, .xml and .zip (zip file must contain files of the format given in the 'format' param).

Note: File Attachment must be passed in form-data.

Responses

Response

Description

STATUS 204

Returned if the file is uploaded successfully.

2.3 See Progress

This API is used to check the progress of automation result import.

URL: https://{{Jira base url}}/rest/qmetry/automation/latest/importresult/track?trackingId={{trackingId from import result step}} Methood:GET

  • Content-Type:application/json

  • apiKey : {generated-api-key}

  • Authorization :

    Basic ZnJlZDpmcmVk

Responses

Response

Description

STATUS 200

Returned if parameters are validated successfully.

Example

{  
    "format":"QAF",
    "fileName":"1558945546874_840ba1e3-bf14-4f08-b19c-e5de6447711b.zip",
    "processStatus":"VALIDATION/PARSING/CREATING_ASSETS/SUCCESS",
    "importStatus":"SUCCESS/INPROCESS/FAILED",
    "startTime":"2019-05-27T08:25:47.000+0000",
    "endTime":null,
    "fileSize":1500,
    "trackingId":"840ba1e3-bf14-4f08-b19c-e5de6447711b",
    "files":[]
}

STATUS 400

Returned in invalid trackingId

If trackingId is invalid

Example

{
  "status":404,
  "errorMessage":"No import details found for given tracking id '840ba1e3-bf14-4f08-b19c-e5de6447711b'",
  "timestamp":"02/Apr/2020 16:19"
}
                                       
                                    

3. View imported test results

Publication date: