UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip tm executions

Syntax and options for `uip tm executions`, which lists, filters, and retries test executions, and inspects the test case logs of a finished run.

uip tm executions inspects and manipulates test executions — the objects produced by uip tm testsets run. These verbs list executions for a test set, enumerate the test case logs of a finished run, re-run an existing execution by ID, and retry only the failed cases in place.

The command that starts an execution is uip tm testsets run, which returns an ExecutionId. Every verb on this page takes that ID (or derives it from context).

Synopsis

uip tm executions list --project-key <key> [--test-set-id <uuid>] [--filter <text>] [--limit <n>] [--offset <n>]
uip tm executions list-filtered --project-key <key> [--status <status>] [--execution-type <type>] [--execution-finished-interval <interval>] [--updated-by <userId>] [--search <text>] [--labels <labels...>] [--test-execution-ids <ids...>] [--sort-by <expr>] [--limit <n>] [--offset <n>]
uip tm executions testcaselogs list --execution-id <uuid> --project-key <key> [--only-failed] [--filter <text>] [--limit <n>] [--offset <n>]
uip tm executions run --project-key <key> --execution-id <uuid> --execution-type <type> [--test-case-log-ids <ids...>] [--async]
uip tm executions retry --execution-id <uuid> (--project-key <key> | --test-set-key <key>) [--execution-type <type>]
uip tm executions get-stats --execution-id <uuid> --project-key <key>
uip tm executions list --project-key <key> [--test-set-id <uuid>] [--filter <text>] [--limit <n>] [--offset <n>]
uip tm executions list-filtered --project-key <key> [--status <status>] [--execution-type <type>] [--execution-finished-interval <interval>] [--updated-by <userId>] [--search <text>] [--labels <labels...>] [--test-execution-ids <ids...>] [--sort-by <expr>] [--limit <n>] [--offset <n>]
uip tm executions testcaselogs list --execution-id <uuid> --project-key <key> [--only-failed] [--filter <text>] [--limit <n>] [--offset <n>]
uip tm executions run --project-key <key> --execution-id <uuid> --execution-type <type> [--test-case-log-ids <ids...>] [--async]
uip tm executions retry --execution-id <uuid> (--project-key <key> | --test-set-key <key>) [--execution-type <type>]
uip tm executions get-stats --execution-id <uuid> --project-key <key>

All verbs honor the global options and the standard exit codes. Every verb accepts --log-level <level> (default Information).

uip tm executions list

List the executions associated with a test set. --test-set-id is optional — omit it to list executions across all test sets in the project.

Arguments

None.

Options

FlagDescription
--project-key <key>Required. Owning project.
--test-set-id <uuid>Test set UUID (the Id field from testsets list, not TestSetKey).
--filter <text>Search executions by name.
--limit <n>Page size. Defaults to 50.
--offset <n>Results to skip. Defaults to 0.

Example

uip tm executions list \
  --project-key DEMO \
  --test-set-id a1b2c3d4-0000-0000-0000-000000000001 \
  --limit 2
uip tm executions list \
  --project-key DEMO \
  --test-set-id a1b2c3d4-0000-0000-0000-000000000001 \
  --limit 2

Data shape

{
  "Code": "ExecutionsList",
  "Data": [
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000001",
      "Name": "Nightly Run 2025-04-15",
      "Status": "Passed"
    },
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000002",
      "Name": "Nightly Run 2025-04-14",
      "Status": "Failed"
    }
  ]
}
{
  "Code": "ExecutionsList",
  "Data": [
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000001",
      "Name": "Nightly Run 2025-04-15",
      "Status": "Passed"
    },
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000002",
      "Name": "Nightly Run 2025-04-14",
      "Status": "Failed"
    }
  ]
}

uip tm executions list-filtered

List executions using advanced server-side filters. Note: --status and --execution-type are singular, single-value flags. Date range filtering is done via --execution-finished-interval, not date flags.

Arguments

None.

Options

FlagDescription
--project-key <key>Required. Owning project.
--status <status>Filter by a single execution status. Accepted values come from the SDK TestExecutionStatus enum — run --help for the current set.
--execution-type <type>Filter by a single execution type (automated, manual, mixed, none).
--execution-finished-interval <interval>Filter by how recently the execution finished. Accepted values come from the SDK TestExecutionFinishedInterval enum.
--updated-by <userId>Filter by the user ID who last updated the execution.
--search <text>Free-text search over execution names and metadata.
--labels <labels...>Space-separated label names to filter by.
--test-execution-ids <ids...>Space-separated execution UUIDs to include.
--sort-by <expr>Sort expression (field name, optionally suffixed with :asc or :desc).
--limit <n>Page size. Defaults to 50.
--offset <n>Results to skip. Defaults to 0.

Example

uip tm executions list-filtered \
  --project-key DEMO \
  --status Failed \
  --execution-type automated \
  --limit 10
uip tm executions list-filtered \
  --project-key DEMO \
  --status Failed \
  --execution-type automated \
  --limit 10

Data shape

{
  "Code": "ExecutionsFilteredList",
  "Data": [
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000002",
      "Name": "Nightly Run 2025-04-14",
      "Status": "Failed",
      "ExecutionType": "automated"
    }
  ]
}
{
  "Code": "ExecutionsFilteredList",
  "Data": [
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000002",
      "Name": "Nightly Run 2025-04-14",
      "Status": "Failed",
      "ExecutionType": "automated"
    }
  ]
}

uip tm executions testcaselogs list

List the test case logs produced by a single execution. Each log is one run of one test case, carrying result, status, and timing.

Arguments

None.

Options

FlagDescription
--execution-id <uuid>Required. Execution to inspect.
--project-key <key>Required. Owning project.
--only-failedShow only failed logs.
--filter <text>Search logs by name.
--limit <n>Page size. Defaults to 50.
--offset <n>Results to skip. Defaults to 0.

Example

uip tm executions testcaselogs list \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO \
  --only-failed
uip tm executions testcaselogs list \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO \
  --only-failed

Data shape

{
  "Code": "ExecutionTestCaseLogs",
  "Data": [
    {
      "Id": "c3d4e5f6-0000-0000-0000-000000000001",
      "TestCaseName": "Login flow",
      "Status": "Finished",
      "Result": "Failed"
    }
  ]
}
{
  "Code": "ExecutionTestCaseLogs",
  "Data": [
    {
      "Id": "c3d4e5f6-0000-0000-0000-000000000001",
      "TestCaseName": "Login flow",
      "Status": "Finished",
      "Result": "Failed"
    }
  ]
}

Each Id is a test case log UUID. Feed it to uip tm testcaselogs list-assertions to see why a test case log was marked Failed.

uip tm executions run

Re-run an existing execution by its ID. This is not the same as starting a new execution — it replays within the same execution record, targeting all test cases or a specific subset.

Note:

To start a brand-new execution, use uip tm testsets run instead.

Arguments

None.

Options

FlagDescription
--project-key <key>Required. Owning project.
--execution-id <uuid>Required. ID of the existing execution to re-run.
--execution-type <type>Required. Which test cases to run (automated, manual, mixed, none).
--test-case-log-ids <ids...>Space-separated test case log UUIDs. When supplied, only those specific logs are re-run.
--asyncReturn immediately after queuing without waiting for acknowledgement.

Examples

# re-run the entire execution
uip tm executions run \
  --project-key DEMO \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated

# re-run specific failed logs only
uip tm executions run \
  --project-key DEMO \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --test-case-log-ids c3d4e5f6-0000-0000-0000-000000000001 c3d4e5f6-0000-0000-0000-000000000002
# re-run the entire execution
uip tm executions run \
  --project-key DEMO \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated

# re-run specific failed logs only
uip tm executions run \
  --project-key DEMO \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --test-case-log-ids c3d4e5f6-0000-0000-0000-000000000001 c3d4e5f6-0000-0000-0000-000000000002

Data shape

{
  "Code": "ExecutionRun",
  "Data": {
    "ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "Status": "Running",
    "StartTime": "2025-04-15T10:30:00Z"
  }
}
{
  "Code": "ExecutionRun",
  "Data": {
    "ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "Status": "Running",
    "StartTime": "2025-04-15T10:30:00Z"
  }
}

uip tm executions retry

Retry only the failed test cases of a completed execution, in place. The command fetches the execution's stats and refuses to proceed unless the run is in a terminal state. If there are zero failed cases it exits 0 with a message. The retry reuses the same execution ID; it does not create a new one.

Arguments

None.

Options

FlagDescription
--execution-id <uuid>Required. Execution to retry.
--project-key <key>Owning project. Either this or --test-set-key is required.
--test-set-key <key>Test set key (for example, DEMO:42); the project key is derived from the prefix.
--execution-type <type>Execution type for the retry: automated (default), manual, mixed, or none.

Example

uip tm executions retry \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO
uip tm executions retry \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO

Data shape — when there are failures to retry

{
  "Code": "ExecutionRetry",
  "Data": {
    "ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "Status": "Running",
    "StartTime": "2025-04-15T10:30:00Z",
    "RetriedCount": 3
  }
}
{
  "Code": "ExecutionRetry",
  "Data": {
    "ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "Status": "Running",
    "StartTime": "2025-04-15T10:30:00Z",
    "RetriedCount": 3
  }
}

Data shape — when there are no failures to retry

{
  "Code": "ExecutionRetry",
  "Data": {
    "Message": "Execution 'a1b2c3d4-0000-0000-0000-000000000001' has no failed test cases to retry."
  }
}
{
  "Code": "ExecutionRetry",
  "Data": {
    "Message": "Execution 'a1b2c3d4-0000-0000-0000-000000000001' has no failed test cases to retry."
  }
}

uip tm executions get-stats

Get a test execution by ID with all its execution fields plus aggregated pass/fail/none counts. Use this when you need the raw execution record with stats — for example, to check whether an execution has finished before calling report get, or to extract timing and coverage data for external reporting.

Arguments

None.

Options

FlagDescription
--execution-id <uuid>Required. Test execution UUID. Get this from uip tm testsets run or uip tm testcases run.
--project-key <key>Required. Test Manager project key (for example, DEMO).

Example

uip tm executions get-stats \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO
uip tm executions get-stats \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO

Data shape

