【自動化テスト入門⑨】GitHub ActionsでKatalon Studioを自動実行してみる|PushをトリガーにCIを構築

Programming

前回の記事では、【自動化テスト入門⑧】Katalon Studioでよく使うWebUIキーワードまとめ|実務で役立つコード集を紹介しました。

今回は、GitHub Actionsを利用して、GitHubへコードをPushしたタイミングでKatalon Studioのテストを自動実行する環境を構築してみます。

CI(Continuous Integration:継続的インテグレーション)を導入することで、コードを更新するたびに自動でテストを実行できるようになります。

今回は以前作成したチケット予約練習サイトを対象 (チケット販売システム記事) に、自動テストを実行する設定を行いました。


使用した環境

  • GitHub
  • GitHub Actions
  • Katalon Studio
  • チケット予約練習サイト(テスト対象)

今回は、チケット予約練習サイト用に作成したKatalonプロジェクトを利用して、自動実行できるか試してみます。


GitHub Actionsとは?

GitHub Actionsは、GitHubに標準で用意されているCI/CDサービスです。

例えば、

  • Push時にテストを実行する
  • Pull Request作成時にビルドする
  • デプロイを自動化する

といった処理を自動で実行できます。

今回は、「PushされたらKatalon Studioのテストを実行する」というWorkflowを作成します。


Workflowを作成する

GitHub Actionsでは、リポジトリ内のフォルダにYAMLファイルを配置することでWorkflowを作成できます。

  • Add File → Create new file
  • ファイル名を作成し、コード入力(.yml)

Workflowの定義

Workflowは、「いつ(Trigger)・どこで(Runner)・何をするか(Job・Step)」を定義する設定ファイルです。

基本的な構成は以下のようになります。

項目説明
nameWorkflow名
on実行するタイミング(Trigger)
jobs実行する処理
runs-on実行するOS・環境
steps実際に実行する処理

Ticketサイト側のWorkflow

今回は、ticket-practiceリポジトリにPushがあったタイミングで、自動的にKatalonプロジェクトへテスト実行のリクエストを送るようにしました。

例:

name: Trigger Katalon Tests

on:
  push: # mainブランチへPushされた時にWorkflowを開始
    branches : [main] 

jobs:
  trriger: 
    runs-on: ubuntu-latest
    steps: # 別リポジトリへイベント(trigger-tests)を送信
      - name: Dispatch Event to Katalon Repo
        uses: peter-evans/repository-dispatch@v3
        with:
          token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
          # テストを実行するKatalonプロジェクトを指定
          repository: hyoni91/ticket-booking-automation
          event-type: trigger-tests

つまり、

ticket-practice
↓Push
GitHub Actions起動
↓repository_dispatch
ticket-booking-automationへ「テスト開始」のイベント送信

という流れになります。


Katalon側のWorkflow

ticket-booking-automationリポジトリでは、先ほどrepository_dispatchで送信されたtrigger-testsイベントを受け取り、Katalon Studioのテストを実行します。

例:

name: Ticket Booking Automation CI (On Demand)

# トリガー:Ticketサイトからの「trigger-tests」という合図が来たら実行する
on:
  workflow_dispatch: # GitHubの画面から手動で実行できるようにする
  repository_dispatch:
    types: [trigger-tests]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      # 1.Katalonのテストコードをローカル(仮想環境)に持ってくる
      - name: Checkout Code
        uses: actions/checkout@v4

      # 2. Katalon Studioの実行環境を立ち上げてテストを実行
      - name: Run Katalon Studio Tests
        uses: katalon-studio/katalon-studio-github-action@v4.0
        with:
          version: '9.6.0' 
          projectPath: '${{ github.workspace }}'
          args: '-noSplash -retry=0 -testSuitePath="Test Suites/Ticket/Ticket_case_suites" -apiKey="${{ secrets.KATALON_API_KEY }}" --config -webui.autoUpdateDrivers=true'

      # 3. テスト完了後、レポート(結果)をGitHub上に保存する
      - name: Upload Test Report
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: katalon-reports
          path: Reports/

#結果:トリガーは成功した。テストはKatalonのライセンスが必要(有料)なのでSkip

Pushして動作確認

Workflowを作成したら、GitHubへPushします。

※今回は動作確認のため、GitHub Actionsの「Run workflow」から手動で実行しました。

するとGitHub Actionsが起動し、自動でWorkflowが実行されます。

今回はWorkflow自体は正常に開始され、Pushをトリガーとして実行されることを確認できました。


実行結果

しかし、実際にKatalon Studioのテストを実行する段階でエラーとなりました。

原因を調べたところ、GitHub Actions上でKatalon Runtime Engine(KRE)を実行するには、ライセンスに関する制限があることが分かりました。

そのため、今回確認できた内容は以下のとおりです。

  • ✅ Workflowの作成
  • ✅ PushによるWorkflowの自動起動
  • ✅ repository_dispatchによる別リポジトリへのイベント送信
  • ✅ Katalon Workflowの起動
  • ❌ Katalon Runtime Engine(KRE)のライセンス制限によりテストは実行できませんでした。

終わりに

今回は最後までテストを実行することはできませんでしたが、

  • GitHub Actionsの基本的な仕組み
  • Workflowの作成方法
  • Pushをトリガーに自動処理を開始する流れ

について理解することができました。

実際に試してみることで、「どこまで無料で利用できるのか」「どこからライセンスが必要になるのか」も確認できたため、良い勉強になりました。

今後は、PlaywrightなどGitHub Actionsとの相性が良いツールも試しながら、自動テスト環境を構築していきたいと思います。

タイトルとURLをコピーしました