自動テストの結果をTestRailに送信する

Diogo Rede著

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

ここまで、このシリーズ記事の説明どおり手順を実行してきた場合、テスト実行パイプラインがセットアップされ、テスト結果が成果物としてJenkinsに格納されるようになっているはずです。一貫性のあるテスト管理と可視性を重視する組織であれば、自動テストの結果をテスト管理ツールで管理することでテストアクティビティを一元化し、統合された内容豊富なレポートを生成したいと考えるでしょう。

TestRail CLI

このプロセスを可能なかぎり容易かつシームレスにできるよう、TestRailにはテスト結果をアップロードするCLIがあります。テスト自動化フレームワークがJUnit形式のレポートを生成できるなら、CLIは結果をアップロードできます。TestRail CLIはJUnit形式のレポートを解析し、TestRailにテストケースを自動作成し、テストランを作成し、結果をそれぞれ対応するテストにアップロードします。

TestRail CLIは Pythonで開発されたツールであり、Python Package Index (PyPI) で利用可能です。  このツールを使用するのに必要な条件は、システムにPythonがインストールされていることだけです(これまでの手順で、Pytestプロジェクトを利用するために、すでにPythonが設定されています)。次のコマンドを使用してTestRail CLIをインストールできます。

$ pip install trcli

TestRail インスタンスでTestRail CLIを使用できるようにするために、いくつか簡単な設定が必要です。  設定手順およびCLIで利用可能な機能については、TestRail CLI ドキュメントを参照してください。

TestRail CLIを使用するようビルドステップを設定する

ここでJenkinsジョブに戻り、TestRailにテスト結果をアップロードするために必要な変更を行います。

1.Execute shell ステップのCommandを編集し、TestRail CLIを使用してテスト結果をアップロードするよう変更します。

シェル スクリプトの説明

以下は、上記で使用したスクリプトのコピーと各セクションの簡単な説明です。

# Setup virtual environment
python3.10 -m venv ./venv
. ./venv/bin/activate

# Install and run test project
pip install -r requirements.txt
pytest --junitxml "reports/junit-report.xml" "./tests" || pytest_exit_code=$?

# Install TestRail CLI and upload test results
pip install trcli
trcli -y 
  -h "https://INSTANCE.testrail.io" 
  -u "USER_EMAIL" 
  -p "API_TOKEN" 
  --project "PROJECT NAME" 
  parse_junit 
  --title "Automated Test Run" 
  --run-description "CI Build: ${BUILD_URL}" 
  -f "reports/junit-report.xml"
    
# Exit with Pytest exit code
exit $pytest_exit_code

# Install and run test project

1つ目の変更はpytestコマンドです。--junitxml "reports/junit-report.xml"オプションに注目してください。これは、TestRail CLIが利用するJUnit形式のレポートを生成するようPytestに指示します。このオプションの詳細については、Pytestとの統合を参照してください。もう1つ注目するべき点は、pytestコマンドの後の|| pytest_exit_code=$?です。これは、テストが失敗し、Pytestが失敗の終了コードを返した場合でも続行するようシェルに指示します。この指示がない場合、TestRailにテスト結果をアップロードせずにジョブ全体が終了します。後で pytest_exit_codeを使用してスクリプトを終了し、テスト結果に従ってビルドを成功または失敗させます。この動作を実現する方法は複数あり、プラグインを利用することもできますが、このサンプルの目的を達成する一番簡単な方法が、ここで紹介したやり方です。

# Install TestRail CLI and upload test results

(失敗したテストがあったかどうかにかかわらず)テスト実行が正常に終了すると、JUnit形式のレポートが生成され、TestRailに結果をアップロードできます。それには、pipを使用してTestRail CLIをインストールし、TestRailインスタンスの詳細を指定してCLIを実行します。-h-u-pおよび--projectのプレースホルダ―を具体的な値に置き換えてください。このスクリプトのtrcliの呼び出しに関して、もう1つささいですが覚えておくと役に立つ点は、--run-description "CI Build: ${BUILD_URL}"オプションです。このオプションは、簡単にビルドに戻ることができるよう、現在のJenkinsビルドURLをTestRailのテストランに追加します。最後に推奨事項として、パスワードやAPIトークンをスクリプトに直接記述せず、Jenkinsの認証情報マネージャーを利用します。

# Exit with Pytest exit code

前述のとおり、元のPytestの終了コードを渡してスクリプトを終了します。そうすることで、Jenkinsに実際の自動テスト実行の結果を通知できます。

ジョブを実行する

1.ビルドステップの変更が完了したので、ジョブを実行します。それには、左側のパネルの [Build Now] アクションをクリックします。

2.ジョブが完了した後、ビルドの [Console Output] ページでログを確認すると、期待どおりスクリプトが実行されたことがわかるでしょう。テストの実行が問題なく完了し、TestRail CLIが適切に設定されていれば、TestRailインスタンスにテスト結果が送信されていることをビルドログで確認できるでしょう。

3.最後に、TestRailインスタンスを開いて [テストランと結果] ページに移動すると、Automated Test Runという名前のランが作成され、テスト結果とともに、このテストランを作成したJenkinsジョブビルドへのリンクが表示されています。ランの説明にリンクがあり、Jenkinsに移動してテスト結果をさらに詳しく確認できることに注目してください。

最終結果

この記事の手順をすべて完了すると、次の図のステップ3、4、5が完成します。

これでTestRailにテスト結果が集約されたので、自動テストランの結果や失敗したテストのエラーメッセージを確認できるだけでなく、手動テストと自動テストの両方の情報をレポートに集約し、アプリケーションに関する完全なテストカバレッジを参照したり、テスト自動化の進捗を追跡したりすることもできます。また、手動テストの場合と同様に、自動テストの結果から任意の課題トラッカーに直接バグをレポートすることもできます。

この時点では、TestRailで結果を見るには、依然としてJenkinsにログインして自動テストジョブを開始する必要があります。これが、TestRailから直接ジョブをトリガーできるようになればどうでしょうか? これを実現する方法については、最後の4つ目の手順を説明する記事「UIスクリプトを使用してTestRailからJenkinsビルドをトリガーする」を参照してください。

(この記事は、開発元Gurock社の Blog 「Sending your automated test results to TestRail」2022年9月25日の翻訳記事です。)

関連する製品

テスト管理ツール TestRail

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

■ TestRailの特長 ■

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

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

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

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

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

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

eBook 公開中

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

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

詳細はこちら