Параметризация тестов
Введение
Вы можете параметризовать тесты на уровне теста или на уровне проекта.
Параметризованные тесты
Хуки до и после
В большинстве случаев следует размещать хуки beforeEach
, beforeAll
, afterEach
и afterAll
вне forEach
, чтобы они выполнялись только один раз:
Если вы хотите иметь хуки для каждого теста, вы можете поместить их внутри describe()
, чтобы они выполнялись для каждой итерации / каждого отдельного теста:
Параметризованные проекты
Playwright Test поддерживает запуск нескольких тестовых проектов одновременно. В следующем примере мы запустим два проекта с разными опциями.
Мы объявляем опцию person
и задаем значение в конфигурации. Первый проект запускается со значением Alice
, а второй со значением Bob
.
Мы можем использовать эту опцию в тесте, аналогично фикстурам.
Теперь мы можем запускать тесты в нескольких конфигурациях, используя проекты.
Мы также можем использовать опцию в фикстуре. Узнайте больше о фикстурах.
Поведение параметризованных проектов изменилось в версии 1.18. Узнайте больше.
Передача переменных окружения
Вы можете использовать переменные окружения для настройки тестов из командной строки.
Например, рассмотрим следующий тестовый файл, которому нужны имя пользователя и пароль. Обычно лучше не хранить ваши секреты в исходном коде, поэтому нам нужно будет передать секреты извне.
Вы можете запустить этот тест с вашим секретным именем пользователя и паролем, установленными в командной строке.
Аналогично, файл конфигурации также может читать переменные окружения, переданные через командную строку.
Теперь вы можете запускать тесты в тестовой или производственной среде:
.env файлы
Чтобы упростить управление переменными окружения, рассмотрите возможность использования файлов .env
. Вот пример, который использует пакет dotenv
для чтения переменных окружения непосредственно в файле конфигурации.
Теперь вы можете просто отредактировать файл .env
, чтобы установить любые переменные, которые вы хотите.
Запустите тесты как обычно, ваши переменные окружения должны быть подхвачены.
Создание тестов через CSV файл
Тестовый раннер Playwright работает в Node.js, это означает, что вы можете напрямую читать файлы из файловой системы и разбирать их с помощью предпочитаемой библиотеки CSV.
Рассмотрим, например, этот CSV файл, в нашем примере input.csv
:
На основе этого мы сгенерируем несколько тестов, используя библиотеку csv-parse из NPM: