Additional information
Custom fields
If you have custom fields setup for test cases within the given project, the custom field data is exposed here. It is recommend that you take a look at the custom field resource documentation which will explain the format and how to match the values to the field names / ID's.
List
Description: Provides a paginated list of all cases within a given test suite and the given suite section
Endpoint: <base_url>/projects/{project_id}/suites/{suite_id}/suite_sections/{suite_section_id}/steps.json
Request: GET
Formats supported: JSON
Params:
- project_id - {Integer} The associated project ID (Required)
- suite_id - {Integer} The associated suite ID (Required)
- suite_section_id - {Integer} The associated suite section ID (Required)
- page - {Integer} of the page (Default: 1)
Response
{
"pagination": { .... },
"steps": [
{
....,
"custom_fields": [
{ .... },
{ .... }
]
},
{
....,
"custom_fields": [
{ .... },
{ .... }
]
}
]
}
Example ruby request
HTTParty.get('https://api.testlodge.com/v1/account/1/projects/1/suites/1/suite_sections/1/steps.json')
Example Response
Response code: 200
{
"pagination": {
"total_entries":2,
"total_pages":1,
"current_page":1,
"next_page":null,
"previous_page":null,
"per_page":20
},
"steps":[{
"id":1,
"step_number":"TC01",
"title":"step title",
"description":"Sample body content",
"test_steps":"1: step one. 2: step two",
"expected_result":"Does something"
"project_id":1,
"last_saved_by_id":2,
"suite_section_id":1,
"position":1,
"custom_fields": [{
"id":1,
"name":"Further details",
"value":"Some further details that should be included"
}],
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
},
{ .... }]
}
List (Deprecated)
Deprecated - This list endpoint is no longer maintained and users should make use of the list endpoint documented above.
Description: Provides a paginated list of all cases within a given test suite
Endpoint: <base_url>/projects/{project_id}/suites/{suite_id}/steps.json
Request: GET
Formats supported: JSON
Params:
- project_id - {Integer} The associated project ID (Required)
- suite_id - {Integer} The associated suite ID (Required)
- page - {Integer} of the page (Default: 1)
Response
{
"pagination": { .... },
"steps": [
{
....,
"custom_fields": [
{ .... },
{ .... }
]
},
{
....,
"custom_fields": [
{ .... },
{ .... }
]
}
]
}
Example ruby request
HTTParty.get('https://api.testlodge.com/v1/account/1/projects/1/suites/1/steps.json')
Example Response
Response code: 200
{
"pagination": {
"total_entries":2,
"total_pages":1,
"current_page":1,
"next_page":null,
"previous_page":null,
"per_page":20
},
"steps":[{
"id":1,
"step_number":"TC01",
"title":"step title",
"description":"Sample body content",
"test_steps":"1: step one. 2: step two",
"expected_result":"Does something"
"project_id":1,
"last_saved_by_id":2,
"custom_fields": [{
"id":1,
"name":"Further details",
"value":"Some further details that should be included"
}],
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
},
{ .... }]
}
Show
Description: Get the details for a test case.
Endpoint: <base_url>/projects/{project_id}/suites/{suite_id}/steps/{id}.json
Request: GET
Formats supported: JSON
Params:
- project_id - {Integer} The associated project ID (Required)
- suite_id - {Integer} The associated suite ID (Required)
- id - {Integer} The case ID (Required)
-
include - {Array of Strings} The additional options to include in the response
- Options:
- step_uploads - Any files that have been uploaded and associated with the step (The URL's are time limited and will only be valid for a short amount of time. (roughly 30 seconds))
- requirements - Any requirements that have been associated with the given case
Response
{
....,
"last_saved_by": { .... },
"custom_fields": [
{ .... },
{ .... }
],
"step_uploads": [
{ .... },
{ .... }
],
"requirements": [
{ .... },
{ .... }
]
}
Example ruby request
HTTParty.get('https://api.testlodge.com/v1/account/1/projects/1/suites/1/steps/1.json', query: { include: ['step_uploads'] })
Example Response
Response code: 200
{
"id":1,
"step_number":"TC01",
"title":"step title",
"description":"Sample body content",
"test_steps":"1: step one. 2: step two",
"expected_result":"Does something",
"project_id":1,
"last_saved_by_id":2,
"last_saved_by": {
"id":2,
"firstname":"Jon",
"lastname":"Cole",
"email":"jon@example.com",
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
},
"step_uploads": [{
"id":1,
"file_name":"image.jpg",
"content_type": "image/jpeg",
"paths": {
"original": {
"name":"original",
"geometry": null,
"url":"http://s3.amazonaws.com/path/to/image"
},
"thumbnail": {
"name":"thumbnail",
"geometry":"100x100#",
"url":"http://s3.amazonaws.com/path/to/image"
}
}
}],
"custom_fields": [{
"id":1,
"name":"Further details",
"value":"Some further details that should be included"
}],
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
}
Create
Description: Create a new test case.
Endpoint: <base_url>/projects/{project_id}/suites/{suite_id}/steps.json
Request: POST
Formats supported: JSON
Params:
- project_id - {Integer} The associated project ID (Required)
- suite_id - {Integer} The associated suite ID (Required)
- suite_section_id - {Integer} The suite section that you would like to add the case to. (Defaults to the top suite section in the test suite, or creates one if none already exist.)
-
step:
- title - {String} The case title (Required)
- description - {Text} The body text
- test_steps - {Text} The steps of the test
- expected_result - {Text} The expected result of the test
-
custom_fields:
- field_{custom_field_id} - {String, Text or Integer} See custom field resource documentation for further details
Response
{
....,
"last_saved_by": { .... },
"custom_fields": [
{ .... },
{ .... }
]
}
Example ruby request
HTTParty.post('https://api.testlodge.com/v1/account/1/projects/1/suites/1/steps.json', body: {
suite_section_id: 1,
step: {
title: 'Title',
description: 'The body text',
test_steps: '1: step one. 2: step two',
expected_result: 'Does something',
custom_fields: {
field_1: 'Some further details that should be included'
}
}
})
Example Response
Response code: 201
{
"id":1,
"step_number":"TC01",
"title":"Title",
"description":"The body text",
"test_steps":"1: step one. 2: step two",
"expected_result":"Does something",
"project_id":1,
"last_saved_by_id":2,
"last_saved_by": {
"id":2,
"firstname":"Jon",
"lastname":"Cole",
"email":"jon@example.com",
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
},
"custom_fields": [{
"id":1,
"name":"Further details",
"value":"Some further details that should be included"
}],
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
}
Update
Description: Update a test case.
Endpoint: <base_url>/projects/{project_id}/suites/{suite_id}/steps/{id}.json
Request: PATCH
Formats supported: JSON
Params:
- project_id - {Integer} The associated project ID (Required)
- suite_id - {Integer} The associated suite ID (Required)
- id - {Integer} The case ID (Required)
-
step:
- title - {String} The case title (Required)
- description - {Text} The body text
- test_steps - {Text} The steps of the test
- expected_result - {Text} The expected result of the test
-
custom_fields:
- field_{custom_field_id} - {String, Text or Integer} See custom field resource documentation for further details
Response
{
....,
"last_saved_by": { .... },
"custom_fields": [
{ .... },
{ .... }
]
}
Example ruby request
HTTParty.patch('https://api.testlodge.com/v1/account/1/projects/1/suites/1/steps/1.json', body: {
step: {
title: 'New name'
}
})
Example Response
Response code: 200
{
"id":1,
"step_number":"TC01",
"title":"New name",
"description":"The body text",
"test_steps":"1: step one. 2: step two",
"expected_result":"Does something",
"project_id":1,
"last_saved_by_id":2,
"last_saved_by": {
"id":2,
"firstname":"Jon",
"lastname":"Cole",
"email":"jon@example.com",
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
},
"custom_fields": [{
"id":1,
"name":"Further details",
"value":"Some further details that should be included"
}],
"created_at":"2014-02-26T14:33:58Z",
"updated_at":"2014-02-26T14:33:58Z"
}
Delete
Description: Delete a test case.
Endpoint: <base_url>/projects/{project_id}/suites/{suite_id}/steps/{id}.json
Request: DELETE
Formats supported: JSON
Params:
- project_id - {Integer} The associated project ID (Required)
- suite_id - {Integer} The associated suite ID (Required)
- id - {Integer} The case ID (Required)
Response
empty
Example ruby request
HTTParty.delete('https://api.testlodge.com/v1/account/1/projects/1/suites/1/steps/1.json')
Example Response
Response code: 204
empty