- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip maestro authoring
- uip maestro registry
- uip model-hub
- activities find
- activities get-default-xaml
- analyze
- analyzer-rules list
- build
- cleanup
- data-fabric-entities install
- data-fabric-entities list
- files diff
- get-library-object-repository
- get-object-repository
- init
- instances list
- pack
- packages inspect
- packages install
- packages versions
- publish
- remote
- restore
- run, debug & execution
- settings
- studio start
- templates search
- test-data add-entity
- test-data add-queue
- test-data add-variation
- tm
- uia
- validate
- workflow-examples get
- workflow-examples list
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
uip tm testsets
Syntax and options for `uip tm testsets`, which manages Test Manager test sets, their test case assignments, run configuration, and settings, and runs them as tracked executions.
uip tm testsets manages test sets, the executable unit in Test Manager. A test set is an ordered group of test cases launched as a single command and tracked as a single execution. Every testsets run call returns an ExecutionId that the other uip tm verbs (wait, executions, report, result, attachment) take as input.
The verbs also assign test cases to a test set dynamically by label, clone a test set, assign people to its test cases, set the execution order and settings, and configure where the test set runs: Orchestrator folder, robot account, execution target, and package versions.
Synopsis
uip tm testsets create (--project-key <key> | --project-id <id>) --name <name> [--description <text>] [--dynamic-labels <labels...>]
uip tm testsets list (--project-key <key> | --project-id <id>) [--folder-key <uuid>] [--filter <text>] [--labels <labels...> [--limit <n>] [--offset <n>]] [--include-last-execution]
uip tm testsets group-by (--project-key <key> | --project-id <id>) --field <name> [--sort-order <order>]
uip tm testsets get --test-set-key <key>
uip tm testsets update --test-set-key <key> [--name <name>] [--description <text>]
uip tm testsets clone --test-set-key <key> --new-name <name> [--include <items...>] [--no-wait] [--timeout <seconds>]
uip tm testsets delete --test-set-key <key> --yes
uip tm testsets list-testcases [--project-key <key> | --project-id <id>] --test-set-key <key>
uip tm testsets get-dynamic-assignment [--project-key <key> | --project-id <id>] --test-set-key <key>
uip tm testsets assign-user --test-set-key <key> (--test-case-keys <keys...> | --labels <labels...> | --all) (--assignee-email <email> | --assignee-id <uuid> | --unassign)
uip tm testsets set-execution-order --test-set-key <key> --test-case-keys <keys...>
uip tm testsets settings get --test-set-key <key>
uip tm testsets settings set --test-set-key <key> (--enforce-execution-order | --no-enforce-execution-order)
uip tm testsets set-folder --test-set-key <key> (--folder-path <path> | --folder-key <uuid>)
uip tm testsets set-robot --test-set-key <key> (--robot-name <name> | --robot-user-key <uuid>)
uip tm testsets set-execution-target --test-set-key <key> [--runtime-type <type>] [--robot-name <name> | --robot-user-key <uuid> | --clear-robot] [--machine-name <name> | --machine-key <uuid> | --clear-machine] [--host-machine-name <name>] [--service-user-name <name>]
uip tm testsets autoselect-packages --test-set-key <key> [--folder-path <path> | --folder-key <uuid>]
uip tm testsets run --test-set-key <key> [--execution-type <type>] [--input-path <file>] [--playwright-project <name>] [--wait [--timeout <seconds>] [--poll-interval <seconds>]]
uip tm testsets playwright-context --test-set-key <key>
uip tm testsets create (--project-key <key> | --project-id <id>) --name <name> [--description <text>] [--dynamic-labels <labels...>]
uip tm testsets list (--project-key <key> | --project-id <id>) [--folder-key <uuid>] [--filter <text>] [--labels <labels...> [--limit <n>] [--offset <n>]] [--include-last-execution]
uip tm testsets group-by (--project-key <key> | --project-id <id>) --field <name> [--sort-order <order>]
uip tm testsets get --test-set-key <key>
uip tm testsets update --test-set-key <key> [--name <name>] [--description <text>]
uip tm testsets clone --test-set-key <key> --new-name <name> [--include <items...>] [--no-wait] [--timeout <seconds>]
uip tm testsets delete --test-set-key <key> --yes
uip tm testsets list-testcases [--project-key <key> | --project-id <id>] --test-set-key <key>
uip tm testsets get-dynamic-assignment [--project-key <key> | --project-id <id>] --test-set-key <key>
uip tm testsets assign-user --test-set-key <key> (--test-case-keys <keys...> | --labels <labels...> | --all) (--assignee-email <email> | --assignee-id <uuid> | --unassign)
uip tm testsets set-execution-order --test-set-key <key> --test-case-keys <keys...>
uip tm testsets settings get --test-set-key <key>
uip tm testsets settings set --test-set-key <key> (--enforce-execution-order | --no-enforce-execution-order)
uip tm testsets set-folder --test-set-key <key> (--folder-path <path> | --folder-key <uuid>)
uip tm testsets set-robot --test-set-key <key> (--robot-name <name> | --robot-user-key <uuid>)
uip tm testsets set-execution-target --test-set-key <key> [--runtime-type <type>] [--robot-name <name> | --robot-user-key <uuid> | --clear-robot] [--machine-name <name> | --machine-key <uuid> | --clear-machine] [--host-machine-name <name>] [--service-user-name <name>]
uip tm testsets autoselect-packages --test-set-key <key> [--folder-path <path> | --folder-key <uuid>]
uip tm testsets run --test-set-key <key> [--execution-type <type>] [--input-path <file>] [--playwright-project <name>] [--wait [--timeout <seconds>] [--poll-interval <seconds>]]
uip tm testsets playwright-context --test-set-key <key>
All verbs honor the global options and the standard exit codes. Every verb accepts --log-level <level> (default Information).
Verbs that take --project-key and --project-id need one of them. When both are given, --project-id wins and --project-key is ignored. Verbs that take only --test-set-key derive the project from the key's prefix (DEMO:10 → project DEMO). list-testcases and get-dynamic-assignment also fall back to that prefix when neither project option is given.
uip tm testsets create
Create a test set in a project. With --dynamic-labels, the test set also includes every test case that carries one of the labels, including test cases labeled after the test set is created. To change the labels later, use uip tm testcases add --labels --dynamic and uip tm testcases remove --dynamic.
Arguments
None.
Options
| Flag | Description |
|---|---|
--project-key <key> | Test Manager project key (for example, DEMO). Ignored if --project-id is also given. |
--project-id <id> | Test Manager project ID. Use instead of --project-key, and wins if both are given. |
--name <name> | Required. Test set name. |
--description <text> | Free-form description. Defaults to empty. |
--dynamic-labels <labels...> | Assign test cases dynamically: every test case that carries at least one of these labels is part of the test set, now and later. Space-separated label names, matched exactly and case-insensitively. Blank and duplicate names are dropped; at most 30 labels. |
Example
uip tm testsets create \
--project-key DEMO \
--name "Smoke Suite" \
--description "Core smoke tests"
uip tm testsets create \
--project-key DEMO \
--name "Smoke Suite" \
--dynamic-labels smoke
uip tm testsets create \
--project-key DEMO \
--name "Smoke Suite" \
--description "Core smoke tests"
uip tm testsets create \
--project-key DEMO \
--name "Smoke Suite" \
--dynamic-labels smoke
Data shape
{
"Code": "TestSetCreate",
"Data": {
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite",
"Description": "Core smoke tests"
}
}
{
"Code": "TestSetCreate",
"Data": {
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite",
"Description": "Core smoke tests"
}
}
With --dynamic-labels, Data also carries DynamicLabels (the stored labels) and MatchedTestCases (how many test cases the labels match now). If counting the matches fails after the labels are saved, MatchedTestCases is null and Warning says so. If the labels cannot be assigned, the test set still exists, and the command returns Result: "Failure", exits 1, and names the testcases add --dynamic command to retry with.
uip tm testsets list
List test sets in a project.
Arguments
None.
Options
| Flag | Description |
|---|---|
--project-key <key> | Test Manager project key (for example, DEMO). Ignored if --project-id is also given. |
--project-id <id> | Test Manager project ID. Use instead of --project-key, and wins if both are given. |
--folder-key <uuid> | Filter by Orchestrator folder key (from uip or folders list). |
--filter <text> | Server-side search over name. Cannot be combined with --labels. |
--labels <labels...> | Return only test sets that carry at least one of these labels. Space-separated exact names, at most 100. Pages the results with --limit and --offset. |
--limit <n> | With --labels: number of results to return. Defaults to 50. Rejected without --labels. |
--offset <n> | With --labels: number of results to skip. Defaults to 0. Rejected without --labels. |
--include-last-execution | Add the latest execution's status and timestamp to each test set (see LastExecutionStatus/LastExecutionAt below). Costs one extra lookup per test set. |
Example
uip tm testsets list --project-key DEMO --filter smoke
uip tm testsets list --project-key DEMO --labels Regression Smoke --limit 20
uip tm testsets list --project-key DEMO --filter smoke
uip tm testsets list --project-key DEMO --labels Regression Smoke --limit 20
Data shape
{
"Code": "TestSetsList",
"Data": [
{
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite",
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
"Id": "a1b2c3d4-0000-0000-0000-000000000010"
}
]
}
{
"Code": "TestSetsList",
"Data": [
{
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite",
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
"Id": "a1b2c3d4-0000-0000-0000-000000000010"
}
]
}
Id is the internal UUID — needed by executions list --test-set-id. With --include-last-execution, each entry also gets LastExecutionStatus and LastExecutionAt (both empty strings if the test set has never run).
Without --labels, the command returns every matching test set in one response. With --labels, the envelope also carries a Pagination object (Returned, Limit, Offset, HasMore). When HasMore is true, Instructions gives the --offset value for the next page.
uip tm testsets group-by
Count the test sets in a project per value of a custom label field, for example Priority. Requires a Test Cloud license.
Arguments
None.
Options
| Flag | Description |
|---|---|
--project-key <key> | Test Manager project key (for example, DEMO). Ignored if --project-id is also given. |
--project-id <id> | Test Manager project ID. Use instead of --project-key, and wins if both are given. |
--field <name> | Required. Name of the custom label field to group by. |
--sort-order <order> | Sort the values: asc or desc. Defaults to asc. |
Example
uip tm testsets group-by --project-key DEMO --field Priority
uip tm testsets group-by --project-key DEMO --field Priority
Data shape
{
"Code": "TestSetGroupBy",
"Data": [
{ "Value": "High", "Count": 8 },
{ "Value": "Low", "Count": 3 }
]
}
{
"Code": "TestSetGroupBy",
"Data": [
{ "Value": "High", "Count": 8 },
{ "Value": "Low", "Count": 3 }
]
}
The row that counts test sets without a value for the field has "Value": null.
uip tm testsets get
Show a test set with its Orchestrator folder, selected packages, and execution target.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
Example
uip tm testsets get --test-set-key DEMO:7
uip tm testsets get --test-set-key DEMO:7
Data shape
{
"Code": "TestSetGet",
"Data": {
"TestSetKey": "DEMO:7",
"Id": "a1b2c3d4-0000-0000-0000-000000000007",
"Name": "Regression Test Set",
"Description": null,
"Source": "TestManager",
"EnforceExecutionOrder": false,
"RobotName": null,
"RobotUserKey": null,
"Folder": {
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
"DisplayName": "Regression",
"FullyQualifiedName": "Production/Regression",
"IsDefaultFolder": false
},
"Packages": [
{
"TestSetId": "a1b2c3d4-0000-0000-0000-000000000007",
"PackageName": "Demo.Regression.Tests",
"Version": "1.4.2",
"PlaywrightProjects": null
}
],
"ExecutionTarget": {
"RuntimeType": "serverless",
"RobotName": null,
"RobotUserKey": null,
"MachineKey": null,
"MachineName": null,
"HostMachineName": null,
"ServiceUsername": null
}
}
}
{
"Code": "TestSetGet",
"Data": {
"TestSetKey": "DEMO:7",
"Id": "a1b2c3d4-0000-0000-0000-000000000007",
"Name": "Regression Test Set",
"Description": null,
"Source": "TestManager",
"EnforceExecutionOrder": false,
"RobotName": null,
"RobotUserKey": null,
"Folder": {
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
"DisplayName": "Regression",
"FullyQualifiedName": "Production/Regression",
"IsDefaultFolder": false
},
"Packages": [
{
"TestSetId": "a1b2c3d4-0000-0000-0000-000000000007",
"PackageName": "Demo.Regression.Tests",
"Version": "1.4.2",
"PlaywrightProjects": null
}
],
"ExecutionTarget": {
"RuntimeType": "serverless",
"RobotName": null,
"RobotUserKey": null,
"MachineKey": null,
"MachineName": null,
"HostMachineName": null,
"ServiceUsername": null
}
}
}
Folder is null when neither the test set nor the project has an Orchestrator folder. If the folder, the packages, or the execution target cannot be read (the execution target requires a Test Cloud license), that field is null, Warning names what was not read, and the command still succeeds.
uip tm testsets update
Rename a test set or change its description. At least one of --name or --description must be supplied, and --name cannot be empty.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set key (for example, DEMO:10). The project is derived from the prefix. |
--name <name> | New name. |
--description <text> | New description. |
Example
uip tm testsets update \
--test-set-key DEMO:10 \
--name "Smoke Suite (2026)"
uip tm testsets update \
--test-set-key DEMO:10 \
--name "Smoke Suite (2026)"
Data shape
{
"Code": "TestSetUpdate",
"Data": {
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite (2026)",
"Description": "Core smoke tests",
"Result": "Updated"
}
}
{
"Code": "TestSetUpdate",
"Data": {
"TestSetKey": "DEMO:10",
"Name": "Smoke Suite (2026)",
"Description": "Core smoke tests",
"Result": "Updated"
}
}
uip tm testsets clone
Copy a test set under a new name. The copy gets the source's description, coverage setting, custom fields, assigned test cases with their parameter overrides, and label filter. Folder, robot, packages, and execution order are not copied.
Test Manager clones in the background. By default the command waits until the copy exists and holds as many static test cases as the source, then returns Result: "Cloned"; parameter overrides, the label filter, labels, and documents follow right after. With --no-wait, the command returns Result: "Accepted" as soon as Test Manager accepts the request, with TestSetKey, Id, and TestCases set to null.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Key of the test set to copy (for example, DEMO:7). The project is derived from the prefix. |
--new-name <name> | Required. Name for the copy, up to 255 characters. The CLI finds the copy by this name, so use a name no other test set in the project has. |
--include <items...> | Also copy these, space-separated: labels, documents. Neither is copied by default. |
--no-wait | Return once Test Manager accepts the clone instead of waiting for the copy to appear and fill up. |
--timeout <seconds> | How long to wait for the copy, from 1 to 3600. Defaults to 60. |
Do not run clone again after a timeout. Test Manager refuses a second clone of the same source while one is in progress, and a later run creates a second copy. On timeout the command returns Result: "TimeoutError" and exits 4; check for the copy with uip tm testsets list --project-key DEMO --filter "<new name>".
Example
uip tm testsets clone \
--test-set-key DEMO:7 \
--new-name "Regression Test Set (copy)" \
--include labels documents
uip tm testsets clone \
--test-set-key DEMO:7 \
--new-name "Regression Test Set (copy)" \
--include labels documents
Data shape
{
"Code": "TestSetClone",
"Data": {
"TestSetKey": "DEMO:12",
"Name": "Regression Test Set (copy)",
"Id": "a1b2c3d4-0000-0000-0000-000000000012",
"SourceTestSetKey": "DEMO:7",
"TestCases": 6,
"Result": "Cloned"
}
}
{
"Code": "TestSetClone",
"Data": {
"TestSetKey": "DEMO:12",
"Name": "Regression Test Set (copy)",
"Id": "a1b2c3d4-0000-0000-0000-000000000012",
"SourceTestSetKey": "DEMO:7",
"TestCases": 6,
"Result": "Cloned"
}
}
TestCases is the number of static test cases in the copy. With --include, Warning states that labels or documents may still be arriving.
uip tm testsets delete
Delete a test set by its key.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set key (for example, DEMO:10). The project is derived from the prefix. |
-y, --yes | Required. Confirms the irreversible deletion. The CLI never prompts; without --yes, the command returns Result: "Failure" and exits 1. |
Example
uip tm testsets delete --test-set-key DEMO:10 --yes
uip tm testsets delete --test-set-key DEMO:10 --yes
Data shape
{
"Code": "TestSetDelete",
"Data": {
"TestSetKey": "DEMO:10",
"Id": "a1b2c3d4-0000-0000-0000-000000000010",
"Result": "Deleted"
}
}
{
"Code": "TestSetDelete",
"Data": {
"TestSetKey": "DEMO:10",
"Id": "a1b2c3d4-0000-0000-0000-000000000010",
"Result": "Deleted"
}
}
uip tm testsets list-testcases
List the test cases in a test set, both the statically linked ones and the ones its dynamic-assignment labels include. This is the same set of test cases a run executes. AssignmentType is Static, Dynamic, or Both.
Static rows come first, in execution order, followed by dynamic rows. A test set linked from an external source lists its static links only, because runs of such a test set ignore dynamic assignment.
Arguments
None.
Options
| Flag | Description |
|---|---|
--project-key <key> | Test Manager project key (for example, DEMO). Ignored if --project-id is also given. |
--project-id <id> | Test Manager project ID. Use instead of --project-key, and wins if both are given. |
--test-set-key <key> | Required. Test set to inspect. |
Example
uip tm testsets list-testcases --test-set-key DEMO:10
uip tm testsets list-testcases --test-set-key DEMO:10
Data shape
{
"Code": "TestSetTestCasesList",
"Data": [
{
"TestCaseKey": "DEMO:1",
"Name": "Login smoke",
"Version": "1.0.0",
"Description": "Logs in and out",
"AssignmentType": "Static"
},
{
"TestCaseKey": "DEMO:2",
"Name": "Checkout",
"Version": "1.0.0",
"Description": "Purchase flow",
"AssignmentType": "Dynamic"
}
]
}
{
"Code": "TestSetTestCasesList",
"Data": [
{
"TestCaseKey": "DEMO:1",
"Name": "Login smoke",
"Version": "1.0.0",
"Description": "Logs in and out",
"AssignmentType": "Static"
},
{
"TestCaseKey": "DEMO:2",
"Name": "Checkout",
"Version": "1.0.0",
"Description": "Purchase flow",
"AssignmentType": "Dynamic"
}
]
}
uip tm testsets get-dynamic-assignment
Show the labels that assign test cases to a test set dynamically, and how many test cases they match right now. DynamicLabels is empty when the test set has none. Set the labels with uip tm testcases add --labels --dynamic or testsets create --dynamic-labels.
Arguments
None.
Options
| Flag | Description |
|---|---|
--project-key <key> | Test Manager project key (for example, DEMO). Ignored if --project-id is also given. |
--project-id <id> | Test Manager project ID. Use instead of --project-key, and wins if both are given. |
--test-set-key <key> | Required. Test set object key (for example, DEMO:10). |
Example
uip tm testsets get-dynamic-assignment --test-set-key DEMO:10
uip tm testsets get-dynamic-assignment --test-set-key DEMO:10
Data shape
{
"Code": "TestSetDynamicAssignmentGet",
"Data": {
"TestSetKey": "DEMO:10",
"DynamicLabels": ["smoke", "regression"],
"MatchedTestCases": 14
}
}
{
"Code": "TestSetDynamicAssignmentGet",
"Data": {
"TestSetKey": "DEMO:10",
"DynamicLabels": ["smoke", "regression"],
"MatchedTestCases": 14
}
}
For a test set linked from an external source, MatchedTestCases is 0 and Warning states that runs do not pick up test cases by these labels.
uip tm testsets assign-user
Assign a person to test cases inside a test set, or clear the assignee with --unassign. Pick the test cases with exactly one of --test-case-keys, --labels, or --all, and the person with exactly one of --assignee-email, --assignee-id, or --unassign.
Only test cases linked to the test set statically are assigned; test cases included only through dynamic-assignment labels are not. If no test case in the test set matches the selection, the command returns a validation error.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--test-case-keys <keys...> | Test case keys to assign, space-separated. Keys that exist in the project but are not in the test set are skipped and listed in Skipped. |
--labels <labels...> | Assign the test cases in the test set that carry any of these labels. |
--all | Assign every test case in the test set. |
--assignee-email <email> | The person's email, resolved to their identity ID through Orchestrator. Your account needs access to the user list in Orchestrator; otherwise pass --assignee-id. |
--assignee-id <uuid> | The person's identity ID. Skips the email lookup. |
--unassign | Remove the current assignee. |
Example
uip tm testsets assign-user \
--test-set-key DEMO:7 \
--labels Smoke \
--assignee-email tester@example.com
uip tm testsets assign-user --test-set-key DEMO:7 --all --unassign
uip tm testsets assign-user \
--test-set-key DEMO:7 \
--labels Smoke \
--assignee-email tester@example.com
uip tm testsets assign-user --test-set-key DEMO:7 --all --unassign
Data shape
{
"Code": "TestSetAssignUser",
"Data": {
"TestSetKey": "DEMO:7",
"Assignee": {
"Id": "a1b2c3d4-0000-0000-0000-000000000001",
"Email": "tester@example.com",
"UserName": "tester@example.com"
},
"Assigned": 4,
"TestCaseKeys": ["DEMO:1", "DEMO:2", "DEMO:5", "DEMO:8"],
"Skipped": []
}
}
{
"Code": "TestSetAssignUser",
"Data": {
"TestSetKey": "DEMO:7",
"Assignee": {
"Id": "a1b2c3d4-0000-0000-0000-000000000001",
"Email": "tester@example.com",
"UserName": "tester@example.com"
},
"Assigned": 4,
"TestCaseKeys": ["DEMO:1", "DEMO:2", "DEMO:5", "DEMO:8"],
"Skipped": []
}
}
Assignee is null with --unassign, and holds only Id with --assignee-id.
uip tm testsets set-execution-order
Set the order in which the test set's test cases run. List every test case linked to the test set statically, once each, first to last. Runs follow the order only after you enable it with settings set --enforce-execution-order.
If a key is not in the project, is not assigned to the test set, or an assigned test case is missing from the list, the command returns a validation error and writes nothing.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--test-case-keys <keys...> | Required. Every assigned test case key, in execution order, space-separated. |
Example
uip tm testsets set-execution-order \
--test-set-key DEMO:7 \
--test-case-keys DEMO:3 DEMO:1 DEMO:2
uip tm testsets set-execution-order \
--test-set-key DEMO:7 \
--test-case-keys DEMO:3 DEMO:1 DEMO:2
Data shape
{
"Code": "TestSetExecutionOrder",
"Data": {
"TestSetKey": "DEMO:7",
"OrderSource": "server",
"Order": [
{ "Position": 1, "TestCaseKey": "DEMO:3", "TestCaseName": "Login" },
{ "Position": 2, "TestCaseKey": "DEMO:1", "TestCaseName": "Create Order" },
{ "Position": 3, "TestCaseKey": "DEMO:2", "TestCaseName": "Logout" }
]
}
}
{
"Code": "TestSetExecutionOrder",
"Data": {
"TestSetKey": "DEMO:7",
"OrderSource": "server",
"Order": [
{ "Position": 1, "TestCaseKey": "DEMO:3", "TestCaseName": "Login" },
{ "Position": 2, "TestCaseKey": "DEMO:1", "TestCaseName": "Create Order" },
{ "Position": 3, "TestCaseKey": "DEMO:2", "TestCaseName": "Logout" }
]
}
}
OrderSource is server when Order is read back from Test Manager after the write. When the read-back is not available, OrderSource is request, Order echoes the request, and Warning explains why.
uip tm testsets settings get
Show a test set's settings: execution-order enforcement, stop on failure, coverage, remote control, video recording, and Autopilot. Of these, only EnforceExecutionOrder can be changed, with settings set.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
Example
uip tm testsets settings get --test-set-key DEMO:7
uip tm testsets settings get --test-set-key DEMO:7
Data shape
{
"Code": "TestSetSettingsGet",
"Data": {
"TestSetKey": "DEMO:7",
"EnforceExecutionOrder": true,
"StopOnFailure": false,
"EnableCoverage": false,
"RemoteControlAccess": "none",
"VideoRecording": { "Type": "failed", "MaxDurationSeconds": 600 },
"Autopilot": { "Enabled": false, "HealingEnabled": false },
"ExecutionNameFormatOverride": null
}
}
{
"Code": "TestSetSettingsGet",
"Data": {
"TestSetKey": "DEMO:7",
"EnforceExecutionOrder": true,
"StopOnFailure": false,
"EnableCoverage": false,
"RemoteControlAccess": "none",
"VideoRecording": { "Type": "failed", "MaxDurationSeconds": 600 },
"Autopilot": { "Enabled": false, "HealingEnabled": false },
"ExecutionNameFormatOverride": null
}
}
uip tm testsets settings set
Turn execution-order enforcement on or off. When it is on, the test cases run in the order set with set-execution-order. Works only on test sets created in Test Manager with at most 300 static test cases.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--enforce-execution-order | Run the test cases in their set order. |
--no-enforce-execution-order | Let the test cases run in any order. |
Pass one of --enforce-execution-order or --no-enforce-execution-order; without either, the command returns a validation error.
Example
uip tm testsets settings set --test-set-key DEMO:7 --enforce-execution-order
uip tm testsets settings set --test-set-key DEMO:7 --enforce-execution-order
Data shape
{
"Code": "TestSetSettingsSet",
"Data": {
"TestSetKey": "DEMO:7",
"EnforceExecutionOrder": true,
"Result": "Updated"
}
}
{
"Code": "TestSetSettingsSet",
"Data": {
"TestSetKey": "DEMO:7",
"EnforceExecutionOrder": true,
"Result": "Updated"
}
}
uip tm testsets set-folder
Set the Orchestrator folder a test set runs in. A test set without its own folder runs in the project's default folder. Pass exactly one of --folder-path or --folder-key.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--folder-path <path> | Fully qualified Orchestrator folder path (for example, Production/Regression), resolved in Orchestrator. |
--folder-key <uuid> | Orchestrator folder key (from uip or folders list). Use instead of --folder-path to skip the Orchestrator lookup. |
Example
uip tm testsets set-folder \
--test-set-key DEMO:7 \
--folder-path "Production/Regression"
uip tm testsets set-folder \
--test-set-key DEMO:7 \
--folder-path "Production/Regression"
Data shape
{
"Code": "TestSetFolderSet",
"Data": {
"TestSetKey": "DEMO:7",
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
"FolderPath": "Production/Regression",
"Result": "Updated"
}
}
{
"Code": "TestSetFolderSet",
"Data": {
"TestSetKey": "DEMO:7",
"FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
"FolderPath": "Production/Regression",
"Result": "Updated"
}
}
FolderPath appears only when you pass --folder-path.
uip tm testsets set-robot
Set the robot account a test set runs with. Pass exactly one of --robot-name or --robot-user-key. A name is looked up in the test set's folder (or the project's default folder), or across the tenant when neither exists, and must match exactly one robot account.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--robot-name <name> | Robot account name as shown by uip or users list. |
--robot-user-key <uuid> | Orchestrator user key of the robot account. |
Example
uip tm testsets set-robot --test-set-key DEMO:7 --robot-name svc-robot
uip tm testsets set-robot --test-set-key DEMO:7 --robot-name svc-robot
Data shape
{
"Code": "TestSetRobotSet",
"Data": {
"TestSetKey": "DEMO:7",
"RobotName": "svc-robot",
"RobotUserKey": "a1b2c3d4-0000-0000-0000-000000000003",
"Result": "Updated"
}
}
{
"Code": "TestSetRobotSet",
"Data": {
"TestSetKey": "DEMO:7",
"RobotName": "svc-robot",
"RobotUserKey": "a1b2c3d4-0000-0000-0000-000000000003",
"Result": "Updated"
}
}
uip tm testsets set-execution-target
Set where a test set runs: runtime type, robot account, and machine. Fields you do not pass keep their current value. The CLI reads the whole target, merges your changes, and writes it back, so a change made elsewhere in between is overwritten. Requires a Test Cloud license.
Changing or clearing the machine also drops the stored host machine name and service user name unless you pass them again. A runtime type without a machine (serverless, serverlessTestAutomation, attendedStudioWeb, assistantWeb) drops the stored machine and rejects the machine flags.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--runtime-type <type> | Runtime type: nonProduction, attended, unattended, rpaDeveloper, studioX, headless, rpaDeveloperPro, testAutomation, automationCloud, serverless, automationKit, serverlessTestAutomation, automationCloudTestAutomation, attendedStudioWeb, hosting, assistantWeb, processOrchestration, agentService, appTest, performanceTest, businessRule, caseManagement. Required when the target has no runtime type yet. |
--robot-name <name> | Robot account name, looked up in the test set's folder. Use instead of --robot-user-key. |
--robot-user-key <uuid> | Orchestrator user key of the robot account. |
--machine-name <name> | Machine (template) name, resolved in Orchestrator. Use instead of --machine-key. |
--machine-key <uuid> | Orchestrator machine key. |
--host-machine-name <name> | Host machine name for a specific machine. Requires a machine on the target. |
--service-user-name <name> | Service user name on the host machine. Requires a machine and a host machine name on the target. |
--clear-machine | Drop the stored machine with its host machine name and service user name. Cannot be combined with --machine-name or --machine-key. |
--clear-robot | Drop the stored robot account. Cannot be combined with --robot-name or --robot-user-key. |
Pass at least one change. Invalid combinations return a validation error before anything is written.
Example
uip tm testsets set-execution-target \
--test-set-key DEMO:7 \
--runtime-type serverless
uip tm testsets set-execution-target \
--test-set-key DEMO:7 \
--runtime-type serverless
Data shape
{
"Code": "TestSetExecutionTargetSet",
"Data": {
"TestSetKey": "DEMO:7",
"TargetSource": "server",
"RuntimeType": "serverless",
"RobotName": null,
"RobotUserKey": null,
"MachineKey": null,
"MachineName": null,
"HostMachineName": null,
"ServiceUsername": null,
"Result": "Updated"
}
}
{
"Code": "TestSetExecutionTargetSet",
"Data": {
"TestSetKey": "DEMO:7",
"TargetSource": "server",
"RuntimeType": "serverless",
"RobotName": null,
"RobotUserKey": null,
"MachineKey": null,
"MachineName": null,
"HostMachineName": null,
"ServiceUsername": null,
"Result": "Updated"
}
}
TargetSource is server when the target is read back from Test Manager after the write. If the read-back fails, TargetSource is request, the fields echo the request, and Warning explains why; the write has still succeeded, so do not retry.
uip tm testsets autoselect-packages
Show the package versions Test Manager picks for the test set's automated test cases. The command is read-only; a run with no saved packages selects packages the same way.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:7). The project is derived from the prefix. |
--folder-path <path> | Look in this Orchestrator folder's feed instead of the test set's folder (or the project's default folder). |
--folder-key <uuid> | Orchestrator folder key. Use instead of --folder-path. |
Example
uip tm testsets autoselect-packages --test-set-key DEMO:7
uip tm testsets autoselect-packages --test-set-key DEMO:7
Data shape
{
"Code": "TestSetPackagesAutoselect",
"Data": [
{
"TestSetId": "a1b2c3d4-0000-0000-0000-000000000007",
"PackageName": "Demo.Regression.Tests",
"Version": "1.4.2",
"PlaywrightProjects": null
}
]
}
{
"Code": "TestSetPackagesAutoselect",
"Data": [
{
"TestSetId": "a1b2c3d4-0000-0000-0000-000000000007",
"PackageName": "Demo.Regression.Tests",
"Version": "1.4.2",
"PlaywrightProjects": null
}
]
}
uip tm testsets run
Run a test set and return its ExecutionId. By default the command returns as soon as the execution is queued. Pass --wait to block until the execution reaches a terminal state — this combines the launch and wait steps into one command.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:42). The project key is derived from the prefix. |
--execution-type <type> | Type of test cases to execute: automated (default), manual, mixed (both automated and manual), or none (no type filter). |
--input-path <file> | Path to a JSON file containing parameter overrides for the execution. Format: [{"name":"Param","type":"String","value":"v"}]. The overrides are saved on the test set, so later runs reuse them until they are changed. |
--playwright-project <name> | Playwright only. The one Playwright project to run (for example, chromium); at most one per execution. Requires a test set whose test cases all come from a single Playwright package. The selection is saved on the test set and reused by later runs. Omit it to keep the selection an earlier run saved (SelectedPlaywrightProjects in playwright-context), or to use the playwright.config defaults when none is saved. For the available names (AvailablePlaywrightProjects), refer to uip tm testsets playwright-context. |
--wait | Block until the execution reaches a terminal state (finished, cancelled). When omitted, the command returns immediately after queuing. |
--timeout <seconds> | Maximum seconds to wait for the execution to finish (0 for no timeout). Requires --wait. Default: 1800. |
--poll-interval <seconds> | Seconds between status checks while waiting. Requires --wait. Default: 60. |
If the Playwright project selection fails, for example because the name is unknown or the test set isn't a single-package Playwright set, the command returns Result: "Failure" before it applies --input-path overrides or starts the execution. For an unknown name, the error message lists the available project names.
Examples
# Fire-and-forget — returns ExecutionId immediately
uip tm testsets run --test-set-key DEMO:10
# Block until done — no need for a separate uip tm wait call
uip tm testsets run \
--test-set-key DEMO:10 \
--wait
# Block with a timeout and custom poll interval
uip tm testsets run \
--test-set-key DEMO:10 \
--execution-type automated \
--wait \
--timeout 900 \
--poll-interval 15
# Pass parameter overrides from a file
uip tm testsets run \
--test-set-key DEMO:10 \
--input-path ./params.json \
--wait
# Run a Playwright test set against one project
uip tm testsets run \
--test-set-key DEMO:10 \
--playwright-project chromium
# Fire-and-forget — returns ExecutionId immediately
uip tm testsets run --test-set-key DEMO:10
# Block until done — no need for a separate uip tm wait call
uip tm testsets run \
--test-set-key DEMO:10 \
--wait
# Block with a timeout and custom poll interval
uip tm testsets run \
--test-set-key DEMO:10 \
--execution-type automated \
--wait \
--timeout 900 \
--poll-interval 15
# Pass parameter overrides from a file
uip tm testsets run \
--test-set-key DEMO:10 \
--input-path ./params.json \
--wait
# Run a Playwright test set against one project
uip tm testsets run \
--test-set-key DEMO:10 \
--playwright-project chromium
Data shape
{
"Code": "TestSetRun",
"Data": {
"ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
"TestSetKey": "DEMO:10",
"Status": "Running",
"StartTime": "2025-04-15T10:30:00Z"
}
}
{
"Code": "TestSetRun",
"Data": {
"ExecutionId": "a1b2c3d4-0000-0000-0000-000000000001",
"TestSetKey": "DEMO:10",
"Status": "Running",
"StartTime": "2025-04-15T10:30:00Z"
}
}
With --wait, the command returns the uip tm wait result instead, once the execution finishes:
{
"Code": "ExecutionWaitComplete",
"Data": {
"ExecutionId": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "Finished",
"EndTime": "2025-04-15T10:42:10.000Z",
"Duration": "00:11:40"
}
}
{
"Code": "ExecutionWaitComplete",
"Data": {
"ExecutionId": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "Finished",
"EndTime": "2025-04-15T10:42:10.000Z",
"Duration": "00:11:40"
}
}
A cancelled execution returns Result: "Failure" and exits 1, and a wait that exceeds --timeout exits 2. A Finished execution exits 0 even when tests inside it failed. The ExecutionId can be passed to uip tm report get, uip tm result download, and uip tm attachment download.
uip tm testsets playwright-context
Show the Playwright context of a test set: whether every test case in it comes from a single Playwright package, and which Playwright project names are available and currently selected. Use it to find the valid --playwright-project names before calling run.
Arguments
None.
Options
| Flag | Description |
|---|---|
--test-set-key <key> | Required. Test set object key (for example, DEMO:42). The project is derived from the prefix. |
Example
uip tm testsets playwright-context --test-set-key DEMO:42
uip tm testsets playwright-context --test-set-key DEMO:42
Data shape
{
"Code": "TestSetPlaywrightContext",
"Data": {
"TestSetKey": "DEMO:42",
"IsPlaywright": true,
"PackageIdentifier": "my-playwright-suite",
"Version": "1.2.0",
"AvailablePlaywrightProjects": "chromium, firefox, webkit",
"SelectedPlaywrightProjects": "chromium"
}
}
{
"Code": "TestSetPlaywrightContext",
"Data": {
"TestSetKey": "DEMO:42",
"IsPlaywright": true,
"PackageIdentifier": "my-playwright-suite",
"Version": "1.2.0",
"AvailablePlaywrightProjects": "chromium, firefox, webkit",
"SelectedPlaywrightProjects": "chromium"
}
}
When the test set isn't a single-package Playwright set (RPA, mixed, manual, or no single package), IsPlaywright is false and the response instead carries one Details field: "Not a Playwright test set (RPA, mixed, manual, or no single package). Run it without --playwright-project." — the four Playwright-specific fields above are omitted in that case. AvailablePlaywrightProjects/SelectedPlaywrightProjects are comma-joined strings, not arrays. On a Test Manager without Playwright support, the command returns Result: "Failure".
Related
- pack — packages a Playwright project, whose Playwright project names
--playwright-projectselects from. - testcases — create and link the test cases that populate a test set, statically or by label.
- executions — list and retry executions once a test set has been run.
- wait — block until a returned
ExecutionIdreaches a terminal state. - report, result, attachment — post-run artifacts.
See also
- Synopsis
- uip tm testsets create
- Arguments
- Options
- Example
- Data shape
- uip tm testsets list
- Arguments
- Options
- Example
- Data shape
- uip tm testsets group-by
- Arguments
- Options
- Example
- Data shape
- uip tm testsets get
- Arguments
- Options
- Example
- Data shape
- uip tm testsets update
- Arguments
- Options
- Example
- Data shape
- uip tm testsets clone
- Arguments
- Options
- Example
- Data shape
- uip tm testsets delete
- Arguments
- Options
- Example
- Data shape
- uip tm testsets list-testcases
- Arguments
- Options
- Example
- Data shape
- uip tm testsets get-dynamic-assignment
- Arguments
- Options
- Example
- Data shape
- uip tm testsets assign-user
- Arguments
- Options
- Example
- Data shape
- uip tm testsets set-execution-order
- Arguments
- Options
- Example
- Data shape
- uip tm testsets settings get
- Arguments
- Options
- Example
- Data shape
- uip tm testsets settings set
- Arguments
- Options
- Example
- Data shape
- uip tm testsets set-folder
- Arguments
- Options
- Example
- Data shape
- uip tm testsets set-robot
- Arguments
- Options
- Example
- Data shape
- uip tm testsets set-execution-target
- Arguments
- Options
- Example
- Data shape
- uip tm testsets autoselect-packages
- Arguments
- Options
- Example
- Data shape
- uip tm testsets run
- Arguments
- Options
- Examples
- Data shape
- uip tm testsets playwright-context
- Arguments
- Options
- Example
- Data shape
- Related
- See also