{
  "Code": "ExecutionGetStats",
  "Data": {
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Nightly Run 2025-04-15",
    "Description": "Smoke + regression suite",
    "Status": "Finished",
    "ExecutionType": "automated",
    "Source": "Manual",
    "ProjectId": "00000000-0000-0000-0000-000000000abc",
    "TestSetId": "a1b2c3d4-0000-0000-0000-000000000010",
    "TestSetObjKey": "DEMO:10",
    "Passed": 8,
    "Failed": 2,
    "None": 0,
    "Duration": 3600000,
    "RunId": 12,
    "EnforceExecutionOrder": false,
    "EnableCoverage": false,
    "IsRunningAutomated": false,
    "HasTestsFromMultipleAutomationProjects": false,
    "RemoteControlAccess": "Disabled",
    "ExecutionStart": "2025-04-15T10:00:00Z",
    "ExecutionFinished": "2025-04-15T11:00:00Z",
    "ReportingDate": "2025-04-15T11:00:00Z",
    "FolderKey": "11111111-2222-3333-4444-555555555555",
    "Created": "2025-04-15T09:55:00Z",
    "CreatedBy": "11111111-2222-3333-4444-555555555555",
    "Updated": "2025-04-15T11:00:00Z",
    "UpdatedBy": "11111111-2222-3333-4444-555555555555",
    "AutopilotForRobotsSettings": { "Enabled": false },
    "OrderedExecutionSettings": { "Enabled": false },
    "VideoRecordingSettings": { "Enabled": false }
  }
}
{
  "Code": "ExecutionGetStats",
  "Data": {
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Nightly Run 2025-04-15",
    "Description": "Smoke + regression suite",
    "Status": "Finished",
    "ExecutionType": "automated",
    "Source": "Manual",
    "ProjectId": "00000000-0000-0000-0000-000000000abc",
    "TestSetId": "a1b2c3d4-0000-0000-0000-000000000010",
    "TestSetObjKey": "DEMO:10",
    "Passed": 8,
    "Failed": 2,
    "None": 0,
    "Duration": 3600000,
    "RunId": 12,
    "EnforceExecutionOrder": false,
    "EnableCoverage": false,
    "IsRunningAutomated": false,
    "HasTestsFromMultipleAutomationProjects": false,
    "RemoteControlAccess": "Disabled",
    "ExecutionStart": "2025-04-15T10:00:00Z",
    "ExecutionFinished": "2025-04-15T11:00:00Z",
    "ReportingDate": "2025-04-15T11:00:00Z",
    "FolderKey": "11111111-2222-3333-4444-555555555555",
    "Created": "2025-04-15T09:55:00Z",
    "CreatedBy": "11111111-2222-3333-4444-555555555555",
    "Updated": "2025-04-15T11:00:00Z",
    "UpdatedBy": "11111111-2222-3333-4444-555555555555",
    "AutopilotForRobotsSettings": { "Enabled": false },
    "OrderedExecutionSettings": { "Enabled": false },
    "VideoRecordingSettings": { "Enabled": false }
  }
}

Key fields:

  • Passed, Failed, None — aggregated test case log counts for the execution.
  • Duration — total execution duration in milliseconds.
  • Status — the execution state. When Finished, the Passed/Failed/None counts are final.
  • IsRunningAutomatedtrue while automated test cases are still being dispatched to robots.
Note:

get-stats returns the raw execution record with counts. For a formatted summary with per-test-case failure messages, use uip tm report get instead.

Exit codes

The standard CI pattern is a three-step pipeline:

  1. Launchuip tm testsets run returns an ExecutionId and exits 0.
  2. Blockuip tm wait polls until the execution reaches a terminal state. Exits 0 when finished, 2 on timeout, 1 on failure.
  3. Verdictuip tm report get reads Passed / Failed counts. Your script fails the build explicitly.
id=$(uip tm testsets run \
  --test-set-key DEMO:10 \
  --execution-type automated \
  --output-filter .Data.ExecutionId)

if ! uip tm wait --execution-id "$id" --project-key DEMO --timeout 1800000; then
  code=$?
  [ "$code" -eq 2 ] && { echo "timed out" >&2; exit 2; }
  echo "wait failed ($code)" >&2; exit "$code"
fi

failed=$(uip tm report get \
  --execution-id "$id" --project-key DEMO --output-filter .Data.Failed)
[ "$failed" -gt 0 ] && { echo "$failed test(s) failed" >&2; exit 1; }
echo "all passed"
id=$(uip tm testsets run \
  --test-set-key DEMO:10 \
  --execution-type automated \
  --output-filter .Data.ExecutionId)

if ! uip tm wait --execution-id "$id" --project-key DEMO --timeout 1800000; then
  code=$?
  [ "$code" -eq 2 ] && { echo "timed out" >&2; exit 2; }
  echo "wait failed ($code)" >&2; exit "$code"
fi

failed=$(uip tm report get \
  --execution-id "$id" --project-key DEMO --output-filter .Data.Failed)
[ "$failed" -gt 0 ] && { echo "$failed test(s) failed" >&2; exit 1; }
echo "all passed"
  • testsets run — start an execution.
  • wait — block until an execution reaches a terminal state.
  • report, result, attachment — post-run artifacts.
  • testcasestestcaselogs list-assertions turns a failed log into per-assertion detail.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated