ローコードテスト自動化ツール T-DASH

T-DASHとGithubActionsを連携してみよう(CI連携)

はじめに

T-DASH とGithubActionsを連携してテスト自動化をしてみましょう。

ゴール

GithubActionsでT-DASHを使用したテストを実行できる

前提

  • Githubアカウントを所持している
  • T-DASHからエクスポートされた実行したいテストランを含んだsyncフォルダを所持している
    syncフォルダについて
  • テスト実行環境はWindowsで説明する
  • GithubActionsのトリガーは手動実行で説明する
  • T-DASHがインストール済みである

手順

1. Githubのリポジトリを作成する

 1. Repositoriesタブ内にあるNewボタンをクリックする

 2. 任意のRepository情報を入力してCreate repositoryボタンをクリックする

 3. 以下のページに沿ってブランチを作成する

2. syncフォルダを共有する

 1. 作成したリポジトリのmainブランチのルートフォルダへsyncフォルダをpushする

3. T-DASHコマンドラインツールをGithub管理する

 1. 「tdash.exe」ファイルを7zipを使用して、100MBに分割圧縮します。
   ※tdash.exeは、C:\Users\user.name\AppData\Local\Programs\T-DASHフォルダにあります。

 2. 「tdashフォルダ」に分割圧縮されたファイルを格納します。

 3. 「tdash」フォルダを作成したリポジトリのmainブランチのルートフォルダへpushする

4. GithubActionsのワークフローを作成する

 1. Githubの「Actions」タブをクリックし、「Simple workflow」の「Configure」ボタンをクリックする

 2. ワークフローのymlファイルの名称に任意の名前を設定する(ここではtdash-workflow-sample.ymlとしておきます)

 3. ymlファイル内に以下をコピー&ペーストする

name: T-DASH CI Sample

# ワークフローのトリガーは以下を参照して変更してください
# このチュートリアルでは手動実行するトリガーとしています
# https://docs.github.com/ja/actions/using-workflows/events-that-trigger-workflows
on:
  workflow_dispatch:

env:
  TDASH_ROOT_PATH: "$HOME/AppData/Local/Programs/T-DASH"
  TDASH_CMD_EXE_PATH: "$HOME/AppData/Local/Programs/T-DASH/tdash.exe"
  TDASH_ZIP_PATH: "/tdash/tdash.zip.001"
  TDASH_EXE_NAME: "tdash.exe"
  ZIP_INSTALLER_URL: "https://www.7-zip.org/a/7z2300-x64.exe"
  ZIP_INSTALL_EXE_PATH: "7zip/7z2300-x64.exe"
  ZIP_EXE_PATH: "C:/Program Files/7-Zip/7z.exe"
  REPORT_PATH: "C:/Users/runneradmin/AppData/Local/Programs/T-DASH/projects/commandlinetestrun/reports"
  PYTHONUTF8: "1"

