Web E2Eテスト・スクレイピングツールのPlaywrightの解説本第2弾は、Playwrightとユニットテストの棲み分けと、前著で解説したロケーターを用いてより実践的なテストの書き方を解説する実践書です。
前半はテストの考え方を解説してます。ユニットテストとE2Eテストの比較をしたうえで、効率的なテスト方法を解説します。
後半はテストを書くうえでよくある認証周り、メール、位置情報やカメラといったさまざま状況下での書きかと、設定関係の解説をしています。
目次
第1章 テストの考えかた
- テスト手法
- ユニットテスト(単体テスト)
- インテグレーションテスト(結合テスト)
- E2Eテスト
- テストピラミッド
- テスト戦略
- テストケースの構造化パターン
- ユニットテストとArrange-Act-Assert
- E2EテストとGiven-When-Then
第2章 テストテクニック
- テストジェネレーターでテストコードを作ってみよう
- ウェブブラウザを操作するコードの作成
- 画面を検証するコードの作成
- できたテストコードでテスト
- プロジェクトを使いさまざまな環境でテスト
- ロケーターを使い変更に強いテストを作成
- 共通のコードをフィクスチャで管理
- フィクスチャを作成
- 既存のtest()を拡張
- テストを実行
- クッキーを共有して認証のテスト
- セッション情報を保存
- プロジェクト依存関係でセッションデータのやり取り
- 視覚的なテスト
- ビジュアルリグレッションテスト
- スナップショットテスト
- スナップショットの作成・更新
- スナップショットの保存先
- イベントの監視
- リクエスト
- レスポンス
- 新しいタブやウィンドウ
- ダイアログ
- ファイルダウンロード
- ネットワークハンドリング
- リクエストの変更
- レスポンスの変更
- リクエストのブロック
- メールのテスト
- 位置情報のテスト
- カメラやマイクのテスト
- フェイクに使う動画や音声の準備
- Chromeにフェイクファイルを設定
- 並列実行
- 直列で実行
- 並列実行に耐えられるテストコードを作る
第3章 CIでもPlaywright
- Playwrightが対応するCIサービス
- GitHub ActionsでPlaywright
- ネイティブ環境でテスト
- Docker環境でテスト
- Docker Compose環境でテスト
- CI環境でのテスト状況を保存
第4章 Playwrightの設定
- Playwrightの設定方法
- 基本オプション
- テスト全体のタイムアウト
- 各テストのタイムアウト
- アサーションのタイムアウト
- リトライ回数
- テストの並列実行
- テスト状況の記録
- スナップショット保存先
- テストプロジェクト
- 複数のプロジェクトを設定
- プロジェクトごとにテストファイルをフィルタリング
- プロジェクトの依存関係
- ウェブブラウザの設定
- デバイスの設定
- ベースURL
- カラースキーム
- ビューポート
- デバイススケールファクター
- 通信状態
- ロケール
- タイムゾーン