このページでは、MagicPodで実行したテスト結果を、GitHub Actionsを使用してテスト管理ツールXrayに自動登録する方法について説明します。
1. 概要
本ページでは、MagicPodで作成した2つのテストケースを使用し、Xrayにテスト結果を登録する方法を説明します。CIツールとしてGitHub Actionsを使用し、テスト実行から結果登録までを1つのジョブで実行します。
結果登録の流れ
1. MagicPodのWeb APIを使用してテストを実行します。
2. XrayのWeb APIを使用して各テストケースの結果を登録します。
Xrayに登録されたテスト結果
MagicPodのテスト結果
2. 事前準備
このセクションでは、Xray、MagicPod、およびGitHub Actionsで必要な事前準備について説明します。
2-1. Xray
2-1-1. テストケースの作成
Xrayでテストケースを作成します。この例では、2つのテストケース(XSP-86とXSP-87)を作成しています。
Xrayのテストケース画面
2-2. MagicPod
2-2-1. テストケースの作成
MagicPodでテストケースを作成します。この例では、2つのテストケース(#1、#2)を作成しています。スクリプトでXrayに登録できるよう、各MagicPodテストケースにテストキーを追加してください。
MagicPodのプロジェクト画面
2-3. GitHub Actions
2-3-1. シークレットの登録
以下の項目をリポジトリシークレット(リポジトリ環境に作成するシークレット変数)に登録してください。登録方法の詳細はGitHub Actionsのドキュメントを参照してください。
| シークレット名 | 説明 |
| MAGICPOD_API_TOKEN | MagicPod API token |
| XRAY_ID | Xray API ID |
| XRAY_SECRET | Xray API secret key |
GitHubのリポジトリのシークレット追加画面
3. スクリプトの作成
まずはスクリプトをGitHubのリポジトリからダウンロードしてください。
ここからは、GitHub Actionsのジョブ定義ファイル「.github/workflows/magicpod_test.yml」(以下、「ymlファイル」と呼びます)を例にとって手順を説明します。
GitHub Actionsの実行結果画面
3-1. Pythonのインストール
(作業は不要です)このスクリプトの一部はPythonで記述されているため、PythonおよびHTTPライブラリ「requests」をインストールするステップが定義されています。
## .github/workflows/magicpod_test.yml
- name: Set up Python
uses: actions/setup-python@v4
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install requests3-2. magicpod-api-clientのインストール
(作業は不要です)以下のように、ymlファイルでは「download_magicpod_api_client.sh」を実行するように設定されています。magicpod-api-clientの詳細については、ヘルプページをご参照ください。
## .github/workflows/magicpod_test.yml
- name: Install magicpod-api-client
env:
MAGICPOD_API_TOKEN: ${{ secrets.MAGICPOD_API_TOKEN }}
run: bash download_magicpod_api_client.sh3-3. MagicPodでテストを実行
ymlファイルでMAGICPOD_ORGANIZATION_NAME、MAGICPOD_PROJECT_NAME、MAGICPOD_TEST_SETTING_IDを定義します。これらの一括実行設定に基づいてテストが実行されます。この例では、2つのテストケースを3パターンで実行し、合計6件のテストが行われます。
## .github/workflows/magicpod_test.yml
- name: Run MagicPod
env:
MAGICPOD_API_TOKEN: ${{ secrets.MAGICPOD_API_TOKEN }}
MAGICPOD_ORGANIZATION_NAME: <YOUR ORGANIZATION_NAME>
MAGICPOD_PROJECT_NAME: <YOUR PROJECT_NAME>
MAGICPOD_TEST_SETTING_ID: <YOUR SETTING_ID>
run: python run_magicpod.py3-4. MagicPodのテスト結果をXrayに登録
ymlファイル内でXRAY_IDおよびXRAY_SECRETを定義します。
- name: Add test results to Xray
env:
XRAY_URL: <YOUR URL>
XRAY_ID: ${{ secrets.XRAY_ID }}
XRAY_SECRET: ${{ secrets.XRAY_SECRET }}
run: python xray_import_results.py
--magicpod-json magicpod_result4. GitHub Actionsでジョブを実行
今回のスクリプトではGitHubにコードをプッシュする度に自動でMagicPodの実行とTestRailへのテスト結果の追加が行われます。プッシュ以外にもpull_requestやdeploymentなどのイベントをトリガーとすることが出来ます。詳しくはGitHub Actionsドキュメントをご確認ください。