Working Sample
Please look at Sample projects and Code snippets 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 for your selected project.
2. Import test results
Import process is divided into 3 sections.
- Get Upload file URL : This API gets all required test automation details from the user and responds with a URL to upload the results.
- Upload your test result file to generated URL : This API is used to upload the automation results file and imports test results.
- 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://qtmcloud.qmetry.com/rest/api/automation/importresult
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.
Request Parameters
Parameter | Type | Required | Description | Default |
---|---|---|---|---|
format | string | Yes | Format of result file to be imported. Supported formats:
| NA |
testCycleToReuse | string | No | Issue Key of the test cycle to be reused | NA |
environment | string | No | Name of the environment on which test cycle has to be executed | No Environment |
build | string | No | Name of the build for test case execution | Blank |
isZip | boolean | No (Yes for QAF) | Pass true for ZIP upload or pass false for single file upload | false |
attachFile | boolean | No | Pass true to upload attachments in execution. For more details, Refer automation help documents. This parameter is supported only for-
| false |
fields | JSON | No | 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 Fields
Supported Fields | Type | Test Cycle | Test Case | Default | Comment |
---|---|---|---|---|---|
labels | array | Yes | Yes | null | |
components | array | Yes | Yes | null | |
status | string | Yes | Yes | TO DO | |
priority | string | Yes | Yes | Medium | |
fixVersionId | number | Yes | Yes | null | |
sprintId | number | Yes | Yes | null | |
summary | string | Yes | No | Automated Test Cycle | |
description | string | Yes | Yes | null | |
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 |
|
Sample Request
{ "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", "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
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://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" } |
| 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":"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" } |
2.2 Upload test result file
This API is used to upload the automation results file and imports test results.
URL : {{URL generated from step 1}}
Method : PUT
Content-Type : multipart/form-data
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 raw payload, form-data is not supported.
Responses
Response | Description |
---|---|
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
<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
<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>
|
2.3 Check Progress
This API is used to check the progress of automation result import.
GET
application/json
apiKey : Get API Key
Responses
Response | Description |
---|---|
SUCCESS | 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":[ ], "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
{ "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}" }
|
3. View imported test results
Please refer to View Imported Test Results section to view imported test results.