TestRail でテスト結果を中央管理するのは有力なユース ケースです。そうすると、すべてのテスト作業を 1 箇所に統合し、テストをより詳細に可視化および管理できるほか、TestRail が提供する豊富なテスト レポートの中から任意のレポートを生成できます。
プログラム的にテスト ランを作成し、結果をインポートする機能を利用すると、以下のような統合が可能です。
-
- テスト ランを作成し、テスト自動化スイートから結果をアップロードします。
- アウトソースされたテスト結果でテスト ランを更新します。
| 実際のサンプル | ユース ケース |
|---|---|
| TestRail CLI | テスト自動化レポートからのテスト ランの作成と結果のアップロード |
| Functionize | 自動化されたテストからのテスト ランの作成と結果のアップロード |
| Katalon | 自動化されたテストからのテスト ランの作成と結果のアップロード |
| Global App Testing | 外部のテスターによって追加された結果のサブミット |
テスト ランの作成
テスト ランは、実行するテストのコンテナーとなり、結果をサブミットすることを可能にします。単純なテスト ランを追加するには、次のエンドポイントを使用します。
リクエスト
POST index.php?/api/v2/add_run/{project_id}
curl -X POST \ -u "user@example.com:password" \ -F "@path/to/data.json" \ "https://example.testrail.io/index.php?/api/v2/add_run/12"
リクエスト ボディのサンプル
{
"suite_id": 1,
"name": "New test run",
"description": "Test run description",
"assignedto_id": 5,
"include_all": false,
"case_ids": [4076, 4078, 4079]
}
レスポンス ボディのサンプル
{
"id": 228,
"suite_id": 53,
"name": "New test run",
"description": "Test run description",
"milestone_id": null,
"assignedto_id": 5,
"include_all": false,
"is_completed": false,
"completed_on": null,
"config": null,
"config_ids": [],
"passed_count": 0,
"blocked_count": 0,
"untested_count": 3,
"retest_count": 0,
"failed_count": 0,
"custom_status1_count": 0,
"custom_status2_count": 0,
"custom_status3_count": 0,
"custom_status4_count": 0,
"custom_status5_count": 0,
"custom_status6_count": 0,
"custom_status7_count": 0,
"project_id": 27,
"plan_id": null,
"created_on": 1684936873,
"updated_on": 1684936873,
"refs": null,
"dataset_id": null,
"created_by": 18,
"url": "https://marketing80testing.testrail-staging.com/index.php?/runs/view/228"
}
ケース ID を使用したテスト ランへの結果の追加
テスト ランに結果を追加するには、ケース ID を使用してテスト ケースと結果をマッピングします。実際の結果のほかに、サンプルのボディ コンテンツにあるように、簡単なコメントを追加できます。結果を追加するには、次のエンドポイントを使用します。
-
- カスタム結果フィールドが設定されている場合、下のサンプルの
custom_failure_severityのように、custom_field_nameというパターンを使用して値をサブミットできます。 - ステータス ID および詳細を確認するには、次のリクエストを実行します:
GET index.php?/api/v2/get_statuses
- カスタム結果フィールドが設定されている場合、下のサンプルの
-
-
- デフォルトのステータスは次のとおりです:
- 1 – Passed
- 2 – Blocked
- 3 – Untested (デフォルト値であり、新たにステータスをサブミットする場合は使用できません)
- 4 – Retest
- 5 – Failed
- デフォルトのステータスは次のとおりです:
-
リクエスト
POST index.php?/api/v2/add_results_for_cases/{run_id}
curl -X POST \ -u "user@example.com:password" \ -F "@path/to/data.json" \ "https://example.testrail.io/index.php?/api/v2/add_results_for_cases/228"
リクエスト ボディのサンプル
{
"results": [
{
"case_id": 4076,
"status_id": 1,
"comment": "This test passed",
"elapsed": "5m",
"environment": "qa03"
},
{
"case_id": 4078,
"status_id": 5,
"comment": "This test failed",
"assignedto_id": 5,
"elapsed": "3m",
"environment": "qa03",
"defects": "TR-7",
"custom_failure_severity": 3
},
{
"case_id": 4079,
"assignedto_id": 5,
"comment": "No result, just a comment"
}
]
}
レスポンス ボディのサンプル
[
{
"id": 8658,
"test_id": 18577,
"status_id": 1,
"created_on": 1684937736,
"assignedto_id": null,
"comment": "This test passed",
"version": null,
"elapsed": "5m",
"defects": null,
"created_by": 18,
"custom_step_results": null,
"custom_testrail_bdd_scenario_results": null,
"custom_failure_severity": null,
"attachment_ids": []
},
{
"id": 8659,
"test_id": 18578,
"status_id": 5,
"created_on": 1684937736,
"assignedto_id": 5,
"comment": "This test failed",
"version": null,
"elapsed": "3m",
"defects": "TR-7",
"created_by": 18,
"custom_step_results": null,
"custom_testrail_bdd_scenario_results": null,
"custom_failure_severity": 3,
"attachment_ids": []
},
{
"id": 8660,
"test_id": 18579,
"status_id": null,
"created_on": 1684937736,
"assignedto_id": 5,
"comment": "No result, just a comment",
"version": null,
"elapsed": null,
"defects": null,
"created_by": 18,
"custom_step_results": null,
"custom_testrail_bdd_scenario_results": null,
"custom_failure_severity": null,
"attachment_ids": []
}
]
個別のテスト手順を含む結果の追加
個別のテスト手順は、より詳細にテスト結果を管理するための強力なメカニズムです。全体的なテスト結果を設定するだけでなく、各手順にテスト結果を設定し、手順が失敗した場合には、実際の動作をサブミットすることができます。手順の結果をサブミットするには、次のようなボディ コンテンツを使用します。
リクエスト
POST index.php?/api/v2/add_results_for_cases/{run_id}
curl -X POST \ -u "user@example.com:password" \ -F "@path/to/data.json" \ "https://example.testrail.io/index.php?/api/v2/add_results_for_cases/228"
リクエスト ボディのサンプル
{
"results": [
{
"case_id": 4078,
"status_id": 5,
"comment": "This test failed. See steps results below.",
"elapsed": "3m",
"environment": "qa03",
"custom_step_results": [
{
"content": "Step 1",
"expected": "Expected Result 1",
"status_id": 1
},
{
"content": "Step 2",
"expected": "Expected Result 2",
"actual": "Actual Result 2",
"status_id": 5
}
]
}
]
}
レスポンス ボディのサンプル
[
{
"id": 8661,
"test_id": 18578,
"status_id": 5,
"created_on": 1684938025,
"assignedto_id": null,
"comment": "This test failed. See steps results below.",
"version": null,
"elapsed": "3m",
"defects": null,
"created_by": 18,
"custom_step_results": [
{
"content": "Step 1",
"expected": "Expected Result 1",
"actual": "",
"additional_info": "",
"refs": "",
"status_id": "1"
},
{
"content": "Step 2",
"expected": "Expected Result 2",
"actual": "Actual Result 2",
"additional_info": "",
"refs": "",
"status_id": "5"
}
],
"custom_testrail_bdd_scenario_results": null,
"custom_failure_severity": null,
"attachment_ids": []
}
]
添付ファイルのインポート
添付ファイルは、特にテストが失敗した場合に、テスト結果に追加のコンテキスト情報を提供するのに役立ちます。画面ショット、動画、実行ログなど、任意のタイプの添付ファイルを追加できます。
最大許容アップロード サイズは 256MB に設定されていることに注意してください。
リクエスト
POST index.php?/api/v2/add_attachment_to_result/{result_id}
Content-Type: multipart/form-data
curl -X POST \ -u "user@example.com:password" \ -H "Content-Type: multipart/form-data" \ -F "attachment=@C:\\image.jpg" \ "https://example.testrail.io/index.php?/api/v2/add_attachment_to_result/8661"
リクエスト ボディのサンプル
レスポンス ボディのサンプル
{ "attachment_id": "758c9b26-6038-4147-9a4d-74cd7af1499a" }
テスト ランのクローズ
インポートしたテスト ランおよびテスト結果を誰にも変更されたくない場合、次のエンドポイントを使用してテスト ランをクローズできます。
リクエスト
POST index.php?/api/v2/close_run/{run_id}
curl -X POST \ -u "user@example.com:password" \ -H "Content-Type: application/json" \ "https://example.testrail.io/index.php?/api/v2/close_run/228"
リクエスト ボディのサンプル
レスポンス ボディのサンプル
{
"id": 228,
"suite_id": 53,
"name": "New test run",
"description": "Test run description",
"milestone_id": null,
"assignedto_id": 5,
"include_all": false,
"is_completed": true,
"completed_on": 1684939401,
"config": null,
"config_ids": [],
"passed_count": 0,
"blocked_count": 0,
"untested_count": 1,
"retest_count": 0,
"failed_count": 2,
"custom_status1_count": 0,
"custom_status2_count": 0,
"custom_status3_count": 0,
"custom_status4_count": 0,
"custom_status5_count": 0,
"custom_status6_count": 0,
"custom_status7_count": 0,
"project_id": 27,
"plan_id": null,
"created_on": 1684936873,
"updated_on": 1684936873,
"refs": null,
"dataset_id": null,
"created_by": 18,
"url": "https://marketing80testing.testrail-staging.com/index.php?/runs/view/228"
}




