TestRail インテグレーションを使用すると、カスタムスクリプトを保守することなく、mabl のテストを TestRail のケースにリンクし、プラン実行の結果を TestRail に記録できます。チームはこれまでどおり TestRail でテストケースを管理し、結果を確認します。mabl は TestRail を最新の状態に保ちます。完了した mabl のプラン実行はそれぞれ TestRail の実行(run)になり、どのケースが記録され、どのケースリンクがスキップされたかがレポートされます。
この記事では、TestRail インテグレーションの設定方法、TestRail のケースを mabl のテストにリンクする方法、プラン実行の結果を同期する方法を説明します。
インテグレーションを設定する
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 cases(テストケース)セクションでリンクします。プラン実行では、リンクされたケースに対して結果が記録されます。
このセクションには、他のシステムの ID も追加できます。Add from(追加元)で Other ID(その他の ID)を選択すると、ID を入力どおりに保存できます。mabl はその他の ID を TestRail には送信しません。
既存のテストケース ID
たとえばカスタムインテグレーションのために、チームがすでにテストに TestRail のケース ID を追加している場合、もう一度入力する必要はありません。インテグレーションを保存すると、すぐに TestRail にリンクされます。
TestRail のケースを mabl のテストに追加する
- テストの詳細ページで、鉛筆アイコンをクリックしてテスト情報を更新します。
- Test cases セクションで、TestRail インスタンスを選択します。
- 次のいずれかの方法でテストケースを見つけます。
- ケースのタイトルの一部を入力します。mabl はインテグレーションに設定されたプロジェクトを検索し、結果をスイートとセクションごとにグループ化して表示します。結果を選択します。
- ケース ID を入力して Enter キーを押します。
C123、c123、c0123はいずれもケース 123 を指します。
- 保存 をクリックします。
リンクされた各ケースは、TestRail のロゴとケースのタイトルが付いたチップとして表示されます。タイトルをクリックすると、TestRail でケースが開きます。1 つのテストには最大 20 件のケースをリンクでき、上限に近づくと、Linked (18 of 20) のように使用中の件数が見出しに表示されます。
テストの詳細ページでは、リンクされた TestRail の ID がテストの他の詳細情報の横に TestRail のロゴとともに表示されます。ID をクリックすると、TestRail でケースが開きます。
mabl がケースを見つけられない場合
ID を入力しても mabl がインスタンス上でそのケースを見つけられない場合は、その旨が表示され、そのままケースをリンクするかどうかを選べます。この方法でリンクしたケースには「not found in TestRail」(TestRail に見つかりません)のフラグが付きます。プラン実行では、そのケースが TestRail に存在するようになるまでスキップされ、存在するようになると他のケースと同じように同期されます。
複数のインテグレーションとスイート
複数の TestRail インテグレーションが有効な場合、各インスタンスはホスト名で Add from に個別に表示されます。検索するインスタンスを選択します。
TestRail プロジェクトが複数のテストスイートに分かれていて、インテグレーションがそのうちの 1 つを対象にしていない場合は、Suite(スイート)セレクターも表示されます。検索するスイートを選択します。TestRail はスイート内でケースを検索するため、スイートを選択するまでタイトル検索は実行できません。
タイトルで検索する代わりにケース ID を入力すると、Suite セレクターを省略できます。ケース ID は TestRail インスタンス全体で一意なので、mabl はスイートを特定しなくても C123 を見つけられます。
ケースのリンクを削除する
テストの詳細ページで、鉛筆アイコンをクリックしてテスト情報を更新し、ケースのチップの × をクリックして、保存 をクリックします。
TestRail のケースからテストを作成する
テストで何をすべきかが TestRail のケースにすでに記述されている場合は、新しいテストを作成する際に、そのケースを mabl エージェントに渡すことができます。ワークスペースに有効な TestRail インテグレーションがある場合、テスト作成 ページのプロンプトの下にある + メニューに ケース オプションが表示されます。
- テスト作成 に移動し、新規テスト タブまたは テストを編集 タブで、プロンプトの下にある + をクリックして ケース を選択します。
- ケースのタイトルまたはケース ID で TestRail を検索します。選択した各ケースはチップとして表示されます。最大 5 件のケースを追加できます。
- テストデータや開始状態など、ケースに含まれていない内容を記述して、プロンプトを送信します。
エージェントは各ケースの前提条件、ステップ、期待される結果を読み取り、テストのアウトラインの仕様として使用します。ケースを完全に読み取れなかった場合、アウトラインにはどのケースが読み取れなかったかが示され、そのケースをカバーしているとは記載されません。
検索の対象は、インテグレーションに設定された TestRail プロジェクトです。そのプロジェクトに複数のテストスイートがある場合、インテグレーションで 1 つのスイートを対象にする必要があります。スイートが設定されていないと ケース オプションで検索できず、ピッカーにインテグレーションでスイートを設定するよう表示されます。
自動リンク
TestRail のケースを 1 件だけ使って新しいテストを作成した場合、エージェントがテストを保存するときに、mabl はそのケースにテストをリンクします。これにより、以降のプラン実行ではそのケースに対して結果が記録されます。複数のケースを参照して新しい mabl テストを作成した場合は、Test cases セクションで自分でリンクを追加する必要があります。
プラン実行の結果を 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 からフィードバックをお寄せください。