11. 外部連携

11. 外部連携

TestRail を課題管理ツール、要件管理ツールと連携したり、REST API を利用して外部から TestRail にアクセスすることができます。

本章では TestRail の外部連携について説明します。

☆Information☆
外部ツールとの連携には事前に管理者ユーザーによる設定が必要です。
設定方法は以下を参照してください。
TestRail 統合ガイド

課題管理ツールとの連携

テスト実行中に発見されたバグ情報を元に、TestRail から課題管理ツール(Redmine や JIRA など)のチケットを新規に起票することができます。

連携の仕組みは2通りあります。

欠陥URL

TestRail から課題管理ツールのチケット新規作成ページにジャンプして新しいバグ情報を登録することができます。

    • テストの「結果の追加」画面の 欠陥 > 追加 リンクをクリックします。
integration_01
    • 連携設定済みの課題管理ツールの新規バグ登録画面が開き、バグ情報を登録します。
integration_02
    • バグ情報が発行された ID を 欠陥 フィールドに登録します。
integration_03
    • 結果登録後、結果の一覧に登録した ID のリンクが表示され、カーソルをあてるとチケットの内容を確認することができます。
integration_04

欠陥プラグイン

TestRail から直接、課題管理ツールにバグ情報を登録することができます。

    • テストの「結果の追加」画面の 欠陥 > プッシュ リンクをクリックします。
integration_05
    • 連携設定済みの課題管理ツールの新規バグ登録用のダイアログ画面が開き、登録情報を入力します。(赤枠内の TestRail のURLは自動で挿入されます。)
integration_06
    • 結果登録後、結果の一覧に登録した ID のリンクが表示され、カーソルをあてるとチケットの内容を確認することができます。
integration_07

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

integration_08

要件管理ツールとの連携

要件管理ツールに登録された要件情報と TestRail のテストケースを紐づけて管理することができます。

またテストケース登録時に新規の要件を、要件管理ツールに登録することもできます。

参照URL

    • テストケース追加画面の 参照 フィールドに要件 ID を設定します。(追加リンクから要件管理ツールを開いて新規に要件を登録することもできます。)
integration_09
    • テストケース登録後、登録した ID のリンクが表示され、カーソルをあてるとチケットの内容を確認することができます。
integration_10

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": []
}

リンク