株式会社GENZが運営する技術ブログです。

  1. Playwright
  2. 27 view

初心者がPlaywright MCPでのテストを試した際の手順書

はじめに

社内ワークショップで得た知識と生成AIを活用し、Playwright MCPを用いてテスト実行からCSV出力まで行いました。

※私は開発・自動化ともに未経験のため、本記事の内容は生成AIのサポートを前提に進めています。不十分な点があるかと思いますが、同じような初学者の方の参考になれば幸いです。

※検証には、GENZ社員の方が作成された学習用サイトとテストシナリオを使用させていただきました。

Step1. 環境構築

以下のインストールを済ませておきます。

  • Node.js
  • VSCode
  • VSCodeの拡張機能(以下)
    • Playwright Test for VSCode
    • Claude Code
    • GitHub Copilot Chat

Step2. プロジェクトのセットアップ

  1. フォルダ準備:任意の場所にフォルダを作成し、VSCodeで開きます。
  2. Playwrightの初期化:ターミナルで `npm init playwright@latest` を実行。
    • 表示される質問はすべてEnter(デフォルト)で進めます。
    • 最後に `Happy hacking! 🎭` と出れば成功。
  3. Playwright MCPのインストール:ターミナルで `npm install -g @playwright/mcp` を実行。
    • `changed 3 packages...` などが出れば成功。

Step3. 疎通確認

  1. Agentモードの確認:VS Codeのチャット欄(Copilot Chatなど)のモードを「Agent」にする。
  1. 動作テスト:`npx playwright open example.com` などを実行するようチャットで指示し、ブラウザが起動することを確認。
Agentモードの確認

Step4. セキュリティ設定(.env作成)

機密情報が外部に漏れないよう .env ファイルを作ります。

  1. Step2で準備したプロジェクト直下に`.env`ファイルを作成。
  2. 中身にURLやログイン情報を入力して保存。

📄 .envファイルの記述例
# システム管理サイト用
SYS_URL=https://…
SYS_USER=………
SYS_PASS=………
# 物品管理サイト用
ITEM_URL=https://…
# 物品管理サイト:管理者用
ITEM_ADMIN_USER=………
ITEM_ADMIN_PASS=………
# 物品管理サイト:一般ユーザー用
ITEM_GENERAL_USER=………
ITEM_GENERAL_PASS=………
# 共通設定
TIMEOUT=30000

Step5. Geminiによるシナリオの構造化(POM)

コードが書けないので、生成AI(Gemini)を利用して既存のテストケースをプログラム用の構造に変換します。
機密情報はダミー名称・変数に置き換えて依頼します。添付ファイルの中身も同様です。

💡 依頼のポイント

  • Page Object Model (POM):ページごとに操作を分離する設計を採用。
  • 環境変数:`process.env` を通じて `.env` から情報を読み込む構成を指示。
  • 成果物の定義:
    • `implementation_plan.md`:実装手順とコードの骨組み。
    • `test_scenario.csv`:テスト手順、結果、エビデンス名を管理する台帳。

【実際に投げたプロンプト】
# Playwright 自動テスト生成依頼
## 1. 依頼内容
添付の「シナリオテストケース.xlsx」に基づき、Playwrightでの自動テスト実装に必要な「実装定義書(MD形式)」と、MCPへそのまま投入できる「テスト実行命令書(MD形式)」の2点を作成してください。
## 2. 実装上の制約・変数
– **タイムスタンプ**: 入力値(組織名・物品名)には `AutoTest_Org_[YYYYMMDD]` 形式のロジックを含めること。
– **環境変数**: 機密情報は `process.env` から読み込む構成にすること(`SYS_URL`, `SYS_USER`, `SYS_PASS`, `ITEM_URL`, `ITEM_ADMIN_USER`, `ITEM_ADMIN_PASS`, `ITEM_GENERAL_USER`, `ITEM_GENERAL_PASS` を使用)。
– **認証**:
  – システム管理サイト:`httpCredentials` によるBasic認証を設定。
  – 物品管理サイト:管理者・一般ユーザーそれぞれのログインメソッドを作成。
– **構成**: POM構造を採用し、`pages/common/`, `pages/system/`, `pages/item/` に分離。
– **言語**: TypeScript
### 【出力1:docs/implementation_plan.md】
以下の構成を含む実装定義書を作成してください。
1. **シナリオデータ**: 実行結果入力用のCSVコードブロック。
  – 列構成: [No, フェーズ, テスト概要, 合格基準, アクション詳細(Playwright操作), 実行結果(空欄), スクリーンショット名(空欄)]
