UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip tm testcases

Syntax and options for `uip tm testcases`, which manages test cases including create, list, update, delete, link automations, and test case log management.

uip tm testcases manages test cases within a Test Manager project: create, list, update, delete, link or unlink an Orchestrator automation, inspect historical results, and add or remove test cases from a test set. It also provides testcases run — a way to execute one or more test cases directly from an Orchestrator package. This page also documents uip tm testcaselog list-assertions, which reads the assertion artifacts attached to a single test case log, and the testcaselog start / testcaselog finish verbs used by automations to record manual log entries.

A test case is the unit of authorship. It becomes runnable once it is linked to a package entry point with testcases link-automation. A test case can then be executed as part of a test set (see testsets), or directly via testcases run.

Synopsis

uip tm testcases create --project-key <key> --name <name> [--description <text>] [--precondition <text>] [--postcondition <text>]
uip tm testcases list --project-key <key> [--filter <text>] [--limit <n>] [--offset <n>]
uip tm testcases list-result-history --project-key <key> --test-case-id <uuid> [--limit <n>] [--offset <n>]
uip tm testcases update --project-key <key> --test-case-key <key> [--name <name>] [--description <text>] [--precondition <text>] [--postcondition <text>]
uip tm testcases delete --project-key <key> --test-case-key <key> [-y]
uip tm testcases link-automation --project-key <key> --test-case-key <key> --automation-id <uuid>
uip tm testcases unlink-automation --project-key <key> --test-case-key <key>
uip tm testcases list-automations --folder-key <uuid> [--package-name <name>]
uip tm testcases list-testsets --project-key <key> --test-case-id <uuid>
uip tm testcases run --project-key <key> --test-case-id <uuid...> --name <name> --execution-type <type> [--async] [--folder-key <uuid>] [--runtime-type <type>] [--robot-user-key <uuid>] [--machine-key <uuid>] [--host-machine-name <name>] [--service-user-name <name>] [--test-set-packages <json>]
uip tm testcases add --test-set-key <key> --test-case-keys <keys>
uip tm testcases remove --test-set-key <key> --test-case-keys <keys> [-y]
uip tm testcases list-steps --project-key <key> --test-case-id <uuid>

uip tm testcases steps list --project-key <key> --test-case-id <uuid>
uip tm testcases steps get --project-key <key> --step-id <uuid>
uip tm testcases steps add --project-key <key> --test-case-id <uuid> [--description <text>] [--expected-result <text>] [--action-type <type>] [--clipboard-data <text>] [--order-no <n>] [--step <json>...]
uip tm testcases steps update --project-key <key> --step-id <uuid> [--description <text>] [--expected-result <text>] [--action-type <type>] [--clipboard-data <text>]
uip tm testcases steps move --project-key <key> --step-id <uuid> --target-position <n>
uip tm testcases steps delete --project-key <key> --step-id <uuid> [-y]

uip tm testcaselog list-assertions --project-key <key> --test-case-log-id <uuid>

uip tm testcaselog start --execution-id <uuid> --test-case-id <uuid> [--execution-type <type>]
uip tm testcaselog finish --test-case-log-id <uuid> [--info <text>]
uip tm testcases create --project-key <key> --name <name> [--description <text>] [--precondition <text>] [--postcondition <text>]
uip tm testcases list --project-key <key> [--filter <text>] [--limit <n>] [--offset <n>]
uip tm testcases list-result-history --project-key <key> --test-case-id <uuid> [--limit <n>] [--offset <n>]
uip tm testcases update --project-key <key> --test-case-key <key> [--name <name>] [--description <text>] [--precondition <text>] [--postcondition <text>]
uip tm testcases delete --project-key <key> --test-case-key <key> [-y]
uip tm testcases link-automation --project-key <key> --test-case-key <key> --automation-id <uuid>
uip tm testcases unlink-automation --project-key <key> --test-case-key <key>
uip tm testcases list-automations --folder-key <uuid> [--package-name <name>]
uip tm testcases list-testsets --project-key <key> --test-case-id <uuid>
uip tm testcases run --project-key <key> --test-case-id <uuid...> --name <name> --execution-type <type> [--async] [--folder-key <uuid>] [--runtime-type <type>] [--robot-user-key <uuid>] [--machine-key <uuid>] [--host-machine-name <name>] [--service-user-name <name>] [--test-set-packages <json>]
uip tm testcases add --test-set-key <key> --test-case-keys <keys>
uip tm testcases remove --test-set-key <key> --test-case-keys <keys> [-y]
uip tm testcases list-steps --project-key <key> --test-case-id <uuid>

