Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleWorking Sample

Please look at Sample projects and Code snippets sections for a more concrete end-to-end example.

...

Method : POST

REQUEST HEADER :

Content-Type : application/json

{generated-api-key}

Notes

  • zip file must contain files of same format given in the 'format' param.
  • Request must be contains json raw body payload, form-data is not supported.

...

ParameterTypeRequiredDescriptionDefault
formatstringYesFormat of result file to be imported. Supported formats:
  1. CUCUMBER 
  2. TESTNG 
  3. JUNIT 
  4. QAF 
  5. HPUFT 
  6. SPECFLOW
NA
testCycleToReusestringNoIssue Key of the test cycle to be reusedNA
environmentstringNoName of the environment on which test cycle has to be executedNo Environment
buildstringNoName of the build for test case executionBlank
isZipbooleanNo (Yes for QAF)Pass true for ZIP upload or pass false for single file uploadfalse
attachFilebooleanNo

Pass true to upload attachments in execution. For more details, Refer automation help documents.

This parameter is supported only for-

  • QAF
  • Cucumber
false
fieldsJSONNo

Provide additional fields to be added on test case or test cycle level. Refer to following table for more.

Note : If cycle is reused, fields of test cycle will be ignored.

Blank

...

Supported FieldsTypeTest CycleTest CaseDefaultComment
labelsarrayYesYesnull
componentsarrayYesYesnull
statusstringYesYesTO DO
prioritystringYesYesMedium
fixVersionIdnumberYesYesnull
sprintIdnumberYesYesnull
summarystringYesNoAutomated Test Cycle

description

string

Yes

Yes

null


preconditionstringNoYesnull

assignee

string

Yes

Yes

Account Id of current User


Valid User Account Id

reporter

string

Yes

Yes

Account Id of current User


Valid User Account Id

estimatedTime

string

No

Yes

null


Pass time in ‘HH:mm’ format

plannedStartDate

string

Yes

No

null

Pass date in 'dd/MMM/yyyy HH:mm' format

plannedEndDate

string

Yes

No

null

Pass date in 'dd/MMM/yyyy HH:mm' format

customFields

array

Yes

Yes

null

  • This array contains JSON object which has name and value property.

  • name property represents name of custom field, user can get it from custom fields screen inside configuration menu.

  • value property represents value of custom field.

    • For Date type custom field, pass value in 'dd/MMM/yyyy' format.

    • For DateTime type custom field, pass value in 'dd/MMM/yyyy HH:mm' format.

    • For Number type custom field, pass any numeric value

    • For Single option custom field like Radio button, Single Dropdown etc, pass option value as string. Ex. 'high'

    • For Multi options custom field like Checkbox, Multi Dropdown etc, pass value as comma separated string. Ex. 'high,medium,low'

    • For Single User picker type custom field, pass Jira Account Id of the user and For Multi-User picker, pass a comma-separated Jira Account Id of users.
    • For Labels type custom field pass value as comma separated string. Ex. 'tag1,tag2'
    • For Cascade type custom field, Pass two level of values. "value" node represents Level 1 dropdown option and cascadeValue node represents Level 2 dropdown option. Ex. "value": "option1", "cascadeValue": "option1_A"

...

Code Block
{
    "format": "cucumber",
    "testCycleToReuse": "",
    "attachFile": true,
    "isZip": false,
    "environment": "",
    "build": "",
    "fields": {
        "testCycle": {
            "labels": [
                "label1",
                "label2"
            ],
            "components": [
                "component1"
            ],
            "priority": "High",
            "status": "To Do",
            "sprintId": "",
            "fixVersionId": "",
            "summary": "Test Cycle Summary Automation",
            "description": "Test Cycle Automation Description", 			
            "assignee": "557058:b50b7a9b-8826-4769-97c8-3338b8ba7f22",
            "reporter": "557058:416340c9-0308-4f49-a538-c9f5b164242d",
            "plannedStartDate": "15/May/2020 00:00",
            "plannedEndDate": "30/May/2020 00:00",
            "customFields": [{
                    "name": "Multi Check Box",
                    "value": "MCB 1,MCB 2"
                },
                {
                    "name": "Date Type",
                    "value": "29/May/2020"
                },
                {
                    "name": "Date time",
                    "value": "29/May/2020 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": "Single DropDown",
                    "value": "DD2"
                },
                {
                    "name": "Single line field",
                    "value": "QMetry Automation Testing using cucumber framework"
                },
                {
                    "name": "Single Radio Button",
                    "value": "Test C"
                }
            ]
        },
        "testCase": {
            "labels": [
                "label1",
                "label2"
            ],
            "components": [
                "component1"
            ],
            "priority": "High",
            "status": "To Do",
            "sprintId": "",
            "fixVersionId": "",
            "description": "Automated generated Test Case",
			"precondition": "Precondition of Test Case",
            "assignee": "557058:b50b7a9b-8826-4769-97c8-3338b8ba7f22",
            "reporter": "557058:416340c9-0308-4f49-a538-c9f5b164242d",
            "estimatedTime": "10:10",
            "customFields": [{
                    "name": "TC Multi DropDown",
                    "value": "Automation 1,Automation 2"
                },
                {
                    "name": "QA User RadioButton",
                    "value": "Sample user 2"
                }
            ]
        }
    }
}
       

