パイプラインでテストを実行する
コマンドライン実行ツール、CI ツールが読む結果、すぐ使えるサンプル。
1 つのテストをどのパイプラインでも
コマンドラインランナーの gtr-cli は、「テストを実行」ボタンとまったく同じようにテストを実行します: 同じアサーション、同じレポート、同じ履歴です。そこにパイプラインに必要なものが加わります: 終了コード、CI ツールが理解する結果ファイル、そして失敗のすべてのエビデンスが 1 つのフォルダーにまとまります。
パイプライン
そしてコマンドを実行できるあらゆるツール
jobs: gui-tests: runs-on: [self-hosted, windows] steps: - run: gtr-cli run tests --format github --junit results.xml
ビルドエージェントの画面で 12 件のテストを実行中...
PASSED 12 件中 12 件のテスト · 終了コード 0
- 終了コードすべてのテストが合格なら 0、1 件でも不合格なら 1: ビルドが緑か赤になります。
- JUnit、JSON、Markdownパイプラインがテスト結果として表示する結果。すべてのステップに名前付き。
- すべての失敗のエビデンス期待画像と実際の画像、画面、レポート、動画を 1 つのフォルダーに。
ビルドマシンを準備する
GUI テストは実際の画面上で再生されるので、実行するマシンには画面が必要です。
| 必要なもの | 理由 |
|---|---|
| GUI Test Studio をインストールした Windows | インストーラーが gtr-cli を PATH に追加します。 |
| サインイン済みでロックされていないデスクトップセッション | テストは実際の画面上でクリックと入力を行います。ビルドエージェントは、バックグラウンドサービスではなく、そのセッション内の通常のプログラムとして実行してください。 |
| テストの画面解像度と拡大縮小 | 要素は記録されたときのサイズで比較されます。 |
| テスト対象のアプリ | インストール済みか、テスト自身が「アプリを実行」ステップで起動します。 |
| プランのシート | エージェントは、アカウントページのマシンキーで 1 回だけサインインします。 |
アカウントページのマシンキーでキーを作成し、エージェント上で、パイプラインが使う Windows アカウントとして、これを 1 回実行します:
gtr-cli login --key GTS-XXXX-XXXX-XXXX-XXXXgtr-cli whoamiは、エージェントがサインインしているか、いつまでかを伝えます。サインインがないと実行は始まりません: COULD NOT RUN で始まる行を出力し、終了コード 3 で終わります。
最初のコマンド
ビルドマシンのターミナルで、フォルダー内のすべてのテストを実行します:
gtr-cli run tests --countdown 0 --junit results\junit.xml --artifacts results\artifacts--countdown 0はすぐに開始し (画面の前には誰もいません)、--junitは CI ツールが読む結果ファイルを書き、--artifactsは動画、レポート、失敗の画像を 1 つのフォルダーに集めます。
gtr-cli check testsパイプラインが受け取るもの
| 終了コード | 意味 |
|---|---|
| 0 | すべてのテストが合格しました。ビルドは緑になります。 |
| 1 | 少なくとも 1 件のテストが不合格でした。 |
| 2 | コマンドが間違っていました: 不明なオプション、存在しないファイルなど。 |
| 3 | たとえば画面が記録と異なるなどの理由で、テストを実行できませんでした。 |
| 4 | 実行が中止されました。 |
| ファイル | 用途 |
|---|---|
| JUnit (--junit) | GitLab、Jenkins、Azure DevOps、TeamCity、GitHub のテスト結果タブ |
| Markdown の要約 (--summary) | マージリクエストのコメントやビルドの要約ページ |
| JSON (--json) | 自前のダッシュボードやスクリプト |
| アーティファクトフォルダー (--artifacts) | すべてのテストの動画、信頼度レポート、失敗の画像 |
| バグレポート (--bug-report pdf) | 不合格のテストごとに記入済みのバグレポート |
実行は各テストの結果フォルダーにも保存されるので、GUI Test Runner-Recorder の履歴には、パイプラインの実行が自分の実行と並んで表示されます。
すぐに使える例
jobs:
gui-tests:
runs-on: [self-hosted, windows]
steps:
- uses: actions/checkout@v4
- run: gtr-cli run tests --countdown 0 --format github --junit results\junit.xml --summary results\summary.md --artifacts results\artifacts
- uses: actions/upload-artifact@v4
if: always()
with:
name: gui-test-results
path: results入力せずにコマンドを組み立てる
どちらのアプリでも、コマンドラインと CI/CD (GUI Test Studio の「ファイル」メニュー、GUI Test Runner-Recorder の「テスト」メニュー) がコマンドを組み立ててくれます: 欲しいオプションにチェックを入れて結果をコピーするか、実際のパスが入った CI ツール向けのスニペットをコピーします。その「リファレンス」タブにすべてのオプションの説明があります。
よく使うオプション
| オプション | 動作 |
|---|---|
| --countdown 0 | すぐに開始します。ターミナルでは、既定のカウントダウンがマウスから手を離す時間をくれます。 |
| --retries 1 | 不合格と判定する前に、不合格のテストをもう 1 回実行します。 |
| --fail-fast | 最初の不合格のテストの後で停止します。 |
| --timeout 600 | 10 分経ってもまだ実行中のテストを中止します。 |
| --baseline-profile "Dark mode" | ベースラインプロファイルの 1 つに対して実行します。 |
| --start-at 12.5 | この時点 (秒) からテストを開始します。 |
| --branch all | 複数のブラウザーとデバイス向けに作った Web テストで、記録したテストを含むすべてを実行します。代わりに 1 つまたは複数を名前で指定すると、それらだけを実行します。 |
| --headless on | テストが許す所では、ブラウザーウィンドウなしで Web テストを実行します。 |
| --parallel off | テストのブラウザーとデバイスを、同時にではなく順番に実行します。 |
| --screen all | モニターが複数あるビルドマシンで、すべてのモニター、メインのモニター、番号で指定したモニター、ターミナルのディスプレイ、またはテストが記録された場所で実行します。既定では、テストのプロジェクト設定が指定するディスプレイ、指定がなければターミナルのディスプレイです。 |
| --run-banner off | 実行中に画面上部に出る細い「テスト実行中」バナーを隠します。 |
| --ai-verification on | 不合格のビジュアルアサーションとテキストアサーションの最終判定を AI に任せます。テストの判定と終了コードはそれに従い、何が変わったかがコンソールと結果ファイルに書かれます。 |
| --ai-provider builtin | ビルドマシン自体のモデルを使います: インストールするものはなく、モデルがなければ 1 回だけダウンロードされます。 |
| --ai-minor-differences fail | AI が軽微な違いしか見つけなかったアサーションを不合格にします。既定では合格です。 |
| --ai-wait 600 | 1 件のテストが AI の判定を待つ最長時間 (秒) です。既定ではツールが自分で決めます。 |
gtr-cli help失敗を Jira に報告する
不合格のテストは自動で Jira の課題になります: 再現手順、変化した所を囲んだ期待画像と実際の画像、PDF のバグレポート、そしてエビデンス付きです。同じ欠陥が別のビルド、ブラウザー、デバイスで再び見つかると、2 件目を作る代わりに、開いている課題にコメントが追加されます。
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression| オプション | 動作 |
|---|---|
| --jira on-failure | 不合格のテストごとに Jira の課題を作成します。実行できなかったテストが課題になることはありません。 |
| --jira-project SCRUM | 課題を登録するプロジェクトを、そのキーで指定します。 |
| --jira-issue-type Bug | 課題タイプです。プロジェクトにその名前のタイプがないときは、最も近いものが使われます。 |
| --jira-assignee "James" | 課題の担当者です: プロジェクトのメンバーのメールアドレスまたは名前。 |
| --jira-labels a,b | 独自のラベルを、コンマ区切りで指定します。 |
| --jira-repeat new | 常に新しい課題を作り、開いている課題へのコメントにはしません。 |
接続情報は環境変数から取るので、トークンがコマンドラインやビルドログに現れることはありません: JIRA_BASE_URL (Jira サイト)、JIRA_USER_EMAIL、JIRA_API_TOKEN です。CI ツールでは、トークンをシークレットまたはパスワードパラメーターとして保管してください。GUI Test Runner-Recorder が Jira に接続されているコンピューターでは、代わりにその保存された接続が使われます。
実際の課題と実際のビルドによる流れの全体: Jira を信頼度レポートにつなぐ。
ビルドマシン上の Web アプリ
Web アプリで記録したテストは、自分でブラウザーを全画面のキオスクモードで開き、最後に閉じます。ビルドマシンでは、記録時の画面サイズと拡大縮小、サインイン済みでロックされていないデスクトップ、そして自身のタイムアウトで終わる実行が必要です。Web アプリを開くに、そうでないときに何が起こり、どうすればよいかが書かれています。
同じ注意事項はツール自体にもあります:
gtr-cli help web-appsパイプラインですべてのブラウザーとデバイスを
複数のブラウザーとデバイス向けに作った Web テストは、--branch allですべてを実行し、それぞれが JUnit ファイルに自分の項目と自分の履歴を持ちます。スマートフォン、タブレット、その他のウィンドウなしのブランチは同時に実行されるので、専用の画面は必要ありません。gtr-cli infoがそれぞれの名前を一覧表示し、gtr-cli generateがまだないものを作ります。1 回の記録からすべてのブラウザーとデバイスへを参照してください。
gtr-cli generate tests --branch missing
gtr-cli run tests --branch all --countdown 0 --junit results\junit.xml記録なしでテストを共有する
テストファイルには記録が含まれており、編集には必要ですが実行には必要ありません。GUI Test Studio のファイル、軽量な実行専用テスト (.GTR) としてエクスポートが、記録なしの同じテストを書き出します: ビルドマシンや、テストを実行するだけの同僚向けの、ずっと小さなファイルです。gtr-cli と GUI Test Runner-Recorder は、.GTR ファイルを他のテストと同じように実行します。
| テスト (.GTS) | 実行専用テスト (.GTR) | |
|---|---|---|
| 含まれるもの | ステップ、アサーション、ビジュアルリファレンス: 記録、画像、デザイン | ステップとアサーションのみ |
| 用途 | テストの作成と編集 | テストの実行 |
| サイズ | 大きい: 記録とともに大きくなります | ずっと小さい |
| 開けるアプリ | GUI Test Studio と GUI Test Runner-Recorder | GUI Test Runner-Recorder と gtr-cli |
実行専用テストを使う場面
テストを実行するだけの場所ならどこでも使えます: ビルドマシン、テスターのコンピューター、持ち運ぶ必要があったりコードと一緒に保管したりするテスト一式など。実行専用テストの実行は、元のテストと同じ結果と同じレポートを出します。
テスト自体は残しておく
実行専用テストは編集できません: GUI Test Studio では開けません。.GTS を原本として残し、そこで編集し、変更後にもう一度エクスポートしてください。GUI Test Runner-Recorder も、テストメニューまたはテスト画面のエクスポートボタンからエクスポートできます。
複数のブラウザーとデバイスを持つ Web テスト
エクスポート時に何を含めるかを尋ねられます。すべてのブラウザーとデバイスは、生成済みのすべてのブランチを 1 つのファイルに入れ、--branch allですぐ使えるようにします。記録のみ、または表示中のブランチのみを選ぶと、それだけの実行専用テストになります。実行専用テストは実行しかできません: 新しいブラウザーとデバイスは .GTS から作られます。
テストをコードと一緒に保管する
テストは普通のファイルです: テスト対象のコードの隣のリポジトリに保管すれば、どのブランチにも合ったテストが付いてきます。
まだ解決しませんか?何をしようとしていたかをお知らせください。1 営業日以内に回答します。Ask our team