uip tm testcases steps list --project-key <key> --test-case-id <uuid>
uip tm testcases steps get --project-key <key> --step-id <uuid>
uip tm testcases steps add --project-key <key> --test-case-id <uuid> [--description <text>] [--expected-result <text>] [--action-type <type>] [--clipboard-data <text>] [--order-no <n>] [--step <json>...]
uip tm testcases steps update --project-key <key> --step-id <uuid> [--description <text>] [--expected-result <text>] [--action-type <type>] [--clipboard-data <text>]
uip tm testcases steps move --project-key <key> --step-id <uuid> --target-position <n>
uip tm testcases steps delete --project-key <key> --step-id <uuid> [-y]

uip tm testcaselog list-assertions --project-key <key> --test-case-log-id <uuid>

uip tm testcaselog start --execution-id <uuid> --test-case-id <uuid> [--execution-type <type>]
uip tm testcaselog finish --test-case-log-id <uuid> [--info <text>]

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

uip tm testcases create

Create a new test case inside a project.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --name <name> (required) — test case name.
  • --description <text> — free-form description. Defaults to empty.
  • --precondition <text> — precondition text. Defaults to empty.
  • --postcondition <text> — postcondition text. Defaults to empty.

Example

uip tm testcases create \
  --project-key DEMO \
  --name "Login smoke" \
  --description "Logs in and out"
uip tm testcases create \
  --project-key DEMO \
  --name "Login smoke" \
  --description "Logs in and out"

Data shape

{
  "Code": "TestCaseCreate",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Login smoke",
    "Description": "Logs in and out"
  }
}
{
  "Code": "TestCaseCreate",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Login smoke",
    "Description": "Logs in and out"
  }
}

TestCaseKey (the public PROJECT:N identifier) is what you pass to other verbs. The internal Id (UUID) is needed for list-result-history and list-testsets.

uip tm testcases list

List all test cases in a project.

Arguments

None.

Options

  • --project-key <key> (required) — project to list.
  • --filter <text> — filter by name or key (server-side search).
  • --limit <n> — page size. Defaults to 50.
  • --offset <n> — results to skip. Defaults to 0.

Example

uip tm testcases list --project-key DEMO --filter login --limit 20
uip tm testcases list --project-key DEMO --filter login --limit 20

Data shape

{
  "Code": "TestCasesList",
  "Data": [
    {
      "TestCaseKey": "DEMO:1",
      "Name": "Login smoke",
      "Description": "Logs in and out"
    }
  ]
}
{
  "Code": "TestCasesList",
  "Data": [
    {
      "TestCaseKey": "DEMO:1",
      "Name": "Login smoke",
      "Description": "Logs in and out"
    }
  ]
}

uip tm testcases list-result-history

List the historical test case logs for a single test case. Takes the internal --test-case-id (UUID) — look up the UUID via testcases list or from a previous TestCaseCreate output.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-id <uuid> (required) — internal test case UUID.
  • --limit <n> — page size. Defaults to 50.
  • --offset <n> — results to skip. Defaults to 0.

Example

uip tm testcases list-result-history \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --limit 10
uip tm testcases list-result-history \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --limit 10

Data shape

{
  "Code": "TestCaseResultHistory",
  "Data": [
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000001",
      "Result": "Failed",
      "Status": "Finished",
      "ExecutionEnd": "2025-04-15T12:00:00Z"
    }
  ]
}
{
  "Code": "TestCaseResultHistory",
  "Data": [
    {
      "Id": "b2c3d4e5-0000-0000-0000-000000000001",
      "Result": "Failed",
      "Status": "Finished",
      "ExecutionEnd": "2025-04-15T12:00:00Z"
    }
  ]
}