...

Responses

ResponseDescription

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

Code Block
{
  "url":"https://qtmcloud.qmetry.com/automationuploads/1560145450482_f52a7866-a345-4cad-b93e-a930135868d7.json?X-Amz-Algorithm=AWS4-HMACSHA256&X-Amz-Date=20190610T054410Z&X-Amz-SignedHeaders=.....",
  "message": "Generated Upload URL is valid for one time use and will expire in 5 minutes.",
  "trackingId": "f52a7866-a345-4cad-b93e-a930135868d7"
}

 
STATUS 400

                                  

Returned if import fails

If unsupported framework is sent in request

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


If zip file is not sent in QAF framework request

Code Block
{  
  "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

Code Block
{  
  "status":400,
  "errorMessage":"Validation failed for fields.",
  "errors":[  
    "TestCase Components c1,c2 could not be found.",
    "TestCase Labels l1,l2 could not be found."
  ],
  "timestamp":"29/May/2019 12:44"
}


...

Responses

ResponseDescription

STATUS 200

Returned if file is uploaded successfully.
STATUS 403

Returned if file upload happens after URL expiration time or if Content-type=multipart/form-data header is not passed

Example

URL Expiry


Code Block
<Error>
    <Code>AccessDenied</Code>
    <Message>Request has expired</Message>
    <Expires>2017-02-27T12:34:11Z</Expires>
    <ServerTime>2017-02-27T13:40:54Z</ServerTime>
    <RequestId>3BCFE62FDD8F60D8</RequestId>
    <HostId>MXrdoCzy/BK2BdFdNFn613xa6jKegQpVpSzsC4CQhkk46f7Na+ImafoFHlN90FF2LiuupDr5x9U=</HostId>
</Error>


Signature Mismatch


Code Block
<Error>
    <Code>SignatureDoesNotMatch</Code>
    <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
    <Expires>2017-02-27T12:34:11Z</Expires>
    <StringToSign>PUT ...</StringToSign>
    <SignatureProvided>cijMZITZJuv8r5mvgqksssPcV5M=</SignatureProvided>
    <StringToSignBytes>50 55 ...</StringToSignBytes>
    <RequestId>cijMZITZJuv8r5mvgqksssPcV5M=</RequestId>
    <HostId>MXrdoCzy/BK2BdFdNFn613xa6jKegQpVpSzsC4CQhkk46f7Na+ImafoFHlN90FF2LiuupDr5x9U=</HostId>
</Error>

...

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


GET
application/json
apiKey : Get API Key

Responses

ResponseDescription

SUCCESS

Returned if parameters are validated successfully.

Example

Code Block
{  
    "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":[  
  
    ],
    "detailedMessage": "File Imported successfully.",
    "extraAttributes": {
        "build": "1.0.0 beta",
        "environment": "Chrome",
        "attachFile": false
    },
    "summary": {
        "testCycle": "Automated Test Cycle",
        "testCasesCreated": 2,
        "testCaseVersionsCreated": 3,
        "testCaseVersionsReused": 1,
        "testStepsCreated": 12,
        "testCycleIssueKey": "SAP-TR-3"
    }
  }


FAILED

Returned if any validation fails

Example


Code Block
{  
    "format":"QAF",
    "fileName":"1558945546874_840ba1e3-bf14-4f08-b19c-e5de6447711b.zip",
    "processStatus":"VALIDATION/PARSING/CREATING_ASSETS/SUCCESS",
    "importStatus":"FAILED",
    "startTime":"2019-05-27T08:25:47.000+0000",
    "endTime":null,
    "fileSize":1500,
    "trackingId":"840ba1e3-bf14-4f08-b19c-e5de6447711b",
    "files":[  
  
    ],
    "detailedMessage":"{some detail message about current status of file}"
  }

...