openapi: 3.2.0
info:
description: "[Introduction to qTest API Specification](https://documentation.tricentis.com/qtest/od/en/content/apis/overview/qtest_api_specification.htm) \n[How to use interactive API Doc](https://documentation.tricentis.com/qtest/od/en/content/apis/overview/how_to_use_interactive_api_documentation.htm)\n The bearer token can be found at `[qtestUrl/p/{projectId}/portal/project#tab=resource]` under the API & SDK tab."
version: v3.0
title: qTest Manager API Version 3.0 Test Run API
servers:
- url: https://apitryout.qtestnet.com/
tags:
- name: test-run
description: Test Run API
paths:
/api/v3/projects/{projectId}/test-runs:
get:
tags:
- test-run
summary: Gets multiple Test Runs
description: 'To retrieve all Test Runs under root or under a container (Release, Test Cycle or Test Suite)
<strong>qTest Manager version:</strong> 6+'
operationId: getOf
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container (Release, Test Cycle or Test Suite)
Input 0 (zero) to retrieve Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em> and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
- name: expand
in: query
description: Specify <em>expand=descendants</em> to include all Test Runs which are directly or indirectly under the container
required: false
schema:
type: string
- name: includeToscaProperties
in: query
description: "By default, Tosca properties of Test Run (imported from Tosca) are not included in the response. Specify includeToscaProperties=true to include them.\n\n <em>(tosca_guid, tosca_node_path, tosca_workspace_url, tosca_testevent_guid)</em>"
required: false
schema:
type: boolean
default: false
- name: page
in: query
description: By default the first page is returned but you can specify any page number to retrieve objects
required: false
schema:
type: integer
format: int64
default: 1
- name: pageSize
in: query
description: The result is paginated. By the default, the number of objects in each page is 100 if this is omitted. You can specify your custom number (up to 999) in this parameter
required: false
schema:
type: integer
format: int64
default: 100
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunListResource'
security:
- Authorization: []
post:
tags:
- test-run
summary: Creates a Test Run
description: 'To create a Test Run under root or a container (Release, Test Cycle or Test Suite)
<strong>qTest Manager version:</strong> 6+You can optionally specify a parent in the request parameter to create its test runs.
The associated Test Case is specified in the request body'
operationId: createTestRun
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
201:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
description: The Test Run's properties and its associated Test Case
required: true
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/dataset:
post:
tags:
- test-run
summary: Create multiple Test Runs with Parameter values from dataset.
description: To create multiple Test Runs with parameter values under root or a container (Release, Test Cycle or Test Suite). Number of test runs can be created depend on number_of_rows property and it should not more than 100.
operationId: addTestRunWithParametersDataset
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED, PENDING, and SUCCESS"
content:
application/json:
schema:
$ref: '#/components/schemas/QueueProcessingResponseTestRunDataVM'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithParameterCreateByDatasetResource'
description: "The Test Run's properties, its associated Test Case and specific data set \n\n<em>name (optional):</em> All test runs will be created with the same name if provided. If not provided, test run name = test case name + [increased number, starting from 1] \n\n<em>properties (optional):</em> All test runs will be created with the same property list if provided. If not provided, default property values will be used. \n\n<strong>test_case attributes:</strong>\n\n<em>id (required):</em> id of testcase \n\n<em>test_case_version_id (optional):</em> Version ID of Testcase. If not specify, latest value will be used. For shared test case, only accept approved version \n\n<em>dataset_id:</em> Dataset id use for generate test runs. Dataset must be active and contains all parameters inside all test case steps. Dataset has at least 1 data row. \n\n<em>from_row:</em> Must be less or equal max rows in dataset. \n\n<em>number_of_rows:</em> number of test run can be create must be less or equal ((max rows - from_row) +1) and must be less than <em>100</em>."
required: true
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/manually:
post:
tags:
- test-run
summary: Create multiple Test Runs with Parameter values manual
description: To create multiple Test Runs with parameter values under root or a container (Release, Test Cycle or Test Suite). Maximum number of test runs can be created is 100.
operationId: addTestRunWithParameters
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED, PENDING, and SUCCESS"
content:
application/json:
schema:
$ref: '#/components/schemas/QueueProcessingResponseTestRunDataVM'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithParameterCreateManualResource'
description: "The Test Run's properties, its associated Test Case and list of Test runs \n\n<em>name (optional):</em> All test runs will be created with the same name if provided. If not provided, test run name = test case name + [increased number, starting from 1] \n\n<em>properties (optional):</em> All test runs will be created with the same property list if provided. If not provided, default property values will be used. \n\n<strong>test_case attributes:</strong>\n\n<em>id (required):</em> id of testcase \n\n<em>test_case_version_id (optional):</em> Version ID of Testcase. If not specify, latest value will be used. For shared test case, only accept approved version \n\n<em>test_runs (required):</em> list of test runs will be created by this API. For each test run, it will have list of test steps (by providing test step id) and their parameter values for each step e.g.(\"description_parameter_values\", and \"expected_parameter_values\"). \n\n<strong>You no need to specify <em>combined_type</em> and <em>number_of_combinations</em> in this api.<strong>"
required: true
/api/v3/projects/{projectId}/test-runs/assign-parameter-values/randomize:
post:
tags:
- test-run
summary: Create multiple Test Runs with Parameter values random from selection combine type.
description: To create multiple Test Runs with parameter values under root or a container (Release, Test Cycle or Test Suite). Maximum number of test runs can be created depend on combine type.
operationId: addTestRunWithParametersRandomize
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container
Input 0 (zero) to get Test Runs directly under root'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em>, and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: "Submitted Test Runs, \n\nid: ID of the submission job. You will need this Id to check the job status using GET /api/v3/projects/queue-processing/{jobId}\n\nstate: Status of the job. Its value includes IN_WAITING, IN_PROCESSING, FAILED, PENDING, and SUCCESS"
content:
application/json:
schema:
$ref: '#/components/schemas/QueueProcessingResponseTestRunDataVM'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithParameterCreateRandomResource'
description: "The Test Run's properties, its associated Test Case and combine type, number of combination \n\n<em>name (optional):</em> All test runs will be created with the same name if provided. If not provided, test run name = test case name + [increased number, starting from 1] \n\n<em>properties (optional):</em> All test runs will be created with the same property list if provided. If not provided, default property values will be used. \n\n<strong>test_case attributes:</strong>\n\n<em>id (required):</em> id of testcase \n\n<em>test_case_version_id (optional):</em> Version ID of Testcase. If not specify, latest value will be used. For shared test case, only accept approved version \n\n<em>combined_type:</em> combine type for generate test runs with random test run value. Values can specify for this property are: <strong>1</strong> (for unique_value ) OR <strong>0</strong> (for unique_data ). \n\n<em>number_of_combinations:</em> number of test run can be create must be less or equal max possible created combinations based on selected combination_type and must less than <em>100</em>."
required: true
/api/v3/projects/{projectId}/test-runs/execution-statuses:
get:
tags:
- test-run
summary: Gets Test Run statuses
description: Gets Test Run statuses
operationId: getStatusValuable
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StatusResource'
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/subhierarchy:
get:
tags:
- test-run
summary: Gets a Sub Hierarchy
description: "To retrieve a Sub Hierarchy of a container (root, release, test-cycle) \n\n<strong>qTest Manager version:</strong> 9.3.4+"
operationId: getSubhierachy
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: parentType
in: query
description: parentType
required: false
schema:
type: string
- name: parentId
in: query
description: parentId
required: false
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationObjectTree'
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{idOrKey}/comments:
get:
tags:
- test-run
summary: Gets all Comments of a Test Run
description: 'To retrieve all Comments of a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: getTestRunComments
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResourceCommentResource'
security:
- Authorization: []
post:
tags:
- test-run
summary: Adds a Comment to a Test Run
description: 'To add a Comment to a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: addTestRunComment
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: The PID or ID of the Test Run.
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
description: The Comment's content
required: true
/api/v3/projects/{projectId}/test-runs/{idOrKey}/comments/{commentId}:
get:
tags:
- test-run
summary: Gets a Comment from a Test Run
description: 'To retrieve a specific Comment from a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: getTestRunCommentById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run.
required: true
schema:
type: string
- name: commentId
in: path
description: ID of the Comment
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
security:
- Authorization: []
put:
tags:
- test-run
summary: Updates a Comment of a Test Run
description: 'To update a Comment of a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: updateCommentById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run
required: true
schema:
type: string
- name: commentId
in: path
description: ID of the comment which you want to update.
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResource'
description: The Comment's updated content
required: true
delete:
tags:
- test-run
summary: Deletes a Comment of a Test Run
description: 'To delete a Comment of a Test Run
<strong>qTest Manager version:</strong> 7.5+'
operationId: deleteCommentById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: idOrKey
in: path
description: PID or ID of the Test Run.
required: true
schema:
type: string
- name: commentId
in: path
description: ID of the comment which you want to delete.
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/v3/projects/{projectId}/test-runs/{testRunId}:
get:
tags:
- test-run
summary: Gets a Test Run
description: 'To retrieve a Test Run
<strong>qTest Manager version:</strong> 4+'
operationId: getTestRunById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: testRunId
in: path
description: ID of the Test Run.
required: true
schema:
type: integer
format: int64
- name: expand
in: query
description: "Valid values include: \n\ni)<em>testcase</em> - to expand the associated Test Case in the response; \n\nii) <em>testcase.teststep</em> - to expand the associated Test Case and its Test Steps in the response"
required: false
schema:
type: string
- name: includeToscaProperties
in: query
description: "By default, Tosca properties of Test Run (imported from Tosca) are not included in the response. Specify includeToscaProperties=true to include them.\n\n <em>(tosca_guid, tosca_node_path, tosca_workspace_url, tosca_testevent_guid)</em>"
required: false
schema:
type: boolean
default: false
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
security:
- Authorization: []
put:
tags:
- test-run
summary: Updates a Test Run
description: 'To update a Test Run or move it to another container
<strong>qTest Manager version:</strong> 6+'
operationId: updateTestRunById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: testRunId
in: path
description: ID of the Test Run.
required: true
schema:
type: integer
format: int64
- name: parentId
in: query
description: 'ID of the container (Release, Test Cycle or Test Suite)
Input 0 (zero) to move the test run to under root
<strong>Important:</strong> If you use the request parameters, the request body will be ignored. That means the test run is being moved but it will not be updated with the properties specify in the request body'
required: false
schema:
type: integer
format: int64
- name: parentType
in: query
description: Type of the container. Valid values include <em>root</em>, <em>release</em>, <em>test-cycle</em> and <em>test-suite</em>
required: false
schema:
type: string
enum:
- root
- release
- test-cycle
- test-suite
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
security:
- Authorization: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
description: The Test Run's updated properties
required: true
delete:
tags:
- test-run
summary: Deletes a Test Run
description: 'To delete a Test Run
<strong>qTest Manager version:</strong> 6+'
operationId: deleteTestRunById
parameters:
- name: projectId
in: path
description: ID of the project
required: true
schema:
type: integer
format: int64
- name: testRunId
in: path
description: ID of the Test Run
required: true
schema:
type: integer
format: int64
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Message'
security:
- Authorization: []
components:
schemas:
Message:
type: object
properties:
noLogging:
type: boolean
message:
type: string
example: Error message
description: Error message text
readOnly: true
ParameterTestStepResource:
type: object
properties:
step_id:
type: integer
format: int64
description_parameter_values:
type: array
items:
type: string
expected_parameter_values:
type: array
items:
type: string
TestRunWithParameterCreateRandomResource:
type: object
required:
- combined_type
- test_case
properties:
name:
type: string
properties:
type: array
items:
$ref: '#/components/schemas/PropertyResource'
test_case:
$ref: '#/components/schemas/TestCaseWithParameterResource'
combined_type:
type: integer
format: int32
number_of_combinations:
type: integer
format: int32
TestRunListResource:
type: object
properties:
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
page:
type: integer
format: int32
page_size:
type: integer
format: int32
total:
type: integer
format: int64
items:
type: array
items:
$ref: '#/components/schemas/TestRunWithCustomFieldResource'
Link:
type: object
properties:
rel:
type: string
example: self
description: Relationship of link to object
href:
type: string
example: <link to object>
description: URL to the resource
PropertyResource:
type: object
required:
- field_id
properties:
field_id:
type: integer
format: int64
example: 1
description: ID of Field
field_name:
type: string
example: Field Name
description: Name of Field
field_value:
type: string
example: '1'
description: Value of Field
field_value_name:
type: string
example: '1'
description: Name Value of Field
AttachmentAuthor:
type: object
properties:
id:
type: integer
format: int64
example: 1
description: ID of the User
email:
type: string
example: example.user@qtest.com
description: Login username of the User
first_name:
type: string
example: First name of the User
description: First name of the User
last_name:
type: string
example: Last name of the User
description: Last name of the User
CustomFieldInfo:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
objectId:
type: integer
format: int64
type:
type: string
name:
type: string
stripHTMLValue:
type: string
propertyEditorComponent:
type: boolean
ParameterVM:
type: object
properties:
parameterId:
type: integer
format: int64
id:
type: string
startIndex:
type: integer
format: int32
endIndex:
type: integer
format: int32
startWithoutPrefixIndex:
type: integer
format: int32
endWithoutSuffixIndex:
type: integer
format: int32
parameterName:
type: string
TestRunWithCustomFieldResource:
type: object
required:
- properties
- test_case
properties:
parentId:
type: integer
format: int64
example: 843974
parentType:
type: string
example: test-suite
enum:
- root
- release
- test-cycle
- test-suite
automation:
type: string
created:
type: string
format: date-time
testCaseId:
type: integer
format: int64
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
id:
type: integer
format: int64
example: 11595056
name:
type: string
example: What's New section
minLength: 1
maxLength: 500
order:
type: integer
format: int32
example: 2
pid:
type: string
example: TR-2
created_date:
type: string
format: date-time
last_modified_date:
type: string
format: date-time
properties:
type: array
items:
$ref: '#/components/schemas/PropertyResource'
test_case:
$ref: '#/components/schemas/TestCaseWithCustomFieldResource'
latest_test_log:
$ref: '#/components/schemas/ShortTestLogResource'
test_case_version_id:
type: integer
format: int64
example: 13765789
test_case_version:
type: string
creator_id:
type: integer
format: int64
example: 5202
assign_parameter_values:
type: array
items:
$ref: '#/components/schemas/ParameterTestStepResource'
tosca_guid:
type: string
tosca_node_path:
type: string
tosca_workspace_url:
type: string
tosca_testevent_guid:
type: string
configuration_id:
type: string
format: uuid
ShortTestLogResource:
type: object
properties:
status:
type: string
id:
type: integer
format: int64
exe_start_date:
type: string
format: date-time
exe_end_date:
type: string
format: date-time
TestCaseWithParameterResource:
type: object
required:
- id
properties:
test_case_version_id:
type: integer
format: int64
id:
type: integer
format: int64
TestRunWithParameterCreateManualResource:
type: object
required:
- test_case
- test_runs
properties:
name:
type: string
properties:
type: array
items:
$ref: '#/components/schemas/PropertyResource'
test_case:
$ref: '#/components/schemas/TestCaseWithParameterResource'
test_runs:
type: array
items:
type: array
items:
$ref: '#/components/schemas/TestStepWithParameterResource'
TestStepResource:
type: object
required:
- description
- expected
properties:
customFieldInfo:
type: array
items:
$ref: '#/components/schemas/CustomFieldInfo'
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
id:
ty
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tricentis/refs/heads/main/openapi/tricentis-test-run-api-openapi.yml