0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerでPlaywrightを動かしてみた

Last updated at Posted at 2025-04-11

前段

クライアント管理ソフトウェアによる影響でローカルでPlaywrightが実行できなかったのでDockerで実行できる環境を構築してみた。

Playwrightとは

Webブラウザのテスト自動化を実行するためのツール

  • 対応ブラウザ:Chromium、WebKit、Firefox、Edgeなど
  • プラットフォーム:Windows、Linux、macOS
  • 言語:TypeScript、JavaScript、Python、.Net、Java

自動でやってくれること

  • ページを開く
  • ボタンをクリックする
  • フォームに文字を入力する
  • 表示されてるか確認する(テスト)
  • スクリーンショットや動画を撮る
  • 複数のブラウザで自動テスト(Chrome / Firefox / Safari)

Dockerで動かす

  • Docker上にPlaywright(とNode.js)をインストールし、そこでブラウザ付きのテストや操作を自動実行できるようにする
  • テストの実行結果をホストPCに出力する

テストコードを用意する

プロジェクトフォルダを作って、tests/example.spec.ts などにPlaywrightのテストを書く

import { test, expect } from '@playwright/test';

test('sample test', async ({ page }) => {
  await page.goto('https://example.com');
  await expect(page).toHaveTitle(/Example Domain/);
});

実行結果を出力するディレクトリを用意

mkdir -p results

Playwright.config.tsで実行結果の出力先を設定

コンテナ内の playwright-report フォルダにHTMLレポートなどが出力されるようになる

reporter: [['html', { outputFolder: 'playwright-report', open: 'never' }]],

Dockerfileを作成する

# Dockerfile
FROM mcr.microsoft.com/playwright:v1.43.1-jammy

# 作業ディレクトリを作成
WORKDIR /app

# package.jsonとpackage-lock.jsonをコピー
COPY package*.json ./

# 依存パッケージをインストール
RUN npm install

# これを忘れずに!
RUN npx playwright install

# アプリのソースコードをコピー
COPY . .

# テスト実行(任意)
CMD ["npx", "playwright", "test"]

Dockerをビルドする

docker build -t your-playwright-image .

Dockerを実行する

Docker実行時に実行結果をホスト側にマウントする

  • -v オプションでホストの ./results をコンテナの /app/playwright-report に接続
  • コンテナ内のレポート出力がそのままホストPCに反映される
docker run --rm \
  -v $(pwd)/results:/app/playwright-report \
  your-playwright-image

まとめ

ローカルに比べて手間ではあるが、DockerでもPlaywrightを動かすことができた。
codegenを使ったテストコードの自動生成ができないため、こちらもDockerを使って実施できるか検証してみる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?