uip tm testcases update

Rename a test case or change its description, precondition, or postcondition. At least one of these fields must be provided.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case key (for example, DEMO:1).
  • --name <name> — new name.
  • --description <text> — new description.
  • --precondition <text> — new precondition text.
  • --postcondition <text> — new postcondition text.

Example

uip tm testcases update \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --name "Login smoke (2026)" \
  --precondition "User account exists"
uip tm testcases update \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --name "Login smoke (2026)" \
  --precondition "User account exists"

Data shape

{
  "Code": "TestCaseUpdate",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Name": "Login smoke (2026)",
    "Result": "Updated"
  }
}
{
  "Code": "TestCaseUpdate",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Name": "Login smoke (2026)",
    "Result": "Updated"
  }
}

uip tm testcases delete

Delete a test case by its key.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case key (for example, DEMO:1).
  • -y, --yes — skip the confirmation prompt. Required in non-interactive environments.

Example

uip tm testcases delete \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --yes
uip tm testcases delete \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --yes

Data shape

{
  "Code": "TestCaseDelete",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}
{
  "Code": "TestCaseDelete",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}

Bind an Orchestrator automation to a test case by its automation UUID. This is what makes the test case executable inside a test set. Run testcases list-automations to discover the --automation-id for a given folder.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case to bind.
  • --automation-id <uuid> (required) — UUID of the Orchestrator automation (package entry point). Get this from uip tm testcases list-automations.

Example

uip tm testcases link-automation \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --automation-id f0f0f0f0-0000-0000-0000-000000000001
uip tm testcases link-automation \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --automation-id f0f0f0f0-0000-0000-0000-000000000001

Data shape

{
  "Code": "TestCaseLinkAutomation",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "AutomationId": "f0f0f0f0-0000-0000-0000-000000000001",
    "Result": "Linked"
  }
}
{
  "Code": "TestCaseLinkAutomation",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "AutomationId": "f0f0f0f0-0000-0000-0000-000000000001",
    "Result": "Linked"
  }
}

Remove the automation binding from a test case. After unlinking, the test case is no longer executable until it is linked again.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-key <key> (required) — test case to unlink.

Example

uip tm testcases unlink-automation \
  --project-key DEMO \
  --test-case-key DEMO:1
uip tm testcases unlink-automation \
  --project-key DEMO \
  --test-case-key DEMO:1

Data shape

{
  "Code": "TestCaseUnlinkAutomation",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Result": "Unlinked"
  }
}
{
  "Code": "TestCaseUnlinkAutomation",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "Result": "Unlinked"
  }
}

uip tm testcases list-automations

List the test entry points available in an Orchestrator folder. Run this to discover the --automation-id value to pass to link-automation.

Arguments

None.

Options

  • --folder-key <uuid> (required) — Orchestrator folder UUID.
  • --package-name <name> — filter the list to one package (case-insensitive exact match).

Example

uip tm testcases list-automations \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001
uip tm testcases list-automations \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001

Data shape

{
  "Code": "TestAutomationsList",
  "Data": [
    {
      "AutomationId": "f0f0f0f0-0000-0000-0000-000000000001",
      "PackageName": "InvoiceTests",
      "TestName": "SmokeTest",
      "PackageVersion": "1.0.2"
    }
  ]
}
{
  "Code": "TestAutomationsList",
  "Data": [
    {
      "AutomationId": "f0f0f0f0-0000-0000-0000-000000000001",
      "PackageName": "InvoiceTests",
      "TestName": "SmokeTest",
      "PackageVersion": "1.0.2"
    }
  ]
}

uip tm testcases list-testsets

List every test set that contains a given test case.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-id <uuid> (required) — internal test case UUID (not the PROJECT:N key). Get it from testcases list or from a TestCaseCreate response.

Example

uip tm testcases list-testsets \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001
uip tm testcases list-testsets \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001

Data shape

