- 概要
- UiPath CLI
- Azure DevOps 拡張機能
- Jenkins プラグイン
CI/CD 連携ユーザー ガイド
Test Manager でパッケージをテストする、またはテスト セットを実行する
前提条件
-
最新バージョンの Test Manager を使用します (Automation Suite へのデリバリーの場合は Test Manager 2.2510 以降、スタンドアロンでのインストールの場合は Test Manager 25.10 以降)。
-
Orchestrator の既存のテスト セットを参照している場合は、そのテスト セットを Test Manager にインポートします。詳細については、「 Test Manager - Orchestrator のテスト セットをインポートする」をご覧ください。インポート後に testset-key を取得します。
-
Test Manager でプロジェクトを作成し、プロジェクト キーを取得します。[すべてのプロジェクト] > Test Manager からプロジェクト キーを取得します> プロジェクトの 3 点リーダー メニューに移動し、[>プレフィックスを編集] >します。
-
自動化されたテスト ケースを含むパッケージまたはテスト セットを作成します。Test Manager の [テスト セット] タブ> [キー] 列> testset-key を取得します。
-
クライアント ID とクライアント シークレットを取得します。クライアント ID とクライアント シークレットの取得方法の詳細については、「 CI/CD との連携 - UiPath CLI タスクを実行する 」の「外部アプリケーションを登録する」をご覧ください。
-
Windows/Linux/macOS 用の uipcli.dll ファイルを実行します。
-
必要な Test Manager API アクセスのアプリケーション スコープを追加します。Test Manager のスコープについて詳しくは、「 CI/CD との連携 - UiPath CLI タスクを実行する 」をご覧ください。
CLI で Test Manager を使用する
Test Manager を使用してパッケージをテストするには、次の手順を実行します。 uipcli test を使用してテスト タスクを実行します。利用可能なサブタスクのリストが表示されます。必要なパラメーターを指定し、[実行] サブタスクを選択します。
Orchestrator でのテストの代わりに Test Manager を使用するには、test run コマンドで --projectKey パラメーターを指定します。CLI によって、Test Manager を介してテストが自動的に実行されます。
From 25.10.18 onwards, the CLI creates and executes transient test sets through Test Manager's asynchronous APIs and polls the status endpoint until the test set is ready. Large transient test sets that previously failed with HTTP timeouts now complete successfully. While creation is in progress, the CLI prints a status line such as Test set creation is still in progress, retrying in 5 seconds.... No parameters change — the behavior applies automatically to every test run --projectKey invocation.
テスト コマンドのパラメーター
| パラメーター | 説明 | Required |
|---|---|---|
Orchestrator URL (pos. 0) | Orchestrator インスタンスの URL です | はい |
Orchestrator Tenant (pos. 1) | Test Manager プロジェクトが存在するテナント内のテナントです。Automation Cloud を対象とする場合は必須です。任意で、 Automation Suite および スタンドアロンの Orchestrator (オンプレミスの MSI) ではテナントが URL の一部になります。 | 説明を見る |
-P, --project-path | テストするテスト パッケージ ファイルへのパスです | いいえ |
--projectKey | Test Manager の >[ダッシュボード] タブに表示されるプロジェクト キー> [プロジェクト] > [すべてのプロジェクト]プロジェクト キーは、すべてのオブジェクト キーのプレフィックスです。 | はい (Test Manager の場合) |
--testsetkey | Test Manager の [テスト セット] タブ> [キー] 列に表示されるテスト セット>キーです。テスト セットに最新バージョンのテスト ケースが含まれていることを確認します。プロジェクトに既定のフォルダーが設定されていない場合は、テスト セット レベルでテスト フォルダーを割り当ててください。 | いいえ |
-s, --testset | 実行するテスト セットに表示される名前です。テスト セットに最新バージョンのテスト ケースが含まれていることを確認します。プロジェクトに既定のフォルダーが設定されていない場合は、テスト セット レベルでテスト フォルダーを割り当ててください。 | いいえ |
--out | 結果ファイルの種類 (junit または uipath) です | いいえ |
-r, --result_path | 結果の保存先のファイルのパスです | いいえ |
-e, --environment | パッケージをデプロイする環境です。これは、 project path | クラシック フォルダーに必要です |
-w, --timeout | テスト セットの実行を待機する時間 (秒単位) です。既定値は 7200 秒です | いいえ |
-i, --input_path | JSON 入力ファイルへのフル パスです。ファイル構造について詳しくは、「 入力パラメーター JSON 形式 」をご覧ください。 | エントリ ポイント ワークフローに入力パラメーターがある場合は必須です |
--attachRobotLogs | 実行された各テスト ケースのロボット ログと JUnit テスト レポートを添付します。 | いいえ |
--repositoryUrl | プロジェクトがバージョン管理されているリポジトリの URL です | いいえ |
--repositoryCommit | プロジェクトの構築元であるリポジトリのコミットです | いいえ |
--repositoryBranch | プロジェクトの構築元のリポジトリ ブランチです | いいえ |
--repositoryType | VCSシステム・リポジトリ・タイプ | いいえ |
--projectUrl | Automation Hub のアイデアの URL | いいえ |
--releaseNotes | リリースノートの追加 | いいえ |
--author | パッケージの作成者 | いいえ |
--nugetConfigFilePath | Path to the NuGet.Config file used during restore. From 25.10.18 onwards the file is honored end-to-end — <clear />, <packageSourceCredentials>, <packageSourceMapping>, and <fallbackPackageFolders> all take effect. See Managing NuGet feeds. On older builds, only <packageSources> URLs were applied. | いいえ |
--disableBuiltInNugetFeeds | 組み込みの NuGet フィードを無効化 | いいえ |
--excludeConfiguredSources | CLI を実行するホストの組み込みフィードと、ユーザーレベルおよびマシン レベルで設定された NuGet ソースは除外されます。CLI は、 --nugetConfigFilePathで定義されたフィードからのみパッケージを解決します。「 NuGet フィードを管理する」をご覧ください。 | いいえ |
--retryCount | 失敗したテスト ケースのリトライ回数 (既定では、リトライは設定されていません) | いいえ |
-u, --username | Orchestrator への認証に使用するユーザー名です。対応するパスワードと組み合わせる必要があります | 基本認証に必要です |
-p, --password | Orchestrator への認証に使用するパスワードです。対応するユーザー名と組み合わせる必要があります | 基本認証に必要です |
-t, --token | Orchestrator への認証に使用される OAuth2 更新トークンです。アカウント名およびクライアント ID と組み合わせる必要があります | トークンベースの認証に必要です |
-a, --accountName | Orchestrator Cloud RPA のアカウント名です。OAuth2 更新トークンおよびクライアント ID と組み合わせる必要があります | トークンベースの認証に必要です |
-A, --accountForApp | Orchestrator Cloud RPA のアカウント名 (組織名) です。外部アプリケーションのアプリケーション ID、アプリケーション シークレット、アプリケーション スコープと組み合わせて使用する必要があります。 | いいえ |
-I, --applicationId | 外部アプリケーション ID です。アプリケーション アカウント、アプリケーション シークレット、アプリケーション スコープと組み合わせて使用する必要があります | 外部アプリケーションの認証に必要 |
-S, --applicationSecret | 外部アプリケーション シークレットです。アプリケーション アカウント、アプリケーション ID、アプリケーション スコープと組み合わせて使用する必要があります | 外部アプリケーションの認証に必要 |
--applicationScope | アプリケーション スコープを単一のスペースで区切って列挙したリストです。外部アプリケーションのアプリケーション アカウント、アプリケーション ID、アプリケーション シークレットと組み合わせて使用する必要があります。 | 外部アプリケーション認証の場合は任意です。指定されていない場合は既定のスコープを使用する |
-o, --organizationUnit | テスト セットを実行する Orchestrator のフォルダーです。 | いいえ |
-l, --language | Orchestrator のユーザー インターフェイスで使用される言語 | いいえ |
--traceLevel | イベントのトレースを表示します | いいえ |
--identityUrl | Identity Server の URL です。Orchestrator を UiPath Automation Suite または スタンドアロンの Orchestrator (オンプレミスの MSI) で実行する場合は必須です。Automation Cloud では不要 — CLI はクラウド URL から Identity Server を解決します。 | いいえ |
--ca-cert | Orchestrator/Identity TLS 証明書の信頼されたルート CA ファイル (PEM、DER、または PKCS#7)。繰り返すか、コンマで区切ります。「カスタム証明書を信頼する」をご覧ください。 | いいえ |
--pinnedpubkey | リーフの公開鍵 (sha256//<base64>をピン留めします。「カスタム証明書を信頼する」をご覧ください。 | いいえ |
プライベート証明機関 (UiPath Automation Suite など) によって署名された Orchestrator インスタンスの場合、このコマンドは --ca-cert パラメーターと --pinnedpubkey パラメーターも受け付けます。シナリオと例については、「 カスタム証明書を信頼する 」をご覧ください。
--applicationScope パラメーターを指定せずに外部アプリケーション認証を使用すると、CLI は Test Manager の以下の既定のスコープを自動的に適用します。
TM.Projects TM.TestSets TM.TestExecutions
既定の OR スコープに加えて、以下の操作も行います。
OR.Assets OR.BackgroundTasks OR.Execution OR.Folders OR.Robots.Read OR.Machines.Read OR.Jobs OR.TestSets OR.TestSetExecutions OR.Monitoring OR.Settings.Read
使用例
Test Manager で既存のテスト セットを実行します
# Windows
uipcli test run "https://cloud.uipath.com/" "TenantName" `
--projectKey "MyTestProject" `
--testsetkey "MyTestSet" `
-A "organizationName" `
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" `
-S '********' `
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" `
-o "FolderName" `
--out "junit" `
--result_path "C:\TestResults"
--author ExampleAuthor
# Linux/macOS
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./test-results"
--author ExampleAuthor
# Windows
uipcli test run "https://cloud.uipath.com/" "TenantName" `
--projectKey "MyTestProject" `
--testsetkey "MyTestSet" `
-A "organizationName" `
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" `
-S '********' `
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" `
-o "FolderName" `
--out "junit" `
--result_path "C:\TestResults"
--author ExampleAuthor
# Linux/macOS
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./test-results"
--author ExampleAuthor
プロジェクトから一時的なテスト セットを作成して実行する
一時的なテスト セットは、プロジェクト パスからその場で作成される一時的なテスト セットです。
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
-P "./MyTestProject/project.json" \
-e "TestEnvironment" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "uipath" \
--result_path "./test-results"
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
-P "./MyTestProject/project.json" \
-e "TestEnvironment" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "uipath" \
--result_path "./test-results"
パラメーターを上書きしてテストを実行する
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
-i "./test-parameters.json" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./test-results"
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
-i "./test-parameters.json" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./test-results"
ロボット ログが添付されてテストを実行する
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
--attachRobotLogs true \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./test-results"
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
--attachRobotLogs true \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./test-results"
レポートの種類
Test Manager では、次の 2 つの出力形式がサポートされています。
| 形式 | 説明 | ユースケース |
|---|---|---|
junit | JUnit XML 形式 | CI/CD との連携 (Jenkins、Azure DevOps、GitHub Actions) |
uipath | UiPath のネイティブ形式 | Test Manager 固有のデータを含む詳細な実行レポート |
Orchestrator のテストからの移行
変更前 (Orchestrator のテスト)
uipcli test run "https://cloud.uipath.com/" "TenantName" \
-s "MyTestSet" \
-u "username" \
-p "password" \
-o "FolderName" \
-P "./project.json"
uipcli test run "https://cloud.uipath.com/" "TenantName" \
-s "MyTestSet" \
-u "username" \
-p "password" \
-o "FolderName" \
-P "./project.json"
実行後 (Test Manager)
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./results"
uipcli test run "https://cloud.uipath.com/" "TenantName" \
--projectKey "MyTestProject" \
--testsetkey "MyTestSet" \
-A "organizationName" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--applicationScope "OR.Folders OR.Execution TM.Projects TM.TestSets TM.TestExecutions" \
-o "FolderName" \
--out "junit" \
--result_path "./results"
主な違い
--projectKeyパラメーターを追加して Test Manager を有効化します- テスト セットの識別に
-sではなく--testsetkeyを使用する - Test Manager で OAuth 認証 (アプリケーション資格情報) が必要
- 出力形式を
--outで指定し、出力先を--result_pathで指定
ベスト プラクティス
Test Manager の設定
- さまざまなアプリケーションやチーム専用の Test Manager プロジェクトを作成する
- わかりやすいプロジェクト キーとテスト セット キーを使用して、簡単に識別できるようにします
- 目的 (回帰、煙、統合など) ごとにテスト セットを整理します。
パラメータ管理
- 環境固有の構成には、パラメーター ファイル (
-i) を使用します - 機密性の高いパラメーターは、パラメーター ファイルではなく CI/CD シークレットに保存する
- テスト セットの説明に必要なパラメーターを文書化します
リトライ ロジック
- 断続的に失敗する可能性のある不安定なテストには
--retryCountを使用します - テスト期間に基づいて適切な
--timeout値を設定する - リトライ パターンを監視して、不安定なテストを特定して修正します
報告
- CI/CD パイプライン連携に
junit形式を使用する - Test Manager で詳細を分析するには
uipath形式を使用します - テストの不合格をデバッグするための
--attachRobotLogsの有効化
CI/CD との連携
- セキュリティで保護された環境変数を使用して Test Manager の認証を設定する
- コードのコミットまたはプル要求に対する自動テスト実行を設定する
- テストレポートをビルド成果物としてアーカイブし、履歴を追跡