Upgrade to Pro — share decks privately, control downloads, hide ads and more …

E2Eテストで開発を止めないためのPlaywright高速化

Avatar for yuzneri yuzneri
November 08, 2025
12

 E2Eテストで開発を止めないためのPlaywright高速化

2025/11/08 PHPカンファレンス福岡2025

Avatar for yuzneri

yuzneri

November 08, 2025
Tweet

Transcript

  1. matrix設定例 jobs: playwright-tests: strategy: fail-fast: false matrix: index: [1, 2,

    3] # シャード番号 total: [3] # 分割数 steps: ... 2025/11/08
  2. Shardオプション設定例 steps: # チェックアウトやPlaywrightの設定 - run: npx playwright test --shard=${{matrix.index}}/${{matrix.total}}

    - uses: actions/upload-artifact@v4 with: name: blob-report-${{ matrix.shardIndex }} path: blob-report 2025/11/08
  3. レポート統合設定例 merge-reports: steps: # チェックアウトやPlaywrightの設定 - uses: actions/download-artifact@v5 with: path:

    all-blob-reports pattern: blob-report-* merge-multiple: true - run: npx playwright merge-reports --reporter html ./all-blob-reports 2025/11/08
  4. セッションを保存する test('authenticate', async ({ page }) => { await page.fill('#user',

    'user'); await page.fill('#pass', 'pass'); await page.click('#login'); await page.context().storageState({ path: 'auth.json' }); }); 2025/11/08
  5. テスト時にセッションをロードする export default defineConfig({ projects: [ {name: 'setup', testMatch: /.*¥.setup¥.ts/},

    { name: 'chromium', use: { ...devices['Desktop Chrome'], storageState: 'auth.json', }, dependencies: ['setup'], }, 2025/11/08 ① setup プ ロ ジ ェ ク ト が 最 初 に 実 ⾏ さ れ る ↑②auth.jsonが保存される ←③テスト時にauth.jsonが ロードされる