{
  "Code": "TestCaseTestSetsList",
  "Data": [
    {
      "TestSetKey": "DEMO:10",
      "Name": "Smoke Suite",
      "FolderKey": "f0f0f0f0-0000-0000-0000-000000000001"
    }
  ]
}
{
  "Code": "TestCaseTestSetsList",
  "Data": [
    {
      "TestSetKey": "DEMO:10",
      "Name": "Smoke Suite",
      "FolderKey": "f0f0f0f0-0000-0000-0000-000000000001"
    }
  ]
}

uip tm testcases run

Run one or more test cases directly from an Orchestrator package, without creating a test set first. testcases run starts an execution and returns the execution record. For more information about this capability, see Executing test cases without a test set in the Test Manager documentation.

Note:

testcases run is synchronous by default — it blocks until the execution record is confirmed. To return immediately after queuing, pass --async. To block until the execution finishes, pipe the returned Id into uip tm wait.

When to use testcases run vs testsets run

  • Use testcases run to execute test cases on demand directly from a package.
  • Use testsets run to execute a named, curated group of test cases that is managed over time in Test Manager.

Arguments

None.

Options

  • --project-key <key> — Test Manager project key (for example, DEMO). Optional if derivable from context.
  • --test-case-id <uuid...> (required) — one or more test case UUIDs to run, space-separated. Get UUIDs from testcases list.
  • --execution-type <type> (required) — execution type: automated, manual, mixed, or none.
  • --name <name> — display name for the execution.
  • --async — return immediately after queuing, without waiting for the server to confirm the execution has started. Omit to wait for the execution record to be fully created before returning.
  • --folder-key <uuid> — Orchestrator folder to run in. Required when the test cases are linked to automations in a specific folder.
  • --runtime-type <type> — robot runtime type override. Accepted values: nonProduction, attended, unattended, rpaDeveloper, studioX, headless, rpaDeveloperPro, testAutomation, automationCloud, serverless, automationKit, serverlessTestAutomation, automationCloudTestAutomation, attendedStudioWeb, hosting, assistantWeb, processOrchestration, agentService, appTest, performanceTest, businessRule, caseManagement.
  • --robot-user-key <uuid> — robot user key for the execution target.
  • --machine-key <uuid> — machine key for the execution target.
  • --host-machine-name <name> — host machine name for the execution target.
  • --service-user-name <name> — service user name for the execution target.
  • --test-set-packages <json> — JSON array of package overrides: [{"packageName":"Pkg","version":"1.0.0"}].

Examples

# Simplest — run a single test case (blocks until execution record is created)
uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --name "Login smoke run"
# Simplest — run a single test case (blocks until execution record is created)
uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --name "Login smoke run"
# Run multiple test cases asynchronously, then wait for completion
id=$(uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
  --execution-type automated \
  --name "Smoke run" \
  --async \
  --output-filter Id)

uip tm wait --execution-id "$id" --project-key DEMO --timeout 900000
uip tm report get --execution-id "$id" --project-key DEMO
# Run multiple test cases asynchronously, then wait for completion
id=$(uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
  --execution-type automated \
  --name "Smoke run" \
  --async \
  --output-filter Id)

uip tm wait --execution-id "$id" --project-key DEMO --timeout 900000
uip tm report get --execution-id "$id" --project-key DEMO
# Full override — specify folder, runtime, machine, and package version
uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --name "Smoke run" \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --runtime-type unattended \
  --machine-key 33333333-4444-5555-6666-777777777777 \
  --test-set-packages '[{"packageName":"InvoiceTests","version":"1.0.2"}]'
# Full override — specify folder, runtime, machine, and package version
uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --name "Smoke run" \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --runtime-type unattended \
  --machine-key 33333333-4444-5555-6666-777777777777 \
  --test-set-packages '[{"packageName":"InvoiceTests","version":"1.0.2"}]'

Data shape

