GitLab CIからMagicPodのテストを実行するには、magicpod-api-clientを使い、以下の手順でクラウド端末または外部クラウドサービス端末を使ってテストを実行するのが簡単です。
目次
1. シェルスクリプトを作成
MagicPodでテストを実行するシェルスクリプトを作成します。ソースコードのあるプロジェクトの最上位フォルダ下で、run_magicpod_test.shを作成し、その作成されたシェルスクリプトに以下を記述します。
モバイルアプリテストの場合
#!/bin/bash -e
# (-eで、コマンドがエラーになった行で処理を終了させる)
# magicpod-apiクライアントの最新版を現在のディレクトリにダウンロード・解凍
# セキュリティのため、MAGICPOD_API_TOKENはGitLabの環境変数で設定
OS=linux # Windowsマシン上でのビルドの場合はwindows、Macはmacを指定
FILENAME=magicpod-api-client # 任意のファイル名
curl -L "https://app.magicpod.com/api/v1.0/magicpod-clients/api/${OS}/latest/" -H "Authorization: Token ${MAGICPOD_API_TOKEN}" --output ${FILENAME}.zip
unzip -q ${FILENAME}.zip
# MagicPodで使う各種環境変数を設定
export MAGICPOD_ORGANIZATION=<MagicPod組織名>
export MAGICPOD_PROJECT=<MagicPodプロジェクト名>
# 先ほど作成したappファイルをMagicPodにアップロードして、FILE_NOを取得
APP_PATH=<作成したアプリファイルを格納する任意のディレクトリ>
FILE_NO=$(./magicpod-api-client upload-app -a ${APP_PATH})
# 先ほどアップロードしたアプリと、一括実行設定番号を使ってテスト一括実行
TEST_SETTING_NUMBER=<MagicPod一括実行設定番号>
./magicpod-api-client batch-run -S ${TEST_SETTING_NUMBER} -s "{\"app_file_number\":\"${FILE_NO}\"}"
# テストが成功した場合はアップロードしたアプリは削除(任意)
if [ $? = 0 ]; then
./magicpod-api-client delete-app -a ${FILE_NO}
fi
ブラウザテストの場合
#!/bin/bash -e
# (-eで、コマンドがエラーになった行で処理を終了させる)
# magicpod-apiクライアントの最新版を現在のディレクトリにダウンロード・解凍
# セキュリティのため、MAGICPOD_API_TOKENはGitLabの環境変数で設定
OS=linux # Windowsマシン上でのビルドの場合はwindows、Macはmacを指定
FILENAME=magicpod-api-client # 任意のファイル名
curl -L "https://app.magicpod.com/api/v1.0/magicpod-clients/api/${OS}/latest/" -H "Authorization: Token ${MAGICPOD_API_TOKEN}" --output ${FILENAME}.zip
unzip -q ${FILENAME}.zip
# MagicPodで使う各種環境変数を設定
export MAGICPOD_ORGANIZATION=<MagicPod組織名>
export MAGICPOD_PROJECT=<MagicPodプロジェクト名>
# 一括実行設定番号を使ってテスト一括実行
TEST_SETTING_NUMBER=<MagicPod一括実行設定番号>
./magicpod-api-client batch-run -S ${TEST_SETTING_NUMBER}
- セキュリティのため、
MAGICPOD_API_TOKENはGitLabの環境変数で設定します。- まず、https://gitlab.com/<username>/<project>/-/settings/ci_cd に移動します。そして、Variables > Add variableをクリックし、KeyにはMAGICPOD_API_TOKENを、ValueにはMagicPodのAPIトークンからコピーした値を入れて設定します。
-
注意
TEST_SETTING_NUMBER=<MagicPod一括実行設定番号>とは、テストケース番号ではなく、一括実行の設定番号です。 - 一括実行の終了を待たないオプションを使って効率的な処理をしたい場合は-n オプションを使用してください。(詳細はこちら)
2. GitLab CIの実行設定ファイルを作成
ルートディレクトリ下に .gitlab-ci.ymlという名前のファイルを作成し、その作成されたymlファイルに以下を記述します。
stages:
- test
magic_pod_job:
stage: test
# ブランチへのプッシュがあるたびにパイプラインを実行
rules:
- if: $CI_PIPELINE_SOURCE == "push"
script:
- echo "Running batch tests using MagicPod..."
- bash run_magicpod_test.sh
3. 動作確認
以下のファイル全てをソースコードのあるプロジェクトにPushすると、GitLabのBulid > Pipelinesタブにて、MagicPodでテスト実行していることが確認できます。
- 1で作成したMagicPodでテストを実行するシェルスクリプト
- 2で作成したymlファイル