jobs:
  build:
    runs-on: windows-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v3.5.2

    - name: Setup Chrome (Test browser)
      uses: browser-actions/setup-chrome@v1.2.0
      with:
        chrome-version: latest

    - name: 7-zip install
      run: |
        New-Item -Path "7zip" -ItemType Directory
        Invoke-WebRequest -Uri "${{ env.ZIP_INSTALLER_URL }}" -OutFile "${{ env.ZIP_INSTALL_EXE_PATH }}"
        Start-Process -FilePath "${{ env.ZIP_INSTALL_EXE_PATH }}" -ArgumentList "/S" -NoNewWindow -Wait

    - name: T-DASH cmd decompress
      run: |
        cmd /c "${{ env.ZIP_EXE_PATH }}" x -o${{ github.workspace }} "${{ github.workspace }}${{ env.TDASH_ZIP_PATH }}"

    - name: make root dir
      run: |
        # T-DASHルートディレクトリがない場合は作成
        if (-not (Test-Path -Path ${{ env.TDASH_ROOT_PATH }})) {
          New-Item -Path ${{ env.TDASH_ROOT_PATH }} -ItemType Directory
        }

    - name: T-DASH cmd copy
      run: |
        $sourcePath = '${{ github.workspace }}/${{ env.TDASH_EXE_NAME }}'
        # 実行ファイルが存在する場合は削除
        if (Test-Path ${{ env.TDASH_CMD_EXE_PATH }}) {
            Remove-Item ${{ env.TDASH_CMD_EXE_PATH }} -Force
        }
        Move-Item $sourcePath ${{ env.TDASH_CMD_EXE_PATH }}

    - name: Run initial setup
      run: |
        # T-DASHの実行環境はexeを実行したフォルダに作成されるためカレントディレクトリを移動する
        cd ${{ env.TDASH_ROOT_PATH }}
        # T-DASHの実行環境構築
        Start-Process -FilePath ${{ env.TDASH_CMD_EXE_PATH }} -ArgumentList "setup","--silent" -NoNewWindow -Wait

    - name: Run the application
      run: |
        # リポジトリ管理しているテストを実行するsyncフォルダパス
        $sourcePath = '${{ github.workspace }}\sync'
        # コマンドライン実行するテスト実行環境のsyncフォルダパス
        $destinationPath = '${{ env.TDASH_ROOT_PATH }}\projects\commandlinetestrun\sync'
        # 共有フォルダが既に存在する場合は一度フォルダごと削除する
        if (Test-Path $destinationPath) {
            Remove-Item $destinationPath -Recurse -Force
        }
        # リポジトリのsyncをコマンドライン実行テスト環境のsyncへコピー
        Copy-Item $sourcePath "${{ env.TDASH_ROOT_PATH }}\projects\commandlinetestrun\" -Recurse -Force
        cd ${{ env.TDASH_ROOT_PATH }}
        # テスト実行
        Start-Process -FilePath ${{ env.TDASH_CMD_EXE_PATH }} -ArgumentList "testrun","ホテルテストラン", "--silent", "--background" -NoNewWindow -Wait

    - name: Save results to artifacts
      uses: actions/upload-artifact@v3.1.2
      with:
        name: results
        path: ${{ env.REPORT_PATH }}

 4. リポジトリの状態によってはPathが違うこともあるため「env」内の環境変数を修正する

※yml内の処理を以下に説明します

name説明
CheckoutGithubのリポジトリを取得しています。
Setup Chrome (Test browser)MicrosoftEdgeはデフォルトでWindowsに入っていますが、Chrome,FireFoxはインストールされていないため、GithubActionsのMarketplaceから各種ブラウザのインストールをしています。
当チュートリアル内ではChromeのみインストールしています。
7-zip install7-zipをインストールしています。
T-DASHコマンドラインツールは300MBほどあり、Githubのファイルサイズ上限が100MBのため、「tdash」に7-zipで分割圧縮したファイルが入っています。
この分割圧縮されたファイルを結合解凍するために利用します。
T-DASH cmd decompress7-zipを使用して「tdash.exe」を解凍しています。
make root dirT-DASHの実行フォルダを作成しています。
T-DASH cmd copyT-DASHの実行フォルダへT-DASHコマンドラインツールをコピーしています。
Run initial setupT-DASHコマンドラインツールのテスト実行環境を構築しています。
Run the applicationT-DASHコマンドラインツールでテスト実行しています。
Save results to artifactsT-DASHコマンドラインツールのテスト実行結果(reportフォルダ)をGithubActionsのartifactへ保存しています。

 5. 変更を保存する

5. GithubActionsを実行する

 1. 「Actions」タブの「T-DASH CI Sample」をクリックする

 2. 「Run workflow」をクリックし、「Run workflow」ボタンからGithubActionsを実行する

 3. 以下のようにGithubActionsが起動するため、赤枠部分をクリックする(起動しない場合はF5などでブラウザをリフレッシュしてください)

 4. 「build」をクリックする

 5. コンソール画面でGithubActionsの処理の進捗を確認する

6. T-DASHテスト実行結果を確認する

 1. GithubActionsの処理が終了すると以下の様にSummaryが作成される

 2. 「results」をクリックしてテスト実行結果をダウンロードする

 3. results.zipを解凍する

 4. 解凍したファイル内には以下の様にT-DASHのテスト実行を行ったと同様のレポートファイルが作成される

※Jenkinsなどでテスト結果を利用する場合は「xunit_output-*.xml」をご利用ください。

コメントする

CAPTCHA