{
  "Code": "TestCaseRun",
  "Data": {
    "Id": "b2c3d4e5-0000-0000-0000-000000000001",
    "Name": "Login smoke run",
    "ProjectId": "00000000-0000-0000-0000-000000000abc",
    "TestSetId": "a1b2c3d4-0000-0000-0000-000000000010",
    "TestSetObjKey": "DEMO:10",
    "Status": "Running",
    "ExecutionType": "automated",
    "Source": "Manual",
    "RunId": 1,
    "FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
    "ExecutionStart": "2025-04-15T10:30:00Z",
    "EnableCoverage": false,
    "EnforceExecutionOrder": false,
    "AutopilotForRobotsSettings": { "Enabled": false },
    "OrderedExecutionSettings": { "Enabled": false },
    "VideoRecordingSettings": { "Enabled": false }
  }
}
{
  "Code": "TestCaseRun",
  "Data": {
    "Id": "b2c3d4e5-0000-0000-0000-000000000001",
    "Name": "Login smoke run",
    "ProjectId": "00000000-0000-0000-0000-000000000abc",
    "TestSetId": "a1b2c3d4-0000-0000-0000-000000000010",
    "TestSetObjKey": "DEMO:10",
    "Status": "Running",
    "ExecutionType": "automated",
    "Source": "Manual",
    "RunId": 1,
    "FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
    "ExecutionStart": "2025-04-15T10:30:00Z",
    "EnableCoverage": false,
    "EnforceExecutionOrder": false,
    "AutopilotForRobotsSettings": { "Enabled": false },
    "OrderedExecutionSettings": { "Enabled": false },
    "VideoRecordingSettings": { "Enabled": false }
  }
}

Key fields:

  • Id — pass to uip tm wait, report get, result download, attachment download.
  • Status: "Running" — the execution may not have dispatched yet.
  • Source: "Manual" — all testcases run executions are tagged as manually triggered.

End-to-end workflow: package to results

# 1. Discover your project key
uip tm project list --output json

# 2. Find the test case UUIDs you want to run
uip tm testcases list --project-key DEMO --filter "login" --output json

# 3. Find the folder that holds your package
uip or folders list --output json

# 4. Run the test cases directly
id=$(uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --name "PR #42 smoke" \
  --output-filter Id)

# 5. Block until done (timeout in ms — 15 minutes here)
uip tm wait \
  --execution-id "$id" \
  --project-key DEMO \
  --timeout 900000

# 6. Read the result
uip tm report get --execution-id "$id" --project-key DEMO

# 7. Download JUnit XML for CI
uip tm result download \
  --execution-id "$id" \
  --project-key DEMO \
  --result-path ./junit.xml

# 8. Download screenshots and logs
uip tm attachment download \
  --execution-id "$id" \
  --project-key DEMO \
  --only-failed \
  --result-path ./attachments
# 1. Discover your project key
uip tm project list --output json

# 2. Find the test case UUIDs you want to run
uip tm testcases list --project-key DEMO --filter "login" --output json

# 3. Find the folder that holds your package
uip or folders list --output json

# 4. Run the test cases directly
id=$(uip tm testcases run \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --execution-type automated \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --name "PR #42 smoke" \
  --output-filter Id)

# 5. Block until done (timeout in ms — 15 minutes here)
uip tm wait \
  --execution-id "$id" \
  --project-key DEMO \
  --timeout 900000

# 6. Read the result
uip tm report get --execution-id "$id" --project-key DEMO

# 7. Download JUnit XML for CI
uip tm result download \
  --execution-id "$id" \
  --project-key DEMO \
  --result-path ./junit.xml

# 8. Download screenshots and logs
uip tm attachment download \
  --execution-id "$id" \
  --project-key DEMO \
  --only-failed \
  --result-path ./attachments

uip tm testcases add

Add one or more test cases to an existing test set.

Arguments

None.

Options

  • --test-set-key <key> (required) — test set object key (for example, DEMO:42).
  • --test-case-keys <keys> (required) — comma-separated test case keys to add (for example, DEMO:1,DEMO:2).

Example

uip tm testcases add \
  --test-set-key DEMO:42 \
  --test-case-keys DEMO:1,DEMO:2
uip tm testcases add \
  --test-set-key DEMO:42 \
  --test-case-keys DEMO:1,DEMO:2