2. **Page Object Models**: 各 `.ts` ファイルのパスと、メソッド定義のみのスケルトンコード。
3. **Test Spec**: Page Objectを呼び出し、全フェーズを一気通貫で実行するテストコードの骨組み。
### 【出力2:MCPへの実行指示文】
そのままコピーしてMCPに渡せる形式で、以下の指示を記述してください。
1. `docs/implementation_plan.md` を読み込み、指定されたパスに各ファイルを作成する指示。
2. `docs/test_scenario.csv`(実装定義書内のCSVを切り出したもの)を読み込み、それに従ってテストを実行する指示。
3. テスト実行後、結果をCSVの「実行結果」列に書き込み、エビデンス(PNG)を保存する指示。

Step6. Playwright MCPへの実行指示と結果確認

準備:Step5で出力された `implementation_plan.md` の内容を、プロジェクトフォルダ内に `docs/implementation_plan.md` として保存しておきます。

実行:Step5で出力された実行指示文をチャット欄に貼り付け、以下のフローで処理を進めます。

  1. ファイル作成:指示文に基づき、AIが各 `.ts` ファイルやCSVを自動生成。
  2. テスト実行:AIが `test_scenario.csv` を読み込み、順次ブラウザを操作。
  3. エラー修正:実行中にTypeScriptのエラー(赤字)が出た場合は、その内容をチャットに貼り付けてAIに再修正を依頼。
  4. 結果の反映:テスト完了後、AIが `test_scenario.csv` の「実行結果」列に合否(OK/NG)を書き込み、「スクリーンショット名」列に保存した画像ファイル名を自動で追記。
  5. エビデンス確認:`evidence/` フォルダ内に保存されたPNGファイルと、CSVの内容が一致していることを確認。
<テスト実行結果:更新されたCSV>

テスト実行結果・更新されたCSV

【実際に投げたプロンプト】
## 1. 環境構築の指示
プロジェクト内の `docs/implementation_plan.md` を読み込み、以下の作業を最優先で実行してください。
* 記載されている各ファイルパス(`pages/` および `tests/` 以下)に従い、コードブロック内のTypeScriptコードのみを抽出して新規ファイルを作成・保存してください。
* Markdown内の「1. シナリオデータ」にあるCSVの内容を抽出し、`docs/test_scenario.csv` として保存してください。
## 2. テスト実行と記録の指示
作成したファイル群と、プロジェクト内の `.env` を使用して、以下の手順で自律的にテストを完遂してください。
1. **テスト実行**:
   * `docs/test_scenario.csv` の各ステップに従い、Playwrightを使用してテストを実行してください。
   * 入力値(組織名、物品名)には変数 `timestamp`(本日日付)を付与してください。
2. **エビデンス取得**:
   * 各フェーズの完了時、または検証ポイントで `evidence_No[番号].png` という形式でスクリーンショットを保存してください。
3. **結果の更新**:
   * テスト完了後、`docs/test_scenario.csv` を開き、各行の「実行結果」列に **OK** または **NG** を、「スクリーンショット名」列に **保存したファイル名** を追記して上書き保存してください。
## 3. 最終報告
すべての作業が完了したら、失敗したステップの有無とその原因、および保存したエビデンスの一覧を報告してください。

振り返り

AIに頼り切りの部分は多いですが、仕組みを理解することで活用の幅が広がると感じています。今後は、Playwright独自の仕様やTypeScriptについての学習をさらに進めていきたいです。

<関連記事>
【入門】Playwrightインストール完全ガイド|Windows/Macの導入手順と動作確認まとめ
Playwright Agents入門|AIがテスト設計・自動生成・修正まで行う最新テスト自動化
Playwrightまとめ|入門・活用完全ガイド|基本からAI活用・モバイルテストまで

採用サイトはこちら

Playwrightの最近記事

  1. 初心者がPlaywright MCPでのテストを試した際の手順書

  2. Playwright Codegenで爆速テスト作成体験!もうセレクタ探しに時間は使わない…

  3. 【入門】Playwrightインストール完全ガイド|Windows/Macの導入手順と動作…

  4. ゼロから始めるPlaywright Androidテスト(Mac編)|エミュレータ準備から…

関連記事