Site logo
著者
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
公開日
公開日

TypeScriptを使用したPlaywrightプロジェクトのセットアップと展開の完全ガイド A-Z

PlaywrightとTypeScriptの紹介

Playwrightは、Microsoftが開発した強力なエンドツーエンドテストフレームワークで、Chromium、Firefox、WebKitなどの異なるブラウザで統一されたAPIを使用した自動テストを可能にします。TypeScriptと組み合わせることで、Playwrightは型チェック機能を備えた堅牢なテストツールとなり、コードをより安全で保守しやすくします。

この記事では、TypeScriptを使用したPlaywrightプロジェクトのインストールと設定方法を最初から説明します。必要な依存関係のインストール、プロジェクト構造の作成、基本的なテストの作成、初期テストケースの実行など、詳細な手順を説明します。

なぜPlaywrightとTypeScriptを選ぶべきか?

  • クロスブラウザテスト: Playwrightは主要なブラウザ(Chromium、Firefox、WebKit)を統一されたAPIで完全にサポートします。
  • 自動待機: 要素が操作可能になるまで自動的に待機します。
  • 一般的なJavaScript: ほとんどの開発者にとって馴染みのある言語で、学習と実装の時間を短縮します。
  • 型安全性: TypeScriptは開発中にエラーを検出するのに役立ちます。
  • ネットワークインターセプト: ネットワークリクエストをインターセプトして修正する機能。
  • モバイルエミュレーション: デバイスエミュレーションによるモバイルデバイスでのテストをサポート。
  • 並列実行: テストを同時に実行して時間を最適化する機能。

システム要件

開始する前に、コンピュータが以下の要件を満たしていることを確認してください:

  • Node.js(バージョン18以上)
  • npm、pnpm、またはyarn(パッケージマネージャー)
  • Visual Studio Codeなどのコードエディタ(推奨)

インストールされているNode.jsのバージョンを確認するには:

node -v
# v24.1.0

インストールされているnpm/pnpmのバージョンを確認するには:

npm -v
# 11.4.1
pnpm -v

TypeScriptを使用したPlaywrightプロジェクトのインストール

ステップ1:新規プロジェクトの作成

まず、プロジェクト用の新しいディレクトリを作成し、Node.jsプロジェクトを初期化します:

mkdir playwright-automation-ts
cd playwright-automation-ts

ステップ2:PlaywrightとTypeScriptのインストール

Playwrightと必要なTypeScriptの依存関係をインストールします:

npm init playwright@latest

インストール中に、いくつかの設定に関する質問が表示されます。適切なオプションを選択してください:

  • Do you want to use TypeScript or JavaScript? » TypeScript
  • Where to put your end-to-end tests? » tests
  • Add a GitHub Actions workflow? » Yes/No(必要に応じて)
  • Install Playwright browsers (can be done manually via 'npx playwright install')? » Yes

インストールプロセスにより、必要な設定ファイルを含む初期プロジェクト構造が作成されます。

ステップ3:プロジェクト構造の確認

インストール完了後、プロジェクト構造は以下のようになります:

playwright-automation-ts/
├── node_modules/
├── package.json
├── package-lock.json
├── playwright.config.ts
├── tests/
│   └── example.spec.ts
├── tests-examples/
│   └── demo-todo-app.spec.ts
└── tsconfig.json
  • ./tests/example.spec.ts: これはサンプルのエンドツーエンドテストファイルです。
  • ./tests-examples/demo-todo-app.spec.ts - これはTodoアプリケーション用のサンプルエンドツーエンドテストファイルです。

ステップ4:設定ファイルの理解

playwright.config.tsファイル

このファイルには、ブラウザ設定、タイムアウト、その他のオプションなど、Playwrightの主要な設定が含まれています:

import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : undefined,
  reporter: 'html',
  use: {
    trace: 'on-first-retry',
  },
  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'] },
    },
    {
      name: 'firefox',
      use: { ...devices['Desktop Firefox'] },
    },
    {
      name: 'webkit',
      use: { ...devices['Desktop Safari'] },
    },
  ],
});

playwright.config.ts設定ファイルは、プロジェクトのルートディレクトリに自動的に作成されます。以下のような設定をカスタマイズできます:

  • タイムアウト: アクションとアサーションのデフォルト待機時間
  • projects: テスト実行用のデフォルトブラウザの選択(Chromium、Firefox、WebKit)
  • testDir: テストケースを含むディレクトリ
  • reporter: レポート形式の選択(HTML、JSONなど)
  • use: ビューポート、ユーザーエージェントなど、すべてのテストに共通する設定
  • など

PlaywrightとTypeScriptで最初のテストを作成

それでは、Playwright TypeScriptを使用して最初のテストケースを作成しましょう。この例ではNjndex Dummy Demoを使用し、テストはローカルマシンで実行されます。

Playwrightの動作を理解するために、Njndex Dummy Demoのホームページをチェックする簡単なテストを作成します。

新しいテストファイルの作成

testsディレクトリにhomepage.spec.tsという名前の新しいファイルを作成します:

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

test('has title', async ({ page }) => {
  // 1. ページに移動
  await page.goto('https://dummy-demo-njndex.web.app');

  // 2. タイトルが特定の部分文字列を含むことを期待
  await expect(page).toHaveTitle(/Demo Dummy/);

  // 3. タイトルが特定の文字列であることを期待
  await expect(page).toHaveTitle("Home | IT Demo Dummy");
});


test('Can navigate to the Todo list page', async ({ page }) => {
  // 1. ページに移動
  await page.goto('https://dummy-demo-njndex.web.app/');

  // 2. "Todo List Demo"リンクをクリック
  await page.getByTestId('feature-link-todo_list').click();

  // 3. URLの変更を確認
  await expect(page).toHaveURL(/todo-list/);

  // 4. ページコンテンツを確認
  await expect(page).toHaveTitle(/Todo List | IT Demo Dummy/);
  await expect(page.getByRole('heading', { name: 'Todo List' })).toBeVisible();
});

テストの実行

テストを実行するには、以下のコマンドを使用します:

npx playwright test

UIモードでテストを実行するには:

npx playwright test --ui

テスト結果を表示するには:

npx playwright show-report

基本的なPlaywrightコマンド

以下は使用できる基本的なPlaywrightコマンドです:

特定のブラウザでテストを実行するには:

npx playwright test --project=chromium

特定のファイルでテストを実行するには:

npx playwright test example

Playwright Codegenでテストを自動生成するには:

npx playwright codegen https://dummy-demo-njndex.web.app

これはPlaywrightの優れた機能で、ブラウザでの操作を記録して自動的にテストコードを生成します。出力言語としてJavaScriptまたはTypeScriptを選択できます。

結論

この記事では、TypeScriptを使用したPlaywrightプロジェクトのインストールと設定について学びました。依存関係のインストール、プロジェクト構造の作成、最初のテストケースの作成など、基本的な手順を説明しました。

次の記事では、以下のような高度なトピックについて説明します:

  • ページオブジェクトモデル(POM)
  • フィクスチャとその使用方法
  • Playwrightの高度な設定
  • Playwrightを使用したAPIテスト
  • スクリーンショットとビデオ録画

役立つリソース