Data shape

{
  "Code": "TestSetAddTestCases",
  "Data": {
    "TestSetKey": "DEMO:42",
    "Added": "DEMO:1, DEMO:2",
    "Result": "Added"
  }
}
{
  "Code": "TestSetAddTestCases",
  "Data": {
    "TestSetKey": "DEMO:42",
    "Added": "DEMO:1, DEMO:2",
    "Result": "Added"
  }
}

uip tm testcases remove

Remove one or more test cases from a test set.

Arguments

None.

Options

  • --test-set-key <key> (required) — test set object key (for example, DEMO:42).
  • --test-case-keys <keys> (required) — comma-separated test case keys to remove (for example, DEMO:1,DEMO:2).
  • -y, --yes — skip the confirmation prompt. Required in non-interactive environments.

Example

uip tm testcases remove \
  --test-set-key DEMO:42 \
  --test-case-keys DEMO:1,DEMO:2 \
  --yes
uip tm testcases remove \
  --test-set-key DEMO:42 \
  --test-case-keys DEMO:1,DEMO:2 \
  --yes

Data shape

{
  "Code": "TestSetRemoveTestCases",
  "Data": {
    "TestSetKey": "DEMO:42",
    "Removed": "DEMO:1, DEMO:2",
    "Result": "Removed"
  }
}
{
  "Code": "TestSetRemoveTestCases",
  "Data": {
    "TestSetKey": "DEMO:42",
    "Removed": "DEMO:1, DEMO:2",
    "Result": "Removed"
  }
}

uip tm testcases list-steps

List the manual test steps of a test case. This is an alias for testcases steps list.

Arguments

None.

Options

  • --project-key <key> (required) — owning project.
  • --test-case-id <uuid> (required) — internal test case UUID.

Example

uip tm testcases list-steps \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001
uip tm testcases list-steps \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001

Data shape

{
  "Code": "TestCaseStepsList",
  "Data": [
    {
      "Id": "d4e5f6a7-0000-0000-0000-000000000001",
      "TestCaseId": "a1b2c3d4-0000-0000-0000-000000000001",
      "OrderNo": 0,
      "ActionType": "Manual",
      "Description": "Open login page",
      "ExpectedResult": "Login form is displayed"
    }
  ]
}
{
  "Code": "TestCaseStepsList",
  "Data": [
    {
      "Id": "d4e5f6a7-0000-0000-0000-000000000001",
      "TestCaseId": "a1b2c3d4-0000-0000-0000-000000000001",
      "OrderNo": 0,
      "ActionType": "Manual",
      "Description": "Open login page",
      "ExpectedResult": "Login form is displayed"
    }
  ]
}

uip tm testcases steps

testcases steps is a subgroup that manages the individual manual steps of a test case: list, get, add, update, move, and delete.

uip tm testcases steps list

List the steps of a test case in order.

Arguments

None.

Options
  • --project-key <key> (required) — owning project.
  • --test-case-id <uuid> (required) — internal test case UUID.
Example
uip tm testcases steps list \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001
uip tm testcases steps list \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001
Data shape
{
  "Code": "TestCaseStepsList",
  "Data": [
    {
      "Id": "d4e5f6a7-0000-0000-0000-000000000001",
      "OrderNo": 0,
      "ActionType": "Manual",
      "Description": "Open login page",
      "ExpectedResult": "Login form is displayed"
    }
  ]
}
{
  "Code": "TestCaseStepsList",
  "Data": [
    {
      "Id": "d4e5f6a7-0000-0000-0000-000000000001",
      "OrderNo": 0,
      "ActionType": "Manual",
      "Description": "Open login page",
      "ExpectedResult": "Login form is displayed"
    }
  ]
}

uip tm testcases steps get

Get a single step by its UUID.

Arguments

None.

Options
  • --project-key <key> (required) — owning project.
  • --step-id <uuid> (required) — test step UUID (from steps list).
