UIスクリプトを使用してTestRailからJenkinsビルドをトリガーする

Diogo Rede著

この記事は、「TestRailで実現する円滑なテスト自動化」と題したシリーズ記事の一部です。このシリーズでは、次の図のように、自動テストの結果をTestRailに集約する方法を詳しく説明します。

自動テストとTestRailを統合しているチームの多くは、TestRailの外で(たとえば継続的インテグレーションシステムの一部として)自動テストをトリガーし、実行してから、TestRailのAPIを使用してテスト結果をサブミットしています。

いっぽうで、日々のテストアクティビティをTestRailに集約し、複数のシステム間の移動を最小限にしたい場合は、UIスクリプトを使用してTestRailから直接Jenkinsのテスト実行をトリガーする仕組みを実装することもできます。このブログシリーズの最終回となる当記事では、TestRail Customizations GitHub repositoryのUIスクリプトサンプルを使用して、その方法を詳しく説明します。このUIスクリプトは、TestRailの [テスト ランと結果] ページにJenkinsビルドウィジェットを統合します。この手順を完了すると、TestRailを離れることなく自動テストを実行し、結果を取得することができるようになり、全体像が完成します。

Jenkinsの設定

TestRail UIから直接Jenkinsのインスタンスにリクエストを送信するには、Jenkins側でCross-origin resource sharing (CORS)を許可する必要があります。通常、これはセキュリティリスクとみなされますが、適切な注意を払えば、この仕組みを利用して、リスクを増加させることなくTestRailにJenkinsジョブデータへのアクセスを許可できます。それには、次の手順に従って、信頼されたTestRailドメインにCORSを許可します。

1.[Manage Jenkins] >[Plugin Manager] に移動し、CORS support for Jenkins pluginを検索してインストールします。

2.[Manage Jenkins] >[Configure System]に移動します。

3.ページ下部の [CORS Filter] セクションに必要なパラメーターを挿入します。

4.[Save] をクリックして変更を確定します。

UIスクリプトの設定

TestRail Customizations GitHubからJenkins Builds UI Scriptをダウンロードします。UIスクリプトを追加するには、TestRailの管理エリアにある[管理]>[カスタマイズ]>[UI スクリプト] タブに移動し、[UI スクリプトの追加] ボタンを押下後、[設定] テキストボックスにUIスクリプト全体をコピー&ペーストします。以下の説明では、用意されたUIスクリプトサンプルを使用しますが、カスタムスクリプトの開発方法やサンプルのカスタマイズ方法を知りたい場合はUI スクリプトのドキュメントを参照してください。

スクリプトで2つの値を変更するだけで、適切にJenkinsインスタンスと接続し、目的のジョブからデータを取得するよう設定できます。まず、host変数にJenkinsのURLを設定します。次に、サンプルのjobs変数を変更します。ジョブはいくつでも設定できます。ジョブの名前は、トリガーボタンに表示したい任意の値を設定できます。パスは、ジョブへの相対パスであり、Jenkinsでジョブに移動してブラウザーから値をコピーできます。

/* CONFIG */

const host = "https://INSTANCE.testrail.io";
const username = null;               // Enter username and key only if you fully trust your organization members as this may pose a security risk
const key = null;                    // Generate an API key on your Jenkins user account
const requestInterval = 10000;       // Time between requests to Jenkins
const project = "PROJECT NAME";      // Name of the project to load the triggers for (use value null to enable for all projects)
const jobs = [
  {
    "name": "Run Automated Tests",
    "path": "job/Automated%20Tests%20Project"
  }
];

注意: 組織のすべてのTestRailユーザーを全面的に信頼しているのであれば、Jenkinsのユーザー名とキーを入力できますが、UIスクリプト(および認証情報)はブラウザー上にプレーンテキストとして表示されるため、セキュリティリスクとなることに注意してください。これらの変数はnullのままにし、ユーザーにUIから認証情報を入力させるようにすることを推奨します。

UIスクリプトの動作

前にも説明したとおり、UIスクリプトは右側のパネルにJenkinsとの統合セクションを追加します。このセクションには、自動テストのジョブ(またはその他の任意のジョブ)を表示するよう設定できます。パネルには、Automated Test Triggersという新しいセクションがあり、UIスクリプトで設定したジョブが表示されています。ジョブごとにトリガーボタンがあり、新規ビルドを開始できるほか、最近の3回のビルドへのリンクが表示され、色分けによってビルドのステータスがわかります。赤は失敗、緑は成功、青はまだ実行中であることを示します。

[Run Automated Tests]をクリックすると、JenkinsのAPI経由でジョブがトリガーされます。新しいジョブビルドは、実行中は青色でトリガーボタンの下のリストに表示され、その後、最終的なビルド結果に応じて赤色か緑色で表示されます。ビルドのリストはリンクになっているので、より詳細にビルドの結果を確認したい場合、簡単にJenkinsに移動できます。

最終結果

このシリーズの最後の手順を実行すると、下の図のワークフローが完成します。

このワークフローが完成すると、自動テストのトリガーと情報の参照がTestRailの一部になります。TestRailで日々の業務を行うユーザーは、TestRailを離れることなく自動テストスイートを開始し、CIツールでテストが完了すると同時にテストランとしてテスト結果を受け取ることができます。

TestRailにテスト結果が集約されたので、自動テストの実行結果のほか、失敗したテストのエラーメッセージを確認することができます。また、手動テストと自動テストの両方の情報をレポートに集約できます。これによって、テストカバレッジを確実に把握できるほか、テスト自動化の進捗を追跡することもできます。

(この記事は、開発元Gurock社の Blog 「Triggering the Jenkins build from TestRail using UI Scripts」2022年9月26日の翻訳記事です。)

関連する製品

テスト管理ツール TestRail

テストケースの管理やテスト結果の記録、チームでの情報共有など、Excelを使ったテスト管理の業務に限界を感じていませんか?TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。

■ TestRailの特長 ■

  • テストにさまざまな情報を関連づけて一元管理
  • Webブラウザー上でテストケースを簡単に入力や編集可能
  • テスト実施の準備と結果の共有が容易
  • 進捗や比較などのレポートを提供
  • 要件 / 課題管理ツールやテスト自動化ツールと連携

日本国内では、テスト管理にExcelを使っていたお客さまからの乗り換えが多く、Web上で完結するテスト管理を実現されています。

TestRail でテスト管理のお悩みを解決しませんか?

テストの生産性向上をTestRailでお試しください

クラウドおよびオンプレミス、デモサイトでTestRailがお試しいただけます。

  • TestRailクラウド(クラウドサービス)
    • クラウドサービス環境でTestRailをお試しいただけます。
  • TestRailサーバー(オンプレミス版)
    • お客様のマシンにTestRailをインストールしてお試しいただけます。
  • TestRailデモサイト
    • インストールなどの設定なしにTestRailにサンプルデータが登録された環境にて操作をお試しいただけます。

eBook 公開中

Paul Gerrard著 効果的なテスト管理12の秘密 (日本語)

テスト計画やテスト管理に役立つ12のトピックを解説します。

詳細はこちら