Spec-Zone.ru › Playwright

Веб-сервер

Введение​

Playwright поставляется с опцией webserver в файле конфигурации, которая позволяет запускать локальный сервер разработки перед запуском тестов. Это идеально подходит для написания тестов во время разработки, когда у вас нет URL-адреса среды предварительного просмотра или производства для тестирования.

Настройка веб-сервера​

Используйте свойство webserver в вашей конфигурации Playwright для запуска веб-сервера разработки во время тестов.

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

export default defineConfig({
  // Run your local dev server before starting the tests
  webServer: {
    command: 'npm run start',
    url: 'http://127.0.0.1:3000',
    reuseExistingServer: !process.env.CI,
    stdout: 'ignore',
    stderr: 'pipe',
  },
});
Свойство Описание
testConfig.webServer Запустить веб-сервер разработки (или несколько) во время тестов.
command Команда командной строки для запуска локального сервера разработки вашего приложения.
url URL вашего http-сервера, который ожидается вернуть код состояния 2xx, 3xx, 400, 401, 402 или 403, когда сервер готов принимать подключения.
reuseExistingServer Если true, он будет повторно использовать существующий сервер на url, если он доступен. Если на этом url нет работающего сервера, он выполнит команду для запуска нового сервера. Если false, он выбросит ошибку, если существующий процесс прослушивает url. Чтобы увидеть вывод в стандартный поток, можно установить переменную среды DEBUG=pw:webserver.
ignoreHTTPSErrors Игнорировать ошибки HTTPS при получении url. По умолчанию false.
cwd Текущая рабочая директория запущенного процесса, по умолчанию директория файла конфигурации.
stdout Если "pipe", он перенаправит вывод в стандартный поток вывода процесса. Если "ignore", он проигнорирует вывод в стандартный поток вывода команды. По умолчанию "ignore".
stderr Перенаправлять ли вывод в стандартный поток ошибок процесса или игнорировать его. По умолчанию "pipe".
timeout Сколько времени ждать, пока процесс запустится и станет доступным в миллисекундах. По умолчанию 60000.

Добавление таймаута сервера​

Веб-серверы иногда могут дольше загружаться. В этом случае вы можете увеличить таймаут, чтобы подождать запуска сервера.

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

export default defineConfig({
  // Rest of your config...

  // Run your local dev server before starting the tests
  webServer: {
    command: 'npm run start',
    url: 'http://127.0.0.1:3000',
    reuseExistingServer: !process.env.CI,
    timeout: 120 * 1000,
  },
});

Добавление baseURL​

Также рекомендуется указать baseURL в разделе use: {} вашей конфигурации, чтобы тесты могли использовать относительные URL-адреса, и вам не нужно было указывать полный URL-адрес снова и снова.

При использовании page.goto(), page.route(), page.waitForURL(), page.waitForRequest() или page.waitForResponse(), учитывается базовый URL-адрес с использованием конструктора URL() для построения соответствующего URL-адреса. Например, установив baseURL на http://127.0.0.1:3000 и перейдя по адресу /login в своих тестах, Playwright выполнит тест, используя http://127.0.0.1:3000/login.

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

export default defineConfig({
  // Rest of your config...

  // Run your local dev server before starting the tests
  webServer: {
    command: 'npm run start',
    url: 'http://127.0.0.1:3000',
    reuseExistingServer: !process.env.CI,
  },
  use: {
    baseURL: 'http://127.0.0.1:3000',
  },
});

Теперь вы можете использовать относительный путь при переходе на страницу:

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

test('test', async ({ page }) => {
  // This will navigate to http://127.0.0.1:3000/login
  await page.goto('./login');
});

Несколько веб-серверов​

Несколько веб-серверов (или фоновых процессов) можно запустить одновременно, предоставив массив конфигураций webServer. Подробнее см. testConfig.webServer.

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

export default defineConfig({
  webServer: [
    {
      command: 'npm run start',
      url: 'http://127.0.0.1:3000',
      timeout: 120 * 1000,
      reuseExistingServer: !process.env.CI,
    },
    {
      command: 'npm run backend',
      url: 'http://127.0.0.1:3333',
      timeout: 120 * 1000,
      reuseExistingServer: !process.env.CI,
    }
  ],
  use: {
    baseURL: 'http://127.0.0.1:3000',
  },
});

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/test-webserver

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API