← mabl-test トップ

024 — CI/CDパイプラインと非同期バッチ処理テスト

バッチ処理の完了を待ってテストB を実行する CI/CD パターンのデモ

このデモについて

CI/CDパイプラインから mabl テストを実行する際、ボタンクリックで非同期のバッチ処理が開始されるケースがあります。バッチ処理の完了を待ってから後続のテストを実行するパターンを示します。

ビジネスシナリオ: 管理画面で「月次在庫レポート生成」ボタンをクリックすると、バックグラウンドでデータベースの集計処理が走ります。処理完了後、レポートページで集計値を検証します。

全体フロー

🚀
CI/CD起動
パイプライン
トリガー
🧪
テストA実行
ボタンクリック
Job ID取得
完了待ち
ステータスAPI
ポーリング
テストB実行
DB値の検証
結果確認
デモの仕組み: このサイトは静的HTMLのため、バッチ処理の状態はURLのクエリパラメータ(?status=processing, ?status=done)で管理します。実際のアプリでは REST API エンドポイントがこの役割を担います。

デモページ一覧

Step 1 — テストA

バッチ処理トリガー

「月次在庫レポート生成」ボタンをクリックしてバッチ処理を開始。Job IDが発行される。

mabl テストA
Step 2 — ポーリング(処理中)

バッチ処理ステータス

CI/CDスクリプトが定期的に確認するステータスページ。処理中の表示例。

スクリプトポーリング
Step 2 — ポーリング(完了)

バッチ処理ステータス

バッチ処理が完了した状態の表示例。CI/CDスクリプトはこの状態を検知して次に進む。

完了検知
Step 3 — テストB

バッチ処理結果の検証

テストBがアクセスするレポートページ。集計件数・金額・チェックサムをmabl が検証する。

mabl テストB
参考 — GitHub Actions

CI/CD パイプラインYAML

テストA実行 → ポーリング → テストB実行を行う GitHub Actions ワークフローのサンプル。

GitHub Actions YAML