はじめに
TestRailは、ソフトウェアテスト管理を効率的に行うための強力なツールです。特に、複数のテストケースを一元管理することで、プロジェクトの進行状況を把握しやすくなります。エクセルやスプレッドシートのテストケースをTestRailで管理することはもちろん、APIテストや自動化されたエンドツーエンド(E2E)テストの結果も統合できれば、さらなる利便性が期待できます。
そこで今回は、APIテストツールのPOSTMANと、E2EテストフレームワークのPlaywrightを用いて、テスト結果をTestRailに反映させる方法について紹介します!
POSTMANで実行したテストをTestRailに連携する
事前準備(インストール)
-
- NEWMANを利用するために必要になります。
-
NEWMAN
- Node.js をインストールした後,ターミナルから以下を実行します。
npm install -g newma
- Node.js をインストールした後,ターミナルから以下を実行します。
-
NEWMANのプラグインをインストールします。
-
npm install -g newman newman-reporter-htmlextra newman-reporter-testrail
-
TestRailの環境変数の設定
.zshrcファイルにTestRailの環境変数を設定します。
(以下の設定は必須項目のみになります。)
export TESTRAIL_DOMAIN=<TESTRAIL_URL> #https://以降から.comまでのドメイン名
export TESTRAIL_USERNAME=<TESTRAIL_USERNAME> # #TestRailに登録しているユーザーのメールアドレス
export TESTRAIL_APIKEY=<TESTRAIL_API_KEY> #TestRailで生成したAPI key
export TESTRAIL_PROJECTID=<PROJECT_ID_WITHOUT_PREFIX_P> #プロジェクトのID
オプションなど具体的に何を設定したら良いのかはプラグインのドキュメントを確認してください。
変更を加えた後は以下のコマンドを実行して反映させましょう。
source ~/.zshrc
↑↑
こちらを実行するのを忘れてしまうとうまく結果を連携することができません。
POSTMANのテストスクリプトにTestRailのテストケースIDを紐付ける
-
テストスクリプトの先頭に定数を宣言して、実施したいTestRailのテストケースIDを格納します。
const tc_id = "Cxxxxxxx";
-
テストケースのタイトルにstep1で定義したIDの変数を追加します。
`${tc_id} test case title`
NEWMANでテストを実行する
ターミナルで以下のコマンド実行をします。
newman run "テスト対象のファイル or URL" -r testrail --reporter-testrail-configFile testrail-config.json --reporter-testrail
テスト実行後に連携に成功した場合、ターミナルにテスト結果のURLが表示されます。
テストランのURLにアクセスしてテスト結果を確認します。
Playwrightで実行したテスト結果をTestRailに連携する
事前準備(インストール)
-
Playwrightのインストール
- ターミナルで以下を実行しPlaywrightをインストールします。
-
npm init playwright@latest
-
インストール後は以下のディレクトリ構成になります。
│── node_modules │── tests │ └── example.spec.ts │── tests-examples │ └── demo-todo-app.spec.ts │── .gitignore │── package-lock.json │── package.json └── playwright.config.ts # Playwrightの設定を追加するファイル
-
- ターミナルで以下を実行しPlaywrightをインストールします。
-
pipのインストール(Pythonの環境構築が必要です。)
python get-pip.py
- TestRail CLIのインストール
- ターミナルで以下を実行しtrcliをインストールします。
pip install trcli
- 上記のコマンドで以下のエラーが発生する可能性があります。
-
仮想環境を作成する
$ python -m venv .python/venv
- 仮想環境のアクティベートを行う
$ source .python/venv/bin/activate
- 再度TestRail CLIのインストールを試してみてください。
- 仮想環境を終了する
$ deactivate
PlaywrightでJUnit形式のテストレポートを準備する
- playwright.config.tsにて、レポートの形式を設定します。
-
playwright.config.ts
reporter: [ ['junit', { outputFile: 'results/junit-results.xml' }], ],
-
- Playwrightでテストを実行します。
npx playwright test
- テスト実行後に、playwright.config.tsのreporterで設定したディレクトリにテストレポートが出力されます。
TestRail のカスタムフィールドの設定
- 自動テスト ケースのコードと実際の TestRail のケースをマッピングするための カスタム フィールド を作成します
- 。それには、[管理] > [カスタマイズ] に移動して [フィールドの追加] をクリックします。
- フィールド作成画面に移動したら、下記の 2 つの要件に従ってフィールドを作成します。
- システム名は automation_id
- タイプは String
TestRailとPlaywrightの設定
TestRailのテストケース名とPlaywrightのテストケース名は一致させた方が良さそうです。
TestRail CLIを使用してテストレポートをTestRailに連携させる
- ターミナルで以下のコマンドを実行します。
trcli -y \
-h "ドメインURL"/\ //https://xxx.com
--project "プロジェクト名"\
--username "登録したメールアドレス"\
--password "API_KEY"\
parse_junit\
--title "テストラン名"\
--suite-name "テストスイート名" \
-f "./results/junit-results.xml"\ //対象のテストレポートのパス
-
テストレポートファイルについて、ブラウザごとに同じテストケースを実施している場合、テストスイートのnameが重複するため、テストスイートごとにname属性を設定します。
-
TestRailの連携が成功した場合、ターミナルにレポートのURLが表示されます。
終わりに
TestRailを使用することで、テストケースの一元管理が容易になり、APIテストやE2Eテストの結果を効率的に管理できます。POSTMANやPlaywrightとの連携により、手動での結果登録の手間を省くことができ、テストプロセス全体の効率が向上します。今後もさらなる自動化と統合を目指して、より良いテスト環境を構築していきましょう!!