Example
uip tm testcases steps get \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001
uip tm testcases steps get \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001
Data shape
{
  "Code": "TestStepGet",
  "Data": {
    "Id": "d4e5f6a7-0000-0000-0000-000000000001",
    "OrderNo": 0,
    "ActionType": "Manual",
    "Description": "Open login page",
    "ExpectedResult": "Login form is displayed"
  }
}
{
  "Code": "TestStepGet",
  "Data": {
    "Id": "d4e5f6a7-0000-0000-0000-000000000001",
    "OrderNo": 0,
    "ActionType": "Manual",
    "Description": "Open login page",
    "ExpectedResult": "Login form is displayed"
  }
}

uip tm testcases steps add

Add one or more steps to a test case. Use inline flags for a single step or --step <json> (repeatable) for several at once.

Arguments

None.

Options
  • --project-key <key> (required) — owning project.
  • --test-case-id <uuid> (required) — test case to add steps to.
  • --description <text> — step description (single-step mode).
  • --expected-result <text> — expected outcome (single-step mode).
  • --action-type <type> — step action type (single-step mode).
  • --clipboard-data <text> — test data to copy for the step (single-step mode).
  • --order-no <n> — 0-based insert position; omit to append at the end (single-step mode).
  • --step <json> — a step as a JSON object ({"description":"...","expectedResult":"..."}). Repeat to add several steps.
Examples
# single step
uip tm testcases steps add \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --description "Open login page" \
  --expected-result "Login form is displayed"

# multiple steps
uip tm testcases steps add \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --step '{"description":"Open login page","expectedResult":"Login form is shown"}' \
  --step '{"description":"Enter credentials","clipboardData":"[email protected]"}' \
  --step '{"description":"Click submit","expectedResult":"Dashboard loads"}'
# single step
uip tm testcases steps add \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --description "Open login page" \
  --expected-result "Login form is displayed"

# multiple steps
uip tm testcases steps add \
  --project-key DEMO \
  --test-case-id a1b2c3d4-0000-0000-0000-000000000001 \
  --step '{"description":"Open login page","expectedResult":"Login form is shown"}' \
  --step '{"description":"Enter credentials","clipboardData":"[email protected]"}' \
  --step '{"description":"Click submit","expectedResult":"Dashboard loads"}'
Data shape
{
  "Code": "TestStepAdd",
  "Data": [
    {
      "Id": "d4e5f6a7-0000-0000-0000-000000000001",
      "OrderNo": 0,
      "Description": "Open login page",
      "ExpectedResult": "Login form is displayed"
    }
  ]
}
{
  "Code": "TestStepAdd",
  "Data": [
    {
      "Id": "d4e5f6a7-0000-0000-0000-000000000001",
      "OrderNo": 0,
      "Description": "Open login page",
      "ExpectedResult": "Login form is displayed"
    }
  ]
}

uip tm testcases steps update

Update a step's description, expected result, action type, or clipboard data. At least one of these fields must be provided.

Arguments

None.

Options
  • --project-key <key> (required) — owning project.
  • --step-id <uuid> (required) — test step UUID.
  • --description <text> — new description.
  • --expected-result <text> — new expected result.
  • --action-type <type> — new action type.
  • --clipboard-data <text> — new clipboard data.
Example
uip tm testcases steps update \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001 \
  --expected-result "Dashboard is shown"
uip tm testcases steps update \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001 \
  --expected-result "Dashboard is shown"
Data shape
{
  "Code": "TestStepUpdate",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Updated"
  }
}
{
  "Code": "TestStepUpdate",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Updated"
  }
}

uip tm testcases steps move

Move a step to a new position in the test case order.

Arguments

None.

Options
  • --project-key <key> (required) — owning project.
  • --step-id <uuid> (required) — test step UUID.
  • --target-position <n> (required) — new 0-based position (0 = first). Matches the OrderNo field from steps list.
Example
uip tm testcases steps move \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001 \
  --target-position 2
uip tm testcases steps move \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001 \
  --target-position 2
Data shape
{
  "Code": "TestStepMove",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "TargetPosition": 2,
    "Result": "Moved"
  }
}
{
  "Code": "TestStepMove",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "TargetPosition": 2,
    "Result": "Moved"
  }
}

