2
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?

Playwrightでテストが不安定なときに効果がある設定

Posted at

Playwrightでテストが不安定なときに効果がある設定の紹介です。

テストが不安定というのは、テスト結果がOKになったり、NGになったりして安定しないという意味です。

テストコードの書き方が悪くてテストが不安定になっているのであれば、テストコードを修正すべきです。
しかし、テスト対象のサーバーが不安定であったり、ネットワークが不安定であったり、どんなにコードをトレースしても原因が不明であったりで、不安定になる可能性はあります。

そんなときのplaywright.config.tsの設定です。

設定 説明 効果
retries テスト失敗時のテスト再試行回数 再試行によりテスト成功する可能性がある
workers テスト実行するプロセスの数 減らすことによりサーバー負荷が軽減する可能性がある
reporter テスト結果のレポート出力 htmlにしておくとtraceの設定と組み合わせてトレース情報が出力される
use.trace トレース情報出力有無・出力タイミング retain-on-failureにしておくとテスト失敗時にトレース情報出力
timeout 一つのテスト実行のタイムアウト時間 長くしておくと、サーバーやネットワーク負荷が高いときでもテストを実行しきれる可能性がある
expect.timeout アサーションのタイムアウト時間 長くしておくと、サーバーやネットワーク負荷が高いときでもテストを実行しきれる可能性がある

設定例は以下です。

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

export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: 2,
  workers: 3,
  reporter: 'html',
  timeout: 30,
  expect: {
    timeout: 10
  },
  use: {
    trace: 'retain-on-failure',
  },
  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'] },
    }
  ]
});

テストに失敗すると、レポートにトレース情報が出力されます。
画面がどういう状態になっていたかなど確認できるため、原因をトレースしやすくなります。

1.gif

2
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
2
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?