TestRail インテグレーションを使用すると、カスタムスクリプトを保守することなく、mabl のテストを TestRail のケースにリンクし、プラン実行の結果を TestRail に記録できます。チームはこれまでどおり TestRail でテストケースを管理し、結果を確認します。mabl は TestRail を最新の状態に保ちます。完了した mabl のプラン実行はそれぞれ TestRail の実行(run)になり、どのケースが記録され、どのケースリンクがスキップされたかがレポートされます。
この記事では、TestRail インテグレーションの設定方法、TestRail のケースを mabl のテストにリンクする方法、プラン実行の結果を同期する方法を説明します。
提供状況
TestRail インテグレーションは新しい機能で、現在はアカウント単位で有効化しています。利用をご希望の場合は、カスタマーサクセスマネージャーにお問い合わせください。
インテグレーションを設定する
TestRail のクレデンシャルを準備する
mabl でインテグレーションを追加する前に、TestRail で次の情報を確認してください。
- TestRail Cloud または TestRail Server インスタンスの URL。インスタンスには HTTPS でアクセスできる必要があります。
- TestRail ユーザーのメールアドレスと API キー。API キーを作成するには、TestRail で My Settings > API Keys を開きます。
- ケースをリンクする TestRail プロジェクト。プロジェクトで複数のテストスイートを使用している場合は、対象とするスイートの数値 ID も控えておきます。
mabl が同期した結果は、入力した API キーのユーザーとして TestRail に記録されます。
ベストプラクティスとして、TestRail に「mabl-sync」のような専用ユーザーを作成し、そのユーザーの API キーを生成することをお勧めします。専用ユーザーを使うと、TestRail の監査記録が明確になり、チームメンバーが退職してもインテグレーションが動作し続けます。
mabl でインテグレーションを追加する
TestRail のクレデンシャルを準備したら、mabl でインテグレーションを設定します。
- mabl アプリで、インテグレーションページ(ワークスペース > インテグレーション)に移動します。
- mablとインテグレーション セクションで、TestRail の + セットアップ ボタンをクリックします。
- インテグレーションに名前を付けます。デフォルトの名前は「TestRailインテグレーション」です。
- セットアップ で、インテグレーションを有効にしました をオンのままにします。完了したすべてのプラン実行を mabl が自動的に TestRail に記録するようにしたい場合は、プラン実行の結果を自動的に同期 をチェックします。この設定は後からオンにすることもできます。詳しくは、自動同期をご覧ください。
-
TestRail URL、API ユーザーの メールアドレス、APIキー を入力します。
your-instance.testrail.ioのようにホスト名だけを入力すると、mabl がhttps://を補います。TestRail の URL には HTTPS を使用する必要があります。 - 接続をテスト をクリックします。mabl が TestRail でクレデンシャルを確認し、成功すると、そのユーザーが参照できるプロジェクトを読み込みます。
- 構成 で、プロジェクト を選択します。プロジェクトが複数のテストスイートに分かれている場合は、スイートID フィールドが表示されます。毎回同じスイートを検索するには、そのスイートの数値 ID を入力します。ケースを検索するたびにスイートを選びたい場合は、空欄のままにします。
- 保存 をクリックします。
インテグレーションは、ステータスとホスト URL とともに アクティブなインテグレーション セクションに表示されます。
TestRail インテグレーションはそれぞれ 1 つの TestRail プロジェクトに接続します。別のプロジェクトや別の TestRail インスタンスのケースをリンクするには、2 つ目のインテグレーションを追加し、一意の名前を付けてください。複数のインテグレーションが有効な場合、テストのケースピッカーで検索するインスタンスを選択できます。また、同期されたプラン実行では、ケースが含まれるインテグレーションごとに別々の TestRail の実行が作成されます。
必須の結果フィールド
TestRail インスタンスに、mabl が値を入力しないカスタムの結果フィールドが必須として設定されている場合、設定フォームに「TestRailインスタンスには、mablから値が入力されない必須の結果フィールドがあります」という警告と、該当するフィールド名が表示されます。TestRail の管理者が Administration > Customizations > Result Fields でこれらのフィールドを任意項目に変更するまで、結果の同期は失敗する可能性があります。
インテグレーションを編集、無効化、削除する
インテグレーションを編集するには、アクティブなインテグレーション セクションで該当するインテグレーションを見つけ、鉛筆アイコンをクリックします。保存済みの API キーは mabl に再表示されず、フィールドには「APIキー(保存済み)」と表示されます。キーを入力せずに保存すると、mabl は保存済みのキーをそのまま使用します。接続をテスト は、保存済みのキーを保存済みの URL とメールアドレスで確認します。そのため、URL やメールアドレスを変更した後に接続をテストするには、API キーをもう一度入力してください。
インテグレーションを削除せずに一時停止するには、インテグレーションを有効にしました をオフにして 保存 をクリックします。インテグレーションが無効になっている間、mabl はテストを TestRail のケースにリンクせず、結果も同期しません。
インテグレーションを削除するには、該当する行のごみ箱アイコンをクリックして確認します。テストに保存済みのケース ID はプレーンテキストとして残ります。TestRail へのリンクは解除され、結果の同期も停止します。後で TestRail インテグレーションを再度追加すると、保存済みの ID は再び TestRail のケースにリンクされます。
TestRail のケースを mabl のテストにリンクする
mabl のテストと TestRail のケースは、テスト情報ダイアログの Test case IDs(テストケース ID)フィールドでリンクします。ワークスペースに TestRail インテグレーションがある場合、このフィールドは TestRail を検索し、C123 のように TestRail のケースの形式に一致する ID は、TestRail のケースへのリンクになります。プラン実行では、リンクされたケースに対して結果が記録されます。
このフィールドには、他のテストケース管理インテグレーションの ID も引き続き入力できます。mabl はそれらを入力どおりに保持し、TestRail には送信しません。
既存のテストケース ID
たとえばカスタムインテグレーションのために、チームがすでに Test case IDs フィールドに TestRail のケース ID を入力している場合、もう一度入力する必要はありません。インテグレーションを保存すると、すぐに TestRail にリンクされます。
TestRail のケースを mabl のテストに追加する
- テストの詳細ページで、鉛筆アイコンをクリックしてテスト情報を更新します。
-
Test case IDs フィールドで、次のいずれかの方法でケースを見つけます。
- ケースのタイトルの一部を入力します。mabl はインテグレーションに設定されたプロジェクトを検索し、結果をスイートとセクションごとにグループ化して表示します。すでにテストにリンクされているケースには リンク数 と表示されます。結果を選択します。
- ケース ID を入力して Enter キーを押します。
C123、c123、c0123はいずれもケース 123 を指します。
- リンクされた各ケースは、ケース ID とタイトルが表示されたボタンとして表示されます。必要な数だけ追加できます(テストごとに最大 20 件)。
- 保存 をクリックします。
テストのヘッダーにケース ID が表示されます。TestRail の ID は TestRail のケースにリンクされます。その他の ID はプレーンテキストとして表示されます。
mabl がケースを見つけられない場合
ID を入力しても mabl がインスタンス上でそのケースを見つけられない場合は、その旨が表示され、Link anyway(そのままリンク)が提案されます。この方法でリンクしたケースには「not found in TestRail」(TestRail に見つかりません)のフラグが付きます。プラン実行では、そのケースが TestRail に存在するようになるまでスキップされ、存在するようになると他のケースと同じように同期されます。
複数のインテグレーションとスイート
TestRail インテグレーションの設定によっては、Test case IDs フィールドに 1 つまたは 2 つのセレクターが追加で表示されることがあります。
- TestRail instance(TestRail インスタンス): 複数の TestRail インテグレーションが有効な場合に表示されます。検索するインスタンスを選択します。
- Suite(スイート): TestRail プロジェクトが複数のテストスイートに分かれていて、インテグレーションがそのうちの 1 つを対象にしていない場合に表示されます。検索するスイートを選択します。TestRail はスイート内でケースを検索するため、スイートを選択するまでタイトル検索は実行できません。
タイトルで検索する代わりにケース ID を入力すると、Suite セレクターを省略できます。ケース ID は TestRail インスタンス全体で一意なので、mabl はスイートを特定しなくても C123 を見つけられます。
ケースのリンクを削除する
テストの詳細ページで、鉛筆アイコンをクリックしてテストのメタデータを編集し、削除したいテストケースの × をクリックして、保存 をクリックします。
TestRail のケースからテストを作成する
テストで何をすべきかが TestRail のケースにすでに記述されている場合は、新しいテストを作成する際に、そのケースを mabl エージェントに渡すことができます。ワークスペースに有効な TestRail インテグレーションがある場合、テスト作成 ページのプロンプトの下にある + メニューに ケース オプションが表示されます。
- テスト作成 に移動し、新規テスト タブまたは テストを編集 タブで、プロンプトの下にある + をクリックして ケース を選択します。
- ケースのタイトルまたはケース ID で TestRail を検索します。選択した各ケースはチップとして表示されます。最大 5 件のケースを追加できます。
- テストデータや開始状態など、ケースに含まれていない内容を記述して、プロンプトを送信します。
エージェントは各ケースの前提条件、ステップ、期待される結果を読み取り、テストのアウトラインの仕様として使用します。ケースを完全に読み取れなかった場合、アウトラインにはどのケースが読み取れなかったかが示され、そのケースをカバーしているとは記載されません。
検索の対象は、インテグレーションに設定された TestRail プロジェクトです。そのプロジェクトに複数のテストスイートがある場合、インテグレーションで 1 つのスイートを対象にする必要があります。スイートが設定されていないと ケース オプションで検索できず、ピッカーにインテグレーションでスイートを設定するよう表示されます。
ケースを参照として選択しても、そのケースはテストにリンクされません。テストが作成されたら、上記の手順に従って Test case IDs フィールドにケースを追加し、プラン実行でそのケースに結果が記録されるようにしてください。
プラン実行の結果を TestRail に同期する
TestRail では、実行(run)は一連のケースを 1 回実行した記録です。mabl ではプラン実行がこれに相当するため、mabl はプラン実行の単位で TestRail に結果を記録します。mabl のプラン実行が同期されると、手動か自動かにかかわらず、対応する実行が TestRail に作成され、プラン内のテストにリンクされた各ケースに対して結果が記録されます。
プラン内のすべてのテストがリンクされている必要はありません。TestRail のケースがリンクされていない mabl のテストは、mabl では通常どおり実行されますが、TestRail には記録されず、スキップとしても表示されません。
プラン実行のヘッダーにある TestRail ボタンには、実行の結果が TestRail に記録されているかどうかが表示されます。同期ステータスを確認したり、結果を同期したりするには、このボタンをクリックします。期待したとおりに同期で記録されなかった場合は、同期が不完全な場合や失敗した場合をご覧ください。
プラン実行を手動で同期する
- プラン実行の出力ページを開き、TestRail ボタンをクリックします。
- Sync to TestRail をクリックします。
- 同期中はボタンに「Syncing to TestRail」と表示され、完了すると結果が表示されます。ポップオーバーの Results went to セクションには、mabl が作成した TestRail の実行へのリンクが表示されます。
自動同期
自動同期をオンにすると、誰かが Sync をクリックしなくても、完了したすべてのプラン実行が mabl によって TestRail に記録されます。
- ワークスペース > インテグレーション に移動し、TestRail インテグレーションの鉛筆アイコンをクリックします。
- セットアップ で、プラン実行の結果を自動的に同期 をチェックします。
- 保存 をクリックします。
次のプラン実行以降、TestRail ボタンは「Waiting for the run to finish」から「Syncing to TestRail」、そして「TestRail」へと自動的に変わります。通常、実行の完了から 1 分以内に完了します。ポップオーバーには、手動同期の場合と同じように、作成された TestRail の実行が表示されます。手動の Sync to TestRail と Sync again も引き続き利用できます。
自動同期をオフにするには、インテグレーション設定で プラン実行の結果を自動的に同期 のチェックを外し、保存 をクリックします。すでに同期された実行は TestRail に残ります。新しい実行には、誰かが手動で同期するまで「TestRail — not synced」と表示されます。
mabl が TestRail に記録する内容
同期ごとに、mabl のプランとプラン実行の名前を付けた実行がインテグレーションのプロジェクトに作成されます。プラン内のテストにリンクされた TestRail の各ケースについて、mabl はその実行に 1 件の結果を追加します。
- 成功した mabl のテストは Passed、失敗したテストは Failed として記録されます。
- TestRail には組み込みの Skipped ステータスがありません。TestRail インスタンスにカスタムの Skipped ステータスを追加している場合、mabl はスキップまたは停止されたテストにそのステータスを使用します。追加していない場合、これらのテストはポップオーバーに「no result to record」(記録する結果がありません)として表示されます。
- 各結果のコメントは「Result reported by mabl」で始まり、対象の mabl のテスト名が記載されます。
- 複数の mabl のテストが同じケースにリンクされている場合、TestRail にはそのうち最も悪いステータスの結果が 1 件記録され、コメントにはすべてのテスト名が記載されます。
Sync again は、実行の結果をもう一度送信します。TestRail 側で結果が編集された場合に便利です。mabl 側の理由でスキップされたケースリンクは、再同期しても修正されません。修正したケース ID は、次のプラン実行で反映されます。
同期されないもの
- 単一テストのアドホック実行。TestRail に記録されるのはプラン実行のみです。
- キャンセルまたは停止されたプラン実行。
- プラン内で無効になっているテスト、または TestRail のケースがリンクされていないテスト。TestRail に結果は作成されず、スキップとしても表示されません。
- 他のテストケース管理システムの ID。それらは該当するシステムのために保持されます。
同期が不完全な場合や失敗した場合
TestRail ボタンに次の 3 つのステータスのいずれかが表示されている場合、その実行には対応が必要です。
- TestRail — N links skipped: 実行は同期されましたが、一部のケースリンクを記録できませんでした。ボタンをクリックして、ポップオーバーの スキップしました セクションを確認してください。スキップされた各リンクには理由が表示されます。詳しくは、スキップされたケースリンクをご覧ください。
- TestRailへの同期に失敗しました: 同期が完了する前に停止しました。ポップオーバーには、停止前に記録されたケース数と TestRail からの報告内容が表示されます。Sync again をクリックしてください。同じように失敗する場合は、インテグレーションの設定を確認してください。
- TestRail sync status unavailable: この実行が同期されたかどうかを mabl が確認できませんでした。ページを再読み込みするか、実行を同期してください。
プランの実行履歴とプランページにも、同じ状態が Sync incomplete または 同期に失敗しました として表示されるため、実行を開かなくても対応が必要な実行を見つけられます。
スキップされたケースリンク
ケースリンクを記録できなかった場合、ポップオーバーには次のいずれかの理由が表示されます。
| 理由 | 対処方法 |
|---|---|
| not a TestRail case ID(TestRail のケース ID ではありません) | テストのケース ID を修正します。次のプラン実行で同期されます。 |
| not found in TestRail(TestRail に見つかりません) | TestRail にそのケースが存在することを確認してから、もう一度同期します。 |
| no suite or project(スイートまたはプロジェクトがありません) | ケースが、インテグレーションのプロジェクトの対象外のスイートにあります。TestRail でケースのスイートを確認してから、もう一度同期します。 |
| not in the TestRail run(TestRail の実行に含まれていません) | この同期で作成された TestRail の実行にケースが含まれていませんでした。もう一度同期して追加します。 |
| rejected by TestRail(TestRail に拒否されました) | TestRail が結果を拒否しました。必須の結果フィールドが不足していることが原因の場合が多いです。TestRail でケースを確認してから、もう一度同期します。 |
| no result to record(記録する結果がありません) | テストがスキップまたは停止され、この TestRail インスタンスに Skipped ステータスがありません。TestRail にカスタムの Skipped ステータスを追加するか、スキップされたテストが TestRail では未テストのままになることを許容します。 |
Sync again が役立つのは、原因が TestRail 側にある場合だけです。テスト側で修正したケース ID は、次のプラン実行で反映されます。
制限事項
- 各インテグレーションは 1 つの TestRail プロジェクトに接続します。
- 1 つのテストにリンクできるケース ID は最大 20 件です。
- インテグレーションは TestRail からケースを読み取り、結果を記録します。TestRail のケースを作成したり編集したりすることはありません。
これらの制限がチームのワークフローに影響する場合は、mabl Product Portal からフィードバックをお寄せください。