uip tm testcases steps delete

Delete a step from a test case. This is permanent.

Arguments

None.

Options
  • --project-key <key> (required) — owning project.
  • --step-id <uuid> (required) — test step UUID.
  • -y, --yes — skip the confirmation prompt. Required in non-interactive environments.
Example
uip tm testcases steps delete \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001 \
  --yes
uip tm testcases steps delete \
  --project-key DEMO \
  --step-id d4e5f6a7-0000-0000-0000-000000000001 \
  --yes
Data shape
{
  "Code": "TestStepDelete",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}
{
  "Code": "TestStepDelete",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}

uip tm testcaselog list-assertions

List the assertions recorded for a single test case log. Every run of a test case produces exactly one test case log; its assertions are the individual checks the automation recorded. This verb surfaces why a test case log is marked Failed.

This verb is registered under testcaselog, not testcases, but is documented here because it reads assertion artifacts for a test case's log.

Arguments

None.

Options

  • --test-case-log-id <uuid> (required) — test case log UUID. Get it from uip tm executions testcaselogs list or uip tm testcases list-result-history.
  • --project-key <key> (required) — owning project.

Example

uip tm testcaselog list-assertions \
  --test-case-log-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO
uip tm testcaselog list-assertions \
  --test-case-log-id a1b2c3d4-0000-0000-0000-000000000001 \
  --project-key DEMO

Data shape

{
  "Code": "TestCaseLogAssertions",
  "Data": [
    { "Message": "Title contains 'Welcome'", "Succeeded": true },
    { "Message": "Button 'Login' visible", "Succeeded": false }
  ]
}
{
  "Code": "TestCaseLogAssertions",
  "Data": [
    { "Message": "Title contains 'Welcome'", "Succeeded": true },
    { "Message": "Button 'Login' visible", "Succeeded": false }
  ]
}

uip tm testcaselog start

Signal the start of a manual test case log entry for a specific test case within an execution.

Arguments

None.

Options

  • --execution-id <uuid> (required) — the execution in which the test case is running.
  • --test-case-id <uuid> (required) — internal UUID of the test case being logged.
  • --execution-type <type> — execution type for the log entry (for example, automated, manual). Optional.

Example

uip tm testcaselog start \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --test-case-id b2c3d4e5-0000-0000-0000-000000000001
uip tm testcaselog start \
  --execution-id a1b2c3d4-0000-0000-0000-000000000001 \
  --test-case-id b2c3d4e5-0000-0000-0000-000000000001

Data shape

{
  "Code": "TestCaseLogStart",
  "Data": {
    "TestCaseLogId": "c3d4e5f6-0000-0000-0000-000000000001",
    "Status": "InProgress"
  }
}
{
  "Code": "TestCaseLogStart",
  "Data": {
    "TestCaseLogId": "c3d4e5f6-0000-0000-0000-000000000001",
    "Status": "InProgress"
  }
}

uip tm testcaselog finish

Signal the end of a manually started test case log entry.

Arguments

None.

Options

  • --test-case-log-id <uuid> (required) — the log ID returned by testcaselog start.
  • --info <text> — optional error or informational message to attach to the log entry.

Example

uip tm testcaselog finish \
  --test-case-log-id c3d4e5f6-0000-0000-0000-000000000001 \
  --info "Login button not found on page"
uip tm testcaselog finish \
  --test-case-log-id c3d4e5f6-0000-0000-0000-000000000001 \
  --info "Login button not found on page"

Data shape

{
  "Code": "TestCaseLogFinish",
  "Data": {
    "TestCaseLogId": "c3d4e5f6-0000-0000-0000-000000000001",
    "Result": "Finished"
  }
}
{
  "Code": "TestCaseLogFinish",
  "Data": {
    "TestCaseLogId": "c3d4e5f6-0000-0000-0000-000000000001",
    "Result": "Finished"
  }
}
  • project — scope that owns every test case.
  • testsets — group test cases into a runnable suite.
  • executions — execution-level views of test case logs.
  • report — summary of a run, with failed cases and assertion text.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated