UiPath Documentation
test-manager
latest
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

Test Manager ガイド

TMH ファイル形式の仕様

.tmh ファイルは、UiPath Test Manager で使用されるプロジェクトのバックアップ/移行の形式です。このドキュメントでは、その構造、内容、およびエンコード要件について詳しく説明します。

アーカイブの構造

<package-name>.tmh               ← ZIP archive
├── manifest.json                ← Package metadata and object counts
└── objects/
    ├── requirements/
    │   └── requirements-{n}.json
    ├── testcases/
    │   └── testcases-{n}.json
    ├── teststeps/
    │   └── teststeps-{n}.json
    ├── testsets/
    │   └── testsets-{n}.json
    ├── testsettestcaseassignments/
    │   └── testsettestcaseassignments-{n}.json
    ├── requirementtestcaseassignments/
    │   └── requirementtestcaseassignments-{n}.json
    ├── objectlabels/
    │   ├── objectlabels-testcase-{n}.json
    │   ├── objectlabels-testset-{n}.json
    │   ├── objectlabels-requirement-{n}.json
    │   ├── objectlabels-testexecution-{n}.json
    │   └── objectlabels-testcaselog-{n}.json
    ├── customfieldvalues/
    │   ├── customfieldvalues-testcase-{n}.json
    │   └── customfieldvalues-requirement-{n}.json
    ├── customfieldlabels/
    │   └── customfieldlabels-{n}.json
    ├── customfielddefinitions/
    │   └── customfielddefinitions-{n}.json
    ├── attachments/
    │   ├── attachments-testexecution-{n}.json
    │   ├── attachments-requirement-{n}.json
    │   ├── attachments-testcaselog-{n}.json
    │   ├── attachments-teststeplog-{n}.json
    │   └── attachments-project-{n}.json
    ├── testexecutions/
    │   ├── testexecutions-Manual-Finished-{n}.json
    │   ├── testexecutions-Automated-Finished-{n}.json
    │   └── testexecutions-Mixed-Finished-{n}.json
    ├── testcaselogs/
    │   └── testcaselogs-{n}.json
    ├── teststeplogs/
    │   └── teststeplogs-{n}.json
    ├── testcaselog-assertions/
    │   └── testcaselogassertions-{n}.json
    ├── testcaselogresultoverrides/
    │   └── testcaselogresultoverrides-{n}.json
    ├── assertion-attachments/
    │   └── assertion-attachments-{n}.json
    ├── defects/
    │   └── defects-{n}.json
    ├── parameters/
    │   └── parameters-{n}.json
    ├── testsetpackages/
    │   └── testsetpackages-{n}.json
    ├── testsettestcaseparameters/
    │   └── testsettestcaseparameters-{n}.json
    ├── testsetschedules/
    │   └── testsetschedules-testset-{n}.json
    ├── objectfilters/
    │   └── objectfilters-testset-{n}.json
    ├── projectauthorization/
    │   └── projectauthorization-{n}.json
    ├── projectsettings/
    │   └── projectsettings.json         ← singular, no number suffix
    └── prompts/
        └── prompts-{n}.json
<package-name>.tmh               ← ZIP archive
├── manifest.json                ← Package metadata and object counts
└── objects/
    ├── requirements/
    │   └── requirements-{n}.json
    ├── testcases/
    │   └── testcases-{n}.json
    ├── teststeps/
    │   └── teststeps-{n}.json
    ├── testsets/
    │   └── testsets-{n}.json
    ├── testsettestcaseassignments/
    │   └── testsettestcaseassignments-{n}.json
    ├── requirementtestcaseassignments/
    │   └── requirementtestcaseassignments-{n}.json
    ├── objectlabels/
    │   ├── objectlabels-testcase-{n}.json
    │   ├── objectlabels-testset-{n}.json
    │   ├── objectlabels-requirement-{n}.json
    │   ├── objectlabels-testexecution-{n}.json
    │   └── objectlabels-testcaselog-{n}.json
    ├── customfieldvalues/
    │   ├── customfieldvalues-testcase-{n}.json
    │   └── customfieldvalues-requirement-{n}.json
    ├── customfieldlabels/
    │   └── customfieldlabels-{n}.json
    ├── customfielddefinitions/
    │   └── customfielddefinitions-{n}.json
    ├── attachments/
    │   ├── attachments-testexecution-{n}.json
    │   ├── attachments-requirement-{n}.json
    │   ├── attachments-testcaselog-{n}.json
    │   ├── attachments-teststeplog-{n}.json
    │   └── attachments-project-{n}.json
    ├── testexecutions/
    │   ├── testexecutions-Manual-Finished-{n}.json
    │   ├── testexecutions-Automated-Finished-{n}.json
    │   └── testexecutions-Mixed-Finished-{n}.json
    ├── testcaselogs/
    │   └── testcaselogs-{n}.json
    ├── teststeplogs/
    │   └── teststeplogs-{n}.json
    ├── testcaselog-assertions/
    │   └── testcaselogassertions-{n}.json
    ├── testcaselogresultoverrides/
    │   └── testcaselogresultoverrides-{n}.json
    ├── assertion-attachments/
    │   └── assertion-attachments-{n}.json
    ├── defects/
    │   └── defects-{n}.json
    ├── parameters/
    │   └── parameters-{n}.json
    ├── testsetpackages/
    │   └── testsetpackages-{n}.json
    ├── testsettestcaseparameters/
    │   └── testsettestcaseparameters-{n}.json
    ├── testsetschedules/
    │   └── testsetschedules-testset-{n}.json
    ├── objectfilters/
    │   └── objectfilters-testset-{n}.json
    ├── projectauthorization/
    │   └── projectauthorization-{n}.json
    ├── projectsettings/
    │   └── projectsettings.json         ← singular, no number suffix
    └── prompts/
        └── prompts-{n}.json
注:

実際にエクスポートされたオブジェクトの種類のみが存在します。見つからないフォルダー/ファイルは、インポート中に警告なしにスキップされます。

ファイル命名規則

ほとんどのオブジェクトタイプ — 番号付きチャンク

ファイルには <type>-{n}.json という名前が付けられ {n} システムによって生成される実際のエクスポートの場合は 0 から始まります。例えば:

requirementtestcaseassignments-0.json
testcases-0.json
teststeps-0.json
requirementtestcaseassignments-0.json
testcases-0.json
teststeps-0.json

インポーターは各フォルダー内のすべてのファイルをスキャンするため、ファイルを手作業で作成するときに 0ベースと 1ベースの番号付けの両方が機能します。

大きなエクスポートは複数のファイル(testcases-0.jsontestcases-1.jsonなど)に分割される場合があります—インポーターはフォルダー内のすべてのファイルを読み取ります。

ヒント:

最適なパフォーマンスを得るには、各ファイルのオブジェクトを最大 500 個に制限します。

型スコープのファイル名

いくつかのオブジェクトタイプは、属するオブジェクトタイプによってファイルのスコープを設定します。インポーターは修飾子に関係なくフォルダー 内のすべてのファイルを読み込み ますが、実際のエクスポートでは常に次の名前が使用されます。

オブジェクトの種類ファイル名のパターン
ObjectLabelsobjectlabels-testcase-{n}.jsonobjectlabels-testset-{n}.jsonobjectlabels-requirement-{n}.json、...
CustomFieldValuescustomfieldvalues-testcase-{n}.json, customfieldvalues-requirement-{n}.json
添付ファイルattachments-testexecution-{n}.jsonattachments-requirement-{n}.json、...
テスト実行testexecutions-Manual-Finished-{n}.jsontestexecutions-Automated-Finished-{n}.json、...
オブジェクト フィルターobjectfilters-testset-{n}.json
テスト セットのスケジュールtestsetschedules-testset-{n}.json

プロジェクト設定 — 番号サフィックスなし

projectsettings/projectsettings.json
projectsettings/projectsettings.json

このファイルは常に単数形です (チャンク番号なし)。

エンコードの要件

すべての JSON ファイルは、BOM なしの UTF-8 としてエンコードする必要があります

警告:

PowerShell 5.1 の Set-Content -Encoding utf8 では、UTF-8 BOM (EF BB BF) が書き込まれます。これにより、ブラウザーのJSON.parse位置 0 にSyntaxError: Unexpected tokenスローされます。PowerShell から .tmh ファイルを作成するときは、常に [System.IO.File]::WriteAllText($path, $content, (New-Object System.Text.UTF8Encoding($false))) を使用してください。

スキーマのバージョン管理

manifest.jsonにはschemaVersionフィールド (例: "1.0.16") があります。インポーターは、このバージョンを各 DTO プロパティの [IntroducedIn] 属性と共に使用して、読み取るフィールドを決定します。パッケージのスキーマ バージョンよりも新しいバージョンで導入されたフィールドは、逆シリアル化時に無視されます。

現在の最新バージョン: 1.0.16

バージョン履歴の概要:

バージョン注目すべき追加機能
1.0.0初期状態: 要件、テスト ケース、テスト ステップ、テスト セット、割り当て、ラベル、添付ファイル、不具合、カスタム フィールドの値
1.0.1preCondition テスト ケース
1.0.2テスト実行、テスト ケース ログの結果の上書き、アサーション
1.0.4サブセットのエクスポート (isSubsetExportexportSubsetDetails)
1.0.5カスタム フィールドのラベル
1.0.7ユーザー定義のプロンプト
1.0.9postCondition テスト ケース
1.0.10パラメーター
1.0.11テスト セット パッケージ、テスト セットの folderKey/folderName 、テスト ケースの packageEntryPointUniqueId など
1.0.13id 添付ファイルのフィールド
1.0.14studioWebFileId/studioWebProjectId - テスト ケーステスト セット/テスト ケースの割り当てに関するid
1.0.15assigneeEmail テスト セット/テスト ケースの割り当て
1.0.16プロジェクト構成 (設定、ガバナンス、署名者)、カスタム フィールドの定義、プロジェクトの承認

manifest.json

アーカイブの ルート ( objects/の内部ではない) にあります。

{
  "objectCountDetails": {
    "testCases": 5,
    "testSets": 2,
    "requirements": 3,
    "objectLabels": 0,
    "attachments": 0,
    "testExecutions": 0,
    "testCaseLogs": 0,
    "testCaseResultOverrides": 0,
    "testSteps": 12,
    "testStepLogs": 0,
    "testSetTestCaseAssignments": 6,
    "requirementTestCaseAssignments": 4,
    "defects": 0,
    "customFieldValues": 0,
    "customFieldLabels": 0,
    "assertions": 0,
    "assertionScreenshots": 0,
    "testSetLabelFilters": 0,
    "userDefinedPrompts": 0,
    "parameters": 0,
    "testSetPackages": 0,
    "testSetTestCaseParameters": 0,
    "customFieldDefinitions": 0,
    "projectAuthorizations": 0
  },
  "project": {
    "name": "My Project",
    "description": "Project description",
    "projectPrefix": "MP"
  },
  "tmPackageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "schemaVersion": "1.0.16"
}
{
  "objectCountDetails": {
    "testCases": 5,
    "testSets": 2,
    "requirements": 3,
    "objectLabels": 0,
    "attachments": 0,
    "testExecutions": 0,
    "testCaseLogs": 0,
    "testCaseResultOverrides": 0,
    "testSteps": 12,
    "testStepLogs": 0,
    "testSetTestCaseAssignments": 6,
    "requirementTestCaseAssignments": 4,
    "defects": 0,
    "customFieldValues": 0,
    "customFieldLabels": 0,
    "assertions": 0,
    "assertionScreenshots": 0,
    "testSetLabelFilters": 0,
    "userDefinedPrompts": 0,
    "parameters": 0,
    "testSetPackages": 0,
    "testSetTestCaseParameters": 0,
    "customFieldDefinitions": 0,
    "projectAuthorizations": 0
  },
  "project": {
    "name": "My Project",
    "description": "Project description",
    "projectPrefix": "MP"
  },
  "tmPackageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "schemaVersion": "1.0.16"
}
注:

実際のエクスポートには、 packageName フィールド(推奨されるダウンロードファイル名)も含まれます。インポーターはそれを無視し、手作りのファイルでは省略します。

objects/ — JSON ファイルスキーマ

すべてのオブジェクトファイルは、単一のプロパティがJSON配列である ラッパーオブジェクト を使用します。配列には、個々のオブジェクト レコードが含まれます。

requirements/{n}.json

{
  "requirements": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "User can log in",
      "description": "The login form must accept valid credentials.",
      "foreignRef": "",
      "connectorRequirementId": "00000000-0000-0000-0000-000000000000"
    }
  ]
}
{
  "requirements": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "User can log in",
      "description": "The login form must accept valid credentials.",
      "foreignRef": "",
      "connectorRequirementId": "00000000-0000-0000-0000-000000000000"
    }
  ]
}
フィールド入力備考
idGUID 文字列要件ごとの一意の識別子
namestring必須;最大 255 文字
descriptionstring空の文字列を指定できます
foreignRefstring外部システム参照空でも構いません
connectorRequirementIdGUID 文字列コネクタにリンクされていない場合は "00000000-0000-0000-0000-000000000000" を使用します。

testcases/{n}.json

{
  "testCases": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440001",
      "version": null,
      "name": "Verify login with valid credentials",
      "inputParams": null,
      "description": "",
      "automationId": null,
      "automationTestCaseName": null,
      "automationProjectName": null,
      "foreignRef": "",
      "connectorTestCaseId": null,
      "preCondition": null,
      "postCondition": null,
      "packageEntryPointUniqueId": null,
      "packageIdentifier": null,
      "packageEntryPointName": null,
      "feedId": null,
      "packageSourceName": null,
      "studioWebFileId": null,
      "studioWebProjectId": null
    }
  ]
}
{
  "testCases": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440001",
      "version": null,
      "name": "Verify login with valid credentials",
      "inputParams": null,
      "description": "",
      "automationId": null,
      "automationTestCaseName": null,
      "automationProjectName": null,
      "foreignRef": "",
      "connectorTestCaseId": null,
      "preCondition": null,
      "postCondition": null,
      "packageEntryPointUniqueId": null,
      "packageIdentifier": null,
      "packageEntryPointName": null,
      "feedId": null,
      "packageSourceName": null,
      "studioWebFileId": null,
      "studioWebProjectId": null
    }
  ]
}
フィールド入力備考
idGUID 文字列テスト ケースごとに一意
version文字列 |Nullnull 手動テスト用のテスト ケースの場合 "1.0.0" パッケージ バージョンにリンクされている自動化されたテスト ケースに使用します。 "" 固定バージョンのない自動化されたテスト ケースの場合に使用します。
namestring必須;最大 255 文字
inputParams文字列 |NullJSON でエンコードされた入力パラメーター手動のnull
descriptionstringリッチ テキストの説明不在時の""
automationId文字列 |NullUiPath Automation の識別子手動のnull
automationTestCaseName文字列 |Nullオートメーションの表示名手動のnull
automationProjectName文字列 |Nullオートメーション プロジェクト手動のnull
foreignRefstring外部システム参照不在時の""
connectorTestCaseId文字列 |Nullコネクタ システム ID不在時のnull
preCondition文字列 |null (v1.0.1+)前提条件テキスト不在のときは null 。最大 8,000 文字
postCondition文字列 |null (v1.0.9+)事後条件テキスト不在のときは null 。最大 8,000 文字
packageEntryPointUniqueId文字列 |null (v1.0.11+)パッケージ エントリ ポイント GUID。手動のnull
packageIdentifier文字列 |null (v1.0.11+)パッケージ ID手動のnull
packageEntryPointName文字列 |null (v1.0.11+)エントリ ポイント名手動のnull
feedId文字列 |null (v1.0.11+)パッケージ フィード ID手動のnull
packageSourceName文字列 |null (v1.0.11+)パッケージ ソース名手動のnull
studioWebFileId文字列 |null (v1.0.14+)Studio Web のファイル ID手動のnull
studioWebProjectId文字列 |null (v1.0.14+)Studio Web プロジェクト ID手動のnull

teststeps/{n}.json

{
  "testSteps": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "testCaseId": "550e8400-e29b-41d4-a716-446655440001",
      "orderNo": 0,
      "actionType": null,
      "description": "Navigate to the login page",
      "expectedResult": "Login page is displayed",
      "clipboardData": ""
    }
  ]
}
{
  "testSteps": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "testCaseId": "550e8400-e29b-41d4-a716-446655440001",
      "orderNo": 0,
      "actionType": null,
      "description": "Navigate to the login page",
      "expectedResult": "Login page is displayed",
      "clipboardData": ""
    }
  ]
}
フィールド入力備考
idGUID 文字列ステップごとに一意
testCaseIdGUID 文字列既存のテスト ケースを参照する必要があります id
orderNointeger0 ベースの 表示順序 (最初の手順 = 0)
actionType文字列 |Nullnull 手動ステップの場合
descriptionstringステップのアクション テキスト
expectedResultstring期待される結果不在時の""
clipboardDatastringクリップボード/スクリーンショット データ最大 8,000 文字通常は ""

testsets/{n}.json

{
  "testSets": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440020",
      "version": null,
      "name": "Regression Suite",
      "description": "",
      "source": "TestManager",
      "externalTestSetId": null,
      "sourceDetails": null,
      "folderKey": null,
      "folderName": ""
    }
  ]
}
{
  "testSets": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440020",
      "version": null,
      "name": "Regression Suite",
      "description": "",
      "source": "TestManager",
      "externalTestSetId": null,
      "sourceDetails": null,
      "folderKey": null,
      "folderName": ""
    }
  ]
}
フィールド入力備考
idGUID 文字列テスト セットごとに一意
version文字列 |Nullnull Test Manager で管理されるテスト セットの場合
namestring必須;最大 255 文字
descriptionstring"" 不在の場合
sourcestring"TestManager" (デフォルト) または "Orchestrator"これは整数ではなく文字列です
externalTestSetId文字列 |Nullsource"Orchestrator"場合の外部 ID。それ以外の場合null
sourceDetails文字列 |Null追加のソース メタデータ不在時のnull
folderKey文字列 |null (v1.0.11+)UiPath Orchestrator のフォルダー キーリンクされていない場合はnull
folderName文字列 (v1.0.11+)フォルダーの表示名リンクされていない場合は "" 。DBには保存されず、情報のみ

testsetTestCaseAssignments/{n}.json

{
  "testSetTestCaseAssignments": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440030",
      "testSetId": "550e8400-e29b-41d4-a716-446655440020",
      "testCaseId": "550e8400-e29b-41d4-a716-446655440001",
      "assigneeEmail": null
    }
  ]
}
{
  "testSetTestCaseAssignments": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440030",
      "testSetId": "550e8400-e29b-41d4-a716-446655440020",
      "testCaseId": "550e8400-e29b-41d4-a716-446655440001",
      "assigneeEmail": null
    }
  ]
}
フィールド入力備考
idGUID 文字列 (v1.0.14+)割り当て識別子
testSetIdGUID 文字列テスト セットを参照します id
testCaseIdGUID 文字列テスト ケースを参照します id
assigneeEmail文字列 |null (v1.0.15+)担当者のメール アドレス未割り当ての場合はnull

requirementtestcaseassignments/{n}.json

{
  "requirementTestCaseAssignments": [
    {
      "requirementId": "550e8400-e29b-41d4-a716-446655440000",
      "testCaseId": "550e8400-e29b-41d4-a716-446655440001"
    }
  ]
}
{
  "requirementTestCaseAssignments": [
    {
      "requirementId": "550e8400-e29b-41d4-a716-446655440000",
      "testCaseId": "550e8400-e29b-41d4-a716-446655440001"
    }
  ]
}
警告:

idフィールドはありません。他のほとんどのオブジェクトの種類とは異なり、要件テスト ケースの割り当てには requirementIdtestCaseIdのみがあります。

objectlabels/objectlabels-{objecttype}-{n}.json

注:

ファイル名: 実際のエクスポートでは、 objectlabels-testcase-1.jsonobjectlabels-testset-1.json、 、 objectlabels-requirement-1.jsonなどの型修飾名が使用されます。インポーターは objectlabels/ フォルダー内のすべてのファイルを読み込むため、ファイルを手動で作成する際に修飾子は厳密には必要ありませんが、規則に従うことをお勧めします。

{
  "objectLabels": [
    {
      "objectId": "550e8400-e29b-41d4-a716-446655440001",
      "name": "regression",
      "description": "",
      "labelType": 0,
      "objectType": "TestCase"
    }
  ]
}
{
  "objectLabels": [
    {
      "objectId": "550e8400-e29b-41d4-a716-446655440001",
      "name": "regression",
      "description": "",
      "labelType": 0,
      "objectType": "TestCase"
    }
  ]
}
フィールド入力備考
objectIdGUID 文字列ラベル付けされたオブジェクトの ID
namestringラベル テキスト
descriptionstringラベルの説明不在時の""
labelTypeinteger1 = システム ラベル (例:"manual", "automated"); 0 = ユーザー定義のラベル
objectTypestring"TestCase""TestSet""Requirement""TestExecution""TestCaseLog"

CustomFieldValues/{n}.json

{
  "customFieldValues": [
    {
      "objectId": "550e8400-e29b-41d4-a716-446655440001",
      "objectType": "TestCase",
      "fieldName": "Priority",
      "fieldValue": "High"
    }
  ]
}
{
  "customFieldValues": [
    {
      "objectId": "550e8400-e29b-41d4-a716-446655440001",
      "objectType": "TestCase",
      "fieldName": "Priority",
      "fieldValue": "High"
    }
  ]
}

projectsettings/projectsettings.json

スキーマ バージョン (1.0.16) で導入されました。[プロジェクト構成のエクスポート] が有効な場合にのみ表示されます。

{
  "projectTimeZone": "Europe/Vienna",
  "folderKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "governanceEnabled": true,
  "governedByDefault": false,
  "signatories": [
    {
      "signatoryId": "550e8400-e29b-41d4-a716-446655440099",
      "signatoryType": 0,
      "signatoryLastKnownDetails": "john.doe@company.com"
    }
  ]
}
{
  "projectTimeZone": "Europe/Vienna",
  "folderKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "governanceEnabled": true,
  "governedByDefault": false,
  "signatories": [
    {
      "signatoryId": "550e8400-e29b-41d4-a716-446655440099",
      "signatoryType": 0,
      "signatoryLastKnownDetails": "john.doe@company.com"
    }
  ]
}
注:

他のすべてのオブジェクトファイルとは異なり、 projectsettings.json直接オブジェクト です (ラッパー配列ではありません)。このファイルには、1 つのフラットな JSON オブジェクトが含まれています。

フィールド入力備考
projectTimeZone文字列 |NullIANA タイムゾーン文字列 (例: "Europe/Vienna")
folderKeyGUID |Nullリンクされた Orchestrator フォルダー
governanceEnabledブール値 |Nullプロジェクトに対してガバナンスが有効かどうか
governedByDefaultブール値 |Null新しいテスト ケースを既定で管理するかどうか
signatories配列 |Null承認者/署名者のリスト
signatories[].signatoryIdGUIDユーザーまたはグループ ID
signatories[].signatoryTypeinteger0 = ユーザー、 1 = ユーザー グループ
signatories[].signatoryLastKnownDetailsstringエクスポート時の表示名またはメール アドレス
注:

lastDisabledAt (ガバナンスの無効化のタイムスタンプ) は、エクスポートから意図的に除外されています。これは、再インポートされたプロジェクトには意味のない内部タイムスタンプです。

ルールと制約

  1. すべての ID は、一意で有効な GUID である必要があります。同じ型または異なる型のオブジェクト間で ID を再利用しないでください。

  2. 相互参照は解決する必要があります。テスト ステップまたは割り当て内の testCaseId は、同じパッケージに存在するテスト ケース id を参照する必要があります。

  3. ラッパーオブジェクトが必要です。コレクションに1つのアイテムがある場合でも、 { "testCases": [ {...} ] }、裸の配列やオブジェクトではなく、折り返す必要があります。

  4. null""の規則:本当に存在しない任意のフィールドには null を使用します (例:automationIdinputParamspreConditionconnectorTestCaseId、手動テスト用のテスト ケースのすべての package* フィールド)。"" は常に文字列として存在するものの、たまたま空であるフィールド (例:foreignRefdescriptionclipboardData)。これらを混在させると、特にnullが予期される場所で""を使用すると、インポートがサイレントに失敗する可能性があります。

  5. マニフェスト内のobjectCountDetailsは、存在するオブジェクトの実際の数と一致する必要がありますが、インポータはカウントを厳密に検証しません — 不一致はインポート前の概要表示にのみ影響します。

  6. BOM なしの UTF-8 は、すべてのファイルに必須です。

最小限の有効なTMHファイル(手作り)

Test Manager が受け入れる最小の有効な .tmh ファイルには、以下の manifest.jsonのみが含まれます。

{
  "objectCountDetails": { ... },
  "project": { "name": "Test Project", "description": "", "projectPrefix": "TP" },
  "tmPackageId": "<new-guid>",
  "schemaVersion": "1.0.16"
}
{
  "objectCountDetails": { ... },
  "project": { "name": "Test Project", "description": "", "projectPrefix": "TP" },
  "tmPackageId": "<new-guid>",
  "schemaVersion": "1.0.16"
}

objects/サブディレクトリはすべて省略可能です。インポータは、アーカイブに存在しないオブジェクトタイプをサイレントにスキップします。

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得