Updates an executed test case
PUT
/executedtestcases/{id}Updates an executed test case
Example
Section titled “Example”Use resource IDs from your own project. Keep the API token in your server or CI environment.
import { createConfiguration, ExecutedTestCasesApi } from '@testcollab/sdk';
const config = createConfiguration(process.env.TESTCOLLAB_TOKEN!);const api = new ExecutedTestCasesApi(config);
const result = await api.updateExecutedTestCase({ "id": 123, "executedTestCasePayload": { "testPlanTestCase": 123, "project": 123, "testPlan": 123 }});console.log(result);curl --request PUT \ "https://api.testcollab.io/executedtestcases/123?token=$TESTCOLLAB_TOKEN" \ --header 'Content-Type: application/json' \ --data '{ "id": 123, "test_plan_test_case": 123, "test_case_revision": 123, "project": 123, "test_plan": 123, "test_plan_config": 123, "assigned_to": 123, "regression": 123, "comment": "example"}'Parameters
Section titled “Parameters”| Name | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | number | Yes | Executed Test Case ID |
Request body
Section titled “Request body”| Field | Type | Required | Description |
|---|---|---|---|
id |
number | No | — |
test_plan_test_case |
number | Yes | Test Plan’s Test Case ID |
test_case_revision |
number | No | Test case revision id |
project |
number | Yes | Project ID |
test_plan |
number | Yes | Test plan ID |
test_plan_config |
number | No | Test Plan’s Configuration ID |
assigned_to |
number | No | Executed test case assigned to |
regression |
number | No | Test Plan Regression’s ID |
comment |
string | No | — |
attachments |
Array of string | No | Array of file ids |
status |
string | No | System name of the status, used for internal references |
time_taken |
number | No | Number of seconds taken for this test |
step_wise_result |
Array of Step Wise Result | No | — |
testdataset_wise_result |
Array of Test Dataset Wise Result | No | — |
execution_source |
string | No | How this result was produced: manual (a person in the app), ci (a pipeline), api (a token-authenticated caller that did not say more), agent (QA Copilot or another agent) or import. Null on results recorded before this was tracked — absent rather than guessed. Values: manual, ci, api, agent, import. |
execution_context |
Execution Context | No | — |
execution_context.tool |
string | No | Name of the tool that reported the result |
execution_context.tool_version |
string | No | Version of that tool |
execution_context.provider |
string | No | CI provider the run executed on, when the tool could identify one |
execution_context.run_url |
string | No | Link back to the pipeline run that produced the result |
execution_context.build |
number | No | Build (software version) the run was recorded against |
Response
Section titled “Response”200 — Updated Executed Test Case
| Field | Type | Required | Description |
|---|---|---|---|
id |
number | Yes | — |
test_plan_test_case |
Test Plan Test Case | Yes | — |
test_plan_test_case.id |
number | Yes | — |
test_plan_test_case.test_case |
Test Case Minified | Yes | — |
test_plan_test_case.test_case.id |
number | Yes | — |
test_plan_test_case.test_case.display_number |
number | No | Per-company sequential business id, surfaced in the UI as TC- |
test_plan_test_case.test_case.title |
string | Yes | — |
test_plan_test_case.test_case.suite |
number | No | — |
test_plan_test_case.test_case.description |
string | Yes | Test case description (generated by rich text editor) |
test_plan_test_case.test_case.steps |
Step Collection | No | — |
test_plan_test_case.test_case.steps_parsed |
Step Parsed Collection | No | — |
test_plan_test_case.test_case.priority |
number | Yes | Priority, 0 - Low, 1- Normal, 2 - High Values: 0, 1, 2. |
test_plan_test_case.test_case.custom_fields |
Array of Custom Field Collection Output | No | Array of custom fields |
test_plan_test_case.test_case.created_at |
string | No | — |
test_plan_test_case.test_case.updated_at |
string | No | — |
test_plan_test_case.test_case.created_by |
number | No | — |
test_plan_test_case.test_case.last_run_status |
string | No | — |
test_plan_test_case.test_case.run_count |
number | No | — |
test_plan_test_case.test_case.avg_execution_time |
number | No | — |
test_plan_test_case.test_case.last_run_on |
string | No | — |
test_plan_test_case.test_case.failure_rate |
number | No | Test failure percentage |
test_plan_test_case.test_case.is_bdd_managed |
boolean | No | True when the test case is managed by BDD sync from a scenario in a feature file in Git. |
test_plan_test_case.test_case.is_reference |
boolean | No | Will be true only for links |
test_plan_test_case.test_case.source_id |
number | No | Only for links - source entity ID |
test_plan_test_case.test_case.source_project |
number | No | Only for links - source Project ID |
test_plan_test_case.test_case.under_review |
number | No | 1 if test case is under review else 0 (applicable when test case review feature is enabled) |
test_plan_test_case.test_case.is_automated |
number | No | Can be considered for execution by copilot (applicable when test case automation feature is enabled) |
test_plan_test_case.status |
string | Yes | This is combined status for whole Test Case across multiple configurations (old values- 0, 1, 2, 3 ,4 and new values- unexecuted, passed, failed, skipped, blocked) |
test_plan_test_case.time_taken |
number | Yes | Time taken (in seconds) |
test_plan_test_case.avg_time_per_exec |
number | Yes | Time spent per execution |
test_plan_test_case.results |
Config Wise Result Collection | No | — |
test_plan_test_case.results[].config_id |
number | Yes | — |
test_plan_test_case.results[].status |
string | Yes | This is combined status for whole Test Case across multiple configurations (old values- 0, 1, 2, 3 ,4 and new values- unexecuted, passed, failed, skipped, blocked) |
test_plan_test_case.config_assignees |
Config Wise Assignee Collection | No | — |
test_plan_test_case.config_assignees[].config_id |
number | Yes | — |
test_plan_test_case.config_assignees[].assigned_to |
number | No | Id of the assigned user |
test_plan_test_case.last_run |
string | No | Last run |
test_plan_test_case.assigned_to |
User Minified | No | — |
test_plan_test_case.assigned_to.id |
number | Yes | — |
test_plan_test_case.assigned_to.username |
string | No | — |
test_plan_test_case.assigned_to.name |
string | Yes | — |
test_plan_test_case.assigned_to.avatar |
Upload | No | — |
test_plan_test_case.assigned_to.is_guest |
number | No | — |
test_plan_test_case.created_at |
string | Yes | — |
test_plan_test_case.updated_at |
string | Yes | — |
test_case_revision |
Test Case Revision | No | — |
test_case_revision.id |
number | Yes | — |
test_case_revision.revision |
number | Yes | — |
test_case_revision.modified_fields |
Test Case Revision Modified Fields | Yes | — |
test_case_revision.modified_fields.copy_of |
number | No | provide information about the testcase which is copied |
test_case_revision.modified_fields.title |
string | No | Test case title at the time of copy |
test_case_revision.modified_fields.revert_to |
number | No | Test case reverted to which revision number |
test_case_revision.modified_fields.fields |
Array of string | No | — |
test_case_revision.modified_fields.last_changed |
Test Case Revision Review Info | No | — |
test_case_revision.testcase |
number | Yes | — |
test_case_revision.is_head |
boolean | No | Will be true only for latest version else false |
test_case_revision.created_at |
string | No | Date-time when test case revision created |
test_case_revision.updated_at |
string | No | Date-time when test case revision updated |
test_case_revision.updated_by |
number | No | — |
test_case_revision.action_type |
string | No | — |
test_case_revision.title |
string | No | — |
test_case_revision.suite |
Suite | No | — |
test_case_revision.suite.id |
number | Yes | — |
test_case_revision.suite.title |
string | Yes | — |
test_case_revision.suite.description |
string | No | — |
test_case_revision.suite.parent_id |
number | No | — |
test_case_revision.suite.order |
number | No | — |
test_case_revision.suite.created_by |
number | No | — |
test_case_revision.suite.is_bdd_managed |
boolean | No | True when the suite is managed by BDD sync from a feature file in Git. |
test_case_revision.suite.is_reference |
boolean | No | Will be true only for links |
test_case_revision.suite.source_id |
number | No | Only for links - source entity ID |
test_case_revision.suite.source_project |
number | No | Only for links - source Project ID |
test_case_revision.suite.is_main_link |
boolean | No | Will be true only for top level link suite |
test_case_revision.description |
string | No | Test case description (generated by rich text editor) |
test_case_revision.steps |
Step Collection | No | — |
test_case_revision.steps[].step |
string | Yes | (can contain HTML) |
test_case_revision.steps[].expected_result |
string | Yes | (can contain HTML) |
test_case_revision.steps[].reusable_step_id |
number | Yes | Reusable Step ID |
test_case_revision.steps_parsed |
Step Parsed Collection | No | — |
test_case_revision.steps_parsed[].step |
string | Yes | (can contain HTML) |
test_case_revision.steps_parsed[].step_id |
number | No | — |
test_case_revision.steps_parsed[].expected_result |
string | Yes | (can contain HTML) |
test_case_revision.steps_parsed[].step_index |
number | No | — |
test_case_revision.steps_parsed[].parsed_reusable_step_id |
number | No | — |
test_case_revision.priority |
number | No | Priority, 0 - Low, 1- Normal, 2 - High Values: 0, 1, 2. |
test_case_revision.tags |
Tag Collection | No | — |
test_case_revision.tags[].id |
number | Yes | — |
test_case_revision.tags[].name |
string | Yes | — |
test_case_revision.tags[].test_case_count |
number | No | — |
test_case_revision.requirements |
Requirement Collection | No | — |
test_case_revision.requirements[].id |
number | No | — |
test_case_revision.requirements[].title |
string | Yes | — |
test_case_revision.requirements[].requirementManager |
string | No | — |
test_case_revision.requirements[].requirement_id |
string | Yes | — |
test_case_revision.requirements[].requirement_key |
string | No | — |
test_case_revision.requirements[].requirement_url |
string | No | — |
test_case_revision.requirements[].project |
number | Yes | — |
test_case_revision.requirements[].status |
number | No | — |
test_case_revision.requirements[].req_info |
string | No | Stringified JSON object |
test_case_revision.requirements[].testcase_count |
number | No | — |
test_case_revision.requirements[].link_sync |
Requirement Link Sync | No | Azure DevOps reciprocal-link state for the requested test-case relation. |
test_case_revision.requirements[].custom_fields |
Array of Custom Field Collection Output | No | Array of custom fields - applicable only for inbuilt |
test_case_revision.requirements[].requirement_folder |
Generic Folder | No | Requirement folder - applicable only for inbuilt |
test_case_revision.requirements[].attachments |
Upload Collection | No | Requirement attachments - applicable only for inbuilt |
test_case_revision.requirements[].description |
string | No | Requirement description - applicable only for inbuilt |
test_case_revision.requirements[].created_at |
string | No | — |
test_case_revision.requirements[].updated_at |
string | No | — |
test_case_revision.requirements[].created_by |
User Minified | No | — |
test_case_revision.attachments |
Upload Collection | No | — |
test_case_revision.attachments[].id |
number | Yes | — |
test_case_revision.attachments[].name |
string | Yes | — |
test_case_revision.attachments[].hash |
string | Yes | — |
test_case_revision.attachments[].ext |
string | Yes | — |
test_case_revision.attachments[].mime |
string | Yes | — |
test_case_revision.attachments[].size |
string | Yes | — |
test_case_revision.attachments[].url |
string | Yes | — |
test_case_revision.attachments[].created_by |
number | No | — |
test_case_revision.attachments[].created_at |
string | Yes | — |
test_case_revision.attachments[].updated_at |
string | Yes | — |
test_case_revision.custom_fields |
Array of Custom Field Collection Output | No | Array of custom fields |
test_case_revision.sort_order |
number | No | — |
test_case_revision.testcase_created_at |
string | No | Date-time when test case created |
test_case_revision.testcase_updated_at |
string | No | Date-time when test case updated |
test_case_revision.created_by |
User Minified | No | — |
test_case_revision.created_by.id |
number | Yes | — |
test_case_revision.created_by.username |
string | No | — |
test_case_revision.created_by.name |
string | Yes | — |
test_case_revision.created_by.avatar |
Upload | No | — |
test_case_revision.created_by.is_guest |
number | No | — |
test_case_revision.last_run_status |
string | No | — |
test_case_revision.run_count |
number | No | — |
test_case_revision.avg_execution_time |
number | No | — |
test_case_revision.last_run_on |
string | No | — |
test_case_revision.failure_rate |
number | No | Test failure percentage |
test_case_revision.is_bdd_managed |
boolean | No | True when the test case is managed by BDD sync from a scenario in a feature file in Git. |
test_case_revision.is_reference |
boolean | No | Will be true only for links |
{ "id": 123, "test_plan_test_case": { "id": 123, "test_case": { "id": 123, "display_number": 123, "title": "example", "suite": 123, "description": "example", "steps": [], "steps_parsed": [], "priority": 0, "custom_fields": [] }, "status": "example", "time_taken": 123, "avg_time_per_exec": 123, "results": [], "config_assignees": [], "last_run": "2026-10-19T09:00:00Z", "assigned_to": { "id": 123, "username": "example", "name": "example", "avatar": {}, "is_guest": 123 } }, "test_case_revision": { "id": 123, "revision": 123, "modified_fields": { "copy_of": 123, "title": "example", "revert_to": 123, "fields": [], "last_changed": {} }, "testcase": 123, "is_head": true, "created_at": "example", "updated_at": "example", "updated_by": 123, "action_type": "example" }, "project": { "id": 123, "name": "example", "description": "example", "archived": true, "team": [], "activity": "example", "created_at": "example", "updated_at": "example", "is_sample": true }, "comment": "example", "attachments": [], "test_plan_config": 123, "test_plan": 123, "build": { "id": 123, "version": "example", "environment": "example", "source": "manual", "release_date": "example", "created_at": "example" }}Errors
Section titled “Errors”| Status | Meaning |
|---|---|
403 |
Forbidden |