UiPath Documentation
uipath-cli
latest
false
UiPath CLI 用户指南
重要 :
请注意,此内容已使用机器翻译进行了本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

uip tm 测试用例

“uip tm testcases”的语法和选项,用于管理测试用例,包括创建、列出、更新、删除、链接自动化和测试用例日志管理。

uip tm testcases管理 Test Manager 项目中的测试用例:创建、列出、更新、删除、链接或取消链接 Orchestrator 自动化,检查历史结果以及在测试集中添加或删除测试用例。它还提供了testcases run — 一种直接从 Orchestrator 包执行一个或多个测试用例的方法。此页面还记录uip tm testcaselogs list-assertions (读取附加到单个测试用例日志的断言工件testcaselog finish testcaselog start

测试用例是作者身份单位。在使用testcases link-automation链接到包入口点后,它将变为可运行状态。然后,测试用例可以作为测试集的一部分执行(请参阅测试集),也可以直接通过testcases run执行。

警告:

Never run testcases link-automation on a test case created by uip tm pack for a Playwright project. Playwright test cases are linked automatically during pack-time ingestion; running link-automation on them manually follows the RPA linking pipeline instead and corrupts that association. If you packed with --no-create-test-cases, use the Select Automation flow in the Test Manager UI instead.

大纲

uip tm testcases create --project-key <key> --name <name> [--description <text>] [--version <version>]
uip tm testcases list --project-key <key> [--filter <text>]
uip tm testcases list-result-history --project-key <key> --test-case-id <uuid> [--filter <text>] [--only-failed] [--results <results...>] [--statuses <statuses...>] [--duration-period <period>] [--top <number>] [--skip <number>]
uip tm testcases update --project-key <key> --test-case-key <key> [--name <name>] [--description <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> --folder-key <uuid> --package-name <name> --test-name <name>
uip tm testcases unlink-automation --project-key <key> --test-case-key <key>
uip tm testcases list-automations --project-key <key> --folder-key <uuid> [--package-name <name>]
uip tm testcases list-testsets --project-key <key> --test-case-key <key>
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 testcaselogs 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>] [--version <version>]
uip tm testcases list --project-key <key> [--filter <text>]
uip tm testcases list-result-history --project-key <key> --test-case-id <uuid> [--filter <text>] [--only-failed] [--results <results...>] [--statuses <statuses...>] [--duration-period <period>] [--top <number>] [--skip <number>]
uip tm testcases update --project-key <key> --test-case-key <key> [--name <name>] [--description <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> --folder-key <uuid> --package-name <name> --test-name <name>
uip tm testcases unlink-automation --project-key <key> --test-case-key <key>
uip tm testcases list-automations --project-key <key> --folder-key <uuid> [--package-name <name>]
uip tm testcases list-testsets --project-key <key> --test-case-key <key>
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 testcaselogs 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>]

所有动词都遵循全局选项和标准退出代码。每个动词接受 --log-level <level>(默认值 Information)。

创建 UIP TM 测试用例

在项目中创建一个新的测试用例。

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--name <name>必需。测试用例名称。
--description <text>自由格式说明。默认为空。
--version <version>测试用例版本字符串。默认为 1.0.0

示例

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"

数据形状

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

TestCaseKey (公共PROJECT:N标识符)是传递给其他动词的内容。list-result-historylist-testsets需要内部Id (UUID)。

uip tm 测试用例列表

列出项目中的所有测试用例。CLI 会自动对结果进行分页。

参数

无。

选项

标记描述
--project-key <key>必需。要列表的项目。
--filter <text>按名称或键筛选(服务器端搜索)。

示例

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

数据形状

{
  "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 测试用例列表结果历史记录

列出单个测试用例的历史测试用例日志。获取内部--test-case-id (UUID) — 通过testcases list或从上一个TestCaseCreate输出中查找 UUID。

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--test-case-id <uuid>必需。内部测试用例 UUID。
--filter <text>按名称搜索测试用例日志。
--only-failed“仅显示失败的日志”的快捷方式(默认为 false)。
--results <results...>要包含的以空格分隔的结果。接受的值来自 SDK Result 枚举。
--statuses <statuses...>用空格分隔的执行状态。接受的值来自 SDK TestCaseLogExecutionStatus 枚举。
--duration-period <period>按持续时间存储桶筛选。接受的值来自 SDK DurationPeriod 枚举。
--top <number>页面大小。默认为 50
--skip <number>要跳过的结果。默认为 0
备注:

--results--statuses--duration-period的确切可接受值由已安装的工具版本附带的 Test Manager SDK 枚举在运行时生成。运行uip tm testcases list-result-history --help以查看当前集合。

示例

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

数据形状

{
  "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 测试用例更新

重命名测试用例或更改其描述。至少需要 --name--description

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--test-case-key <key>必需。测试用例键(例如 DEMO:1)。
--name <name>新名称。
--description <text>新说明。

示例

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

数据形状

{
  "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 测试用例删除

按测试用例的密钥删除测试用例。

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--test-case-key <key>必需。测试用例键(例如 DEMO:1)。
-y, --yes跳过确认提示。在非交互式环境中为必要项。

示例

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

数据形状

{
  "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 package entry point to a test case. This is what makes the test case executable inside a test set. Internally, the command resolves the folder display name from --folder-key, looks up the matching package entry point by name, then stores the binding on the test case. For Playwright test cases created by pack, see the warning above.

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--test-case-key <key>必需。要绑定的测试用例。
--folder-key <uuid>必需。Orchestrator 文件夹 UUID(来自 uip or folders list)。
--package-name <name>必需。Orchestrator 包标识符(例如 InvoiceTests)。
--test-name <name>必需。包中的测试用例名称(入口点名称)。

示例

uip tm testcases link-automation \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --package-name InvoiceTests \
  --test-name SmokeTest
uip tm testcases link-automation \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --package-name InvoiceTests \
  --test-name SmokeTest

数据形状

{
  "Code": "TestCaseLinkAutomation",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "PackageName": "InvoiceTests",
    "PackageSource": "Shared",
    "TestName": "SmokeTest",
    "Result": "Linked"
  }
}
{
  "Code": "TestCaseLinkAutomation",
  "Data": {
    "TestCaseKey": "DEMO:1",
    "PackageName": "InvoiceTests",
    "PackageSource": "Shared",
    "TestName": "SmokeTest",
    "Result": "Linked"
  }
}

从测试用例中删除自动化绑定。取消链接后,在再次链接之前,测试用例无法再执行。

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--test-case-key <key>必需。要取消链接的测试用例。

示例

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

数据形状

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

uip tm 测试用例列表自动化

列出 Orchestrator 文件夹中可用的测试入口点。使用此功能来发现要传递给 --package-name/--test-namelink-automation 的值。

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目(用于限定查找的范围)。
--folder-key <uuid>必需。Orchestrator 文件夹 UUID。
--package-name <name>从列表中筛选一个包(不区分大小写,精确匹配)。

示例

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

数据形状

{
  "Code": "TestAutomationsList",
  "Data": [
    {
      "PackageName": "InvoiceTests",
      "TestName": "SmokeTest",
      "PackageVersion": "1.0.2"
    }
  ]
}
{
  "Code": "TestAutomationsList",
  "Data": [
    {
      "PackageName": "InvoiceTests",
      "TestName": "SmokeTest",
      "PackageVersion": "1.0.2"
    }
  ]
}

uip tm 测试用例列表测试集

列出包含给定测试用例的每个测试集。

参数

无。

选项

标记描述
--project-key <key>必需。拥有的项目。
--test-case-key <key>必需。测试用例键(例如 DEMO:1)。

示例

uip tm testcases list-testsets \
  --project-key DEMO \
  --test-case-key DEMO:1
uip tm testcases list-testsets \
  --project-key DEMO \
  --test-case-key DEMO:1

数据形状

{
  "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 测试用例

直接从 Orchestrator 包运行一个或多个测试用例,而无需先创建测试集。testcases run启动执行并返回执行记录。有关此功能的更多信息,请参阅 Test Manager 文档中的执行不使用测试集的测试用例

备注:

testcases run默认情况下是同步的,它会受到阻止,直到确认执行记录为止。要在排队后立即返回,请传递--async 。要在执行完成之前阻止,请将返回的Id通过管道传输到uip tm wait

何时使用testcases runtestsets run

  • 使用testcases run直接从包中按需执行测试用例。
  • 使用testsets run执行指定的测试用例组,系统会随着时间的推移在 Test Manager 中管理这些用例。

参数

无。

选项

标记描述
--project-key <key>Test Manager 项目密钥(例如 DEMO)。如果可从上下文中派生,则为可选项。
--test-case-id <uuid...>必需。要运行的一个或多个测试用例 UUID,以空格分隔。从 testcases list 获取 UUID。
--execution-type <type>必需。执行类型:automatedmanualmixednone
--name <name>执行的显示名称。
--async排队后立即返回,无需等待服务器确认执行已开始。无需等待执行记录完全创建即可返回。
--folder-key <uuid>要在其中运行的 Orchestrator 文件夹。当测试用例链接到特定文件夹中的自动化时为必需。
--runtime-type <type>机器人 runtime 类型覆盖。接受值:nonProductionattendedunattendedrpaDeveloperstudioXheadlessrpaDeveloperProtestAutomationautomationCloudserverlessautomationKitserverlessTestAutomationautomationCloudTestAutomationattendedStudioWebhostingassistantWebprocessOrchestrationagentServiceappTestperformanceTestbusinessRulecaseManagement
--robot-user-key <uuid>执行目标的机器人用户密钥。
--machine-key <uuid>执行目标的计算机密钥。
--host-machine-name <name>执行目标的主机名。
--service-user-name <name>执行目标的服务用户名。
--test-set-packages <json>包覆盖的 JSON 数组:[{"packageName":"Pkg","version":"1.0.0"}]

示例

# 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"}]'

数据形状

{
  "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 }
  }
}

关键字段:

  • Id — 传递给uip tm waitreport getresult downloadattachment download
  • Status: "Running" — 执行可能尚未调度。
  • Source: "Manual" — 所有testcases run执行都被标记为手动触发。

端到端工作流:打包到结果

# 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. Link the test case to the automation entry point
uip tm testcases link-automation \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --package-name InvoiceTests \
  --test-name SmokeTest

# 5. 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)

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

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

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

# 9. 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. Link the test case to the automation entry point
uip tm testcases link-automation \
  --project-key DEMO \
  --test-case-key DEMO:1 \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001 \
  --package-name InvoiceTests \
  --test-name SmokeTest

# 5. 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)

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

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

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

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

uip tm 测试用例添加

向现有测试集添加一个或多个测试用例。

参数

无。

选项

标记描述
--test-set-key <key>必需。测试集对象键(例如 DEMO:42)。
--test-case-keys <keys>必需。要添加的以逗号分隔的测试用例键(例如 DEMO:1,DEMO:2)。

示例

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

数据形状

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

删除 UIP TM 测试用例

从测试集中删除一个或多个测试用例。

参数

无。

选项

标记描述
--test-set-key <key>必需。测试集对象键(例如 DEMO:42)。
--test-case-keys <keys>必需。要删除的以逗号分隔的测试用例键(例如,DEMO:1,DEMO:2)。
-y, --yes跳过确认提示。在非交互式环境中为必要项。

示例

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

数据形状

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

uip tm 测试用例列表步骤

列出测试用例的手动测试步骤。这是testcases steps list的别名。

参数

无。

选项

标记描述
--project-key <key>Test Manager 项目密钥(例如 DEMO)。
--test-case-id <uuid>必需。内部测试用例 UUID。

示例

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

数据形状

{
  "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是一个子组,用于管理测试用例的各个手动步骤:列出、获取、添加、更新、移动和删除。

uip tm 测试用例步骤列表

按顺序列出测试用例的步骤。

参数

无。

选项
标记描述
--project-key <key>Test Manager 项目密钥。
--test-case-id <uuid>必需。内部测试用例 UUID。
示例
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
数据形状
{
  "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 测试用例步骤

通过 UUID 获取单个步骤。

参数

无。

选项
标记描述
--project-key <key>Test Manager 项目密钥。
--step-id <uuid>必需。测试步骤 UUID(来自 steps list)。
示例
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
数据形状
{
  "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 测试用例步骤

向测试用例添加一个或多个步骤。对单个步骤使用内联标志,或对多个步骤使用--step <json> (可重复)。

参数

无。

选项
标记描述
--project-key <key>Test Manager 项目密钥。
--test-case-id <uuid>必需。要向其中添加步骤的测试用例。
--description <text>步骤说明(单步骤模式)
--expected-result <text>预期结果(单步模式)
--action-type <type>步骤操作类型(单步骤模式)
--clipboard-data <text>测试要为步骤复制的数据(单步骤模式)
--order-no <n>从 0 开始的插入位置;省略在末尾附加(单步模式)
--step <json>以 JSON 对象 ({"description":"...","expectedResult":"..."}) 形式呈现的步骤。重复此操作以添加多个步骤。
示例
# 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":"user@acme.com"}' \
  --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":"user@acme.com"}' \
  --step '{"description":"Click submit","expectedResult":"Dashboard loads"}'
数据形状
{
  "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 测试用例步骤更新

更新步骤说明、预期结果、操作类型或剪贴板数据。必须至少提供其中一个字段。

参数

无。

选项
标记描述
--project-key <key>Test Manager 项目密钥。
--step-id <uuid>必需。测试步骤 UUID。
--description <text>新说明。
--expected-result <text>新的预期结果。
--action-type <type>新的操作类型。
--clipboard-data <text>新剪贴板数据。
示例
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"
数据形状
{
  "Code": "TestStepUpdate",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Updated"
  }
}
{
  "Code": "TestStepUpdate",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Updated"
  }
}

uip tm 测试用例步骤移动

在测试用例顺序中,将步骤移动至新位置。

参数

无。

选项
标记描述
--project-key <key>Test Manager 项目密钥。
--step-id <uuid>必需。测试步骤 UUID。
--target-position <n>必需。从 0 开始的新位置(0 = 优先)。匹配 OrderNo 中的 steps list 字段。
示例
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
数据形状
{
  "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 测试用例步骤删除

从测试用例中删除步骤。这是永久性的。

参数

无。

选项
标记描述
--project-key <key>Test Manager 项目密钥。
--step-id <uuid>必需。测试步骤 UUID。
-y, --yes必需。确认此不可逆操作。
示例
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
数据形状
{
  "Code": "TestStepDelete",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}
{
  "Code": "TestStepDelete",
  "Data": {
    "StepId": "d4e5f6a7-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}

uip tm 测试用例日志列表断言

列出为单个测试用例日志记录的断言。每次运行测试用例都会产生一个测试用例日志;其断言是指自动化记录的各项单项检查。此动词表明测试用例日志标记为Failed原因

此动词已在testcaselogs而非testcases下注册,但将其记录在此处,因为它会读取测试用例日志的断言工件。

参数

无。

选项

标记描述
--test-case-log-id <uuid>必需。测试用例日志 UUID。从 uip tm executions testcaselogs listuip tm testcases list-result-history 获取。
--project-key <key>必需。拥有的项目。

示例

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

数据形状

{
  "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 测试用例日志启动

发出信号,表示开始为执行中的特定测试用例手动输入测试用例日志。

参数

无。

选项

标记描述
--execution-id <uuid>必需。正在运行测试用例的执行。
--test-case-id <uuid>必需。正在记录的测试用例的内部 UUID。
--execution-type <type>日志条目的执行类型(例如,automatedmanual)。可选。

示例

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

数据形状

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

uip tm 测试用例日志完成

表示手动开始的测试用例日志条目结束。

参数

无。

选项

标记描述
--test-case-log-id <uuid>必需。testcaselog start 返回的日志 ID。
--info <text>要附加到日志条目的可选错误或信息消息。

示例

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"

数据形状

{
  "Code": "TestCaseLogFinish",
  "Data": {
    "TestCaseLogId": "c3d4e5f6-0000-0000-0000-000000000001",
    "Result": "Finished"
  }
}
{
  "Code": "TestCaseLogFinish",
  "Data": {
    "TestCaseLogId": "c3d4e5f6-0000-0000-0000-000000000001",
    "Result": "Finished"
  }
}
  • pack — packages a Playwright project and auto-links its test cases at ingestion time; do not use link-automation on the test cases it creates.
  • project — 拥有每个测试用例的作用域。
  • 测试集— 将测试用例分组到可运行的套件中。
  • executions — 测试用例日志的执行级别视图。
  • 报告— 运行摘要,包含失败案例和断言文本。

另请参阅

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新