11. 外部連携
TestRail を課題管理ツール、要件管理ツールと連携したり、REST API を利用して外部から TestRail にアクセスすることができます。
本章では TestRail の外部連携について説明します。
課題管理ツールとの連携
テスト実行中に発見されたバグ情報を元に、TestRail から課題管理ツール(Redmine や JIRA など)のチケットを新規に起票することができます。
連携の仕組みは2通りあります。
欠陥URL
TestRail から課題管理ツールのチケット新規作成ページにジャンプして新しいバグ情報を登録することができます。
- 
- テストの「結果の追加」画面の 欠陥 > 追加 リンクをクリックします。
 
 

- 
- 連携設定済みの課題管理ツールの新規バグ登録画面が開き、バグ情報を登録します。
 
 

- 
- バグ情報が発行された ID を 欠陥 フィールドに登録します。
 
 

- 
- 結果登録後、結果の一覧に登録した ID のリンクからバグ情報の画面に遷移できます。
 
 
欠陥プラグイン
TestRail から直接、課題管理ツールにバグ情報を登録することができます。
- 
- 
テストの「結果の追加」画面の 欠陥 > プッシュ リンクをクリックします。
 
 - 
 

- 
- 連携設定済みの課題管理ツールの新規バグ登録用のダイアログ画面が開き、登録情報を入力します。(赤枠内の TestRail のURLは自動で挿入されます。)
 
 

- 
- 結果登録後、結果の一覧に登録した ID のリンクが表示され、カーソルをあてるとチケットの内容を確認できます。
 
 

【補足】登録されたチケット(課題管理ツール側)

要件管理ツールとの連携
要件管理ツールに登録された要件情報と TestRail のテストケースを紐づけて管理できます。
またテストケース登録時に新規の要件を、要件管理ツールに登録することもできます。
参照URL
- 
- テストケース追加画面の 参照 フィールドに要件 ID を設定します。(追加リンクから要件管理ツールを開いて新規に要件を登録することもできます。)
 
 

- 
- テストケース登録後、登録したのリンクから要件情報のページに遷移できます。
 
 
REST API
TestRail にはテスト管理を自動で行うために REST API が用意されています。
REST API を利用することで以下のことが可能になります。
- 
- 自動テストからテスト結果、添付ファイルを登録する
 - レガシーなシステムからテストケースを移行する
 - 異なるシステム間でテストケースを共有する
 - TestRail上のマイルストーンやテストランを作成する
 
 
テストケース情報の取得例 (python)
- 
- REST API (get_case) の呼び出し
 
 
client = APIClient('http:///testrail/')
client.user = 'username'
client.password = 'password'
case = client.send_get('get_case/1')
pprint(case) 
- 
- 戻り値
 
 
{
  "id": 1,
  "title": "文書のマージンを変更し、PDFエクスポートとの相互運用性をテストする",
  "section_id": 1,
  "template_id": 1,
  "type_id": 3,
  "priority_id": 2,
  "milestone_id": null,
  "refs": null,
  "created_by": 1,
  "created_on": 1580291613,
  "updated_by": 1,
  "updated_on": 1580291613,
  "estimate": "10m",
  "estimate_forecast": "9m 30s",
  "suite_id": 1,
  "display_order": 1,
  "custom_automation_type": 0,
  "custom_preconds": "**テストデータが初期化されていること。**\n",
  "custom_steps": "自動化スクリプトに順ずる。\n",
  "custom_expected": "自動化スクリプトに順ずる。\n",
  "custom_steps_separated": null,
  "custom_mission": null,
  "custom_goals": "Aenean quis nulla eu dui luctus lobortis:\n\n\t\th1 {\n\t\t\tfont-size: 20px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 1em;\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\t\t\nIn vulputate libero **in nulla feugiat tincidunt**. Etiam massa dolor, ornare sit amet, lacinia nec, bibendum ut, magna."
}
テスト結果の登録例 (python)
- 
- REST API (add_result_for_case) の呼び出し
 
 
result = client.send_post(
     'add_result_for_case/1/1',
     { "status_id": 1, "comment":"This test worked fine!"}
)
pprint(result)
- 
- 戻り値
 
 
{
  "id": 4563,
  "test_id": 3822,
  "status_id": 1,
  "created_by": 1,
  "created_on": 1581052893,
  "assignedto_id": null,
  "comment": "This test worked fine!",
  "version": null,
  "elapsed": null,
  "defects": null,
  "custom_step_results": null,
  "attachment_ids": []
}
リンク
- 
- TestRail ユーザーガイド
 - 次のチュートリアル: 12.その他