Определение оптимальной конфигурации набора тестов
Предварительная версия тестирования Microsoft Playwright позволяет ускорить выполнение тестов Playwright, увеличив параллелизм в масштабе облака. Некоторые факторы влияют на время завершения набора тестов. Определение оптимальной конфигурации для уменьшения времени завершения набора тестов зависит от приложения и требует экспериментирования. В этой статье описываются различные уровни настройки параллелизма для тестов, факторы, влияющие на длительность теста, а также способы определения оптимальной конфигурации для минимизации времени завершения теста.
В Playwright можно параллельно выполнять тесты с помощью рабочих процессов. С помощью Microsoft Playwright Testing можно повысить параллелизм с помощью облачных браузеров. Как правило, добавление большего параллелизма сокращает время завершения набора тестов. Однако добавление дополнительных рабочих процессов не всегда приводит к более короткому времени завершения набора тестов. Например, вычислительные ресурсы клиента, задержка сети или сложность тестирования также могут повлиять на длительность теста.
На следующей диаграмме приведен пример запуска набора тестов. Выполнив набор тестов с помощью Microsoft Playwright Testing, а не локально, можно значительно увеличить параллелизм и сократить время завершения теста. Обратите внимание, что при запуске со службой время завершения достигает минимального ограничения, после чего добавление дополнительных рабочих ролей имеет минимальный эффект. На диаграмме также показано, как использование дополнительных вычислительных ресурсов на клиентском компьютере положительно влияет на время завершения теста для тестов, выполняемых со службой.
Рабочие процессы
В Playwright все тесты выполняются в рабочих процессах. Эти процессы являются процессами ОС, выполняющихся независимо, параллельно, с помощью средства запуска тестирования Playwright. Все работники имеют одинаковые среды, и каждый процесс запускает свой собственный браузер.
Как правило, увеличение числа параллельных рабочих ролей может сократить время, необходимое для завершения полного набора тестов. Дополнительные сведения о параллелизме тестирования playwright см. в документации по Playwright.
Как показано ранее на диаграмме, время завершения набора тестов не продолжает уменьшаться при добавлении дополнительных рабочих процессов. Существуют и другие факторы, влияющие на длительность набора тестов.
Локальное выполнение тестов
По умолчанию @playwright/test
ограничивает количество рабочих ролей до 1/2 числа ядер ЦП на компьютере. Вы можете переопределить количество рабочих ролей для выполнения теста.
При локальном запуске тестов количество рабочих процессов ограничено количеством ядер ЦП на компьютере. Помимо определенной точки, добавление дополнительных работников приводит к спору ресурсов, что замедляет каждую рабочую роль и вводит тестовый флокинесс.
Чтобы переопределить число рабочих ролей с помощью флага командной --workers
строки:
npx playwright test --workers=10
Чтобы указать количество рабочих в playwright.config.ts
параметре, выполните указанные workers
ниже действия.
export default defineConfig({
...
workers: 10,
...
});
Выполнение тестов со службой
При использовании Microsoft Playwright Testing можно увеличить число рабочих ролей в облаке до большего числа. При использовании службы рабочие процессы продолжают выполняться локально, но экземпляры браузера с интенсивным ресурсом теперь выполняются удаленно в облаке.
Так как рабочие процессы по-прежнему выполняются на клиентском компьютере (рабочая станция разработчика или компьютер агента CI), клиентский компьютер по-прежнему может стать узким местом для масштабируемого выполнения при добавлении дополнительных рабочих ролей. Узнайте, как определить оптимальную конфигурацию.
Можно указать количество рабочих ролей в командной строке с помощью флага --workers
:
npx playwright test --config=playwright.service.config.ts --workers=30
Кроме того, можно указать количество рабочих ролей в playwright.service.config.ts
параметре workers
:
export default defineConfig({
...
workers: 30,
...
});
Факторы, влияющие на время завершения
Помимо количества параллельных рабочих процессов, существуют несколько факторов, влияющих на время завершения набора тестов.
Множитель | Влияние на продолжительность теста |
---|---|
Вычислительные ресурсы клиентского компьютера | Рабочие процессы по-прежнему выполняются на клиентском компьютере (рабочая станция разработчика или компьютер агента CI) и должны взаимодействовать с удаленными браузерами. Увеличение числа параллельных рабочих ролей может привести к состязанию ресурсов на клиентском компьютере и замедлению тестов. |
Сложность тестового кода | По мере увеличения сложности тестового кода время завершения тестов также может увеличиться. |
Задержка между клиентским компьютером и удаленными браузерами | Работники работают на клиентском компьютере и взаимодействуют с удаленными браузерами. В зависимости от региона Azure, в котором размещаются браузеры, может увеличиться задержка сети. Узнайте, как оптимизировать региональную задержку в Microsoft Playwright Testing. |
Параметры конфигурации playwright | Параметры playwright, такие как время ожидания службы, повторные попытки или трассировка, могут негативно повлиять на время завершения теста. Поэкспериментируйте с оптимальной конфигурацией этих параметров при выполнении тестов в облаке. |
Емкость обработки нагрузки целевого приложения | Выполнение тестов с помощью Microsoft Playwright Testing позволяет выполняться с более высоким параллелизмом, что приводит к более высокой нагрузке на целевое приложение. Убедитесь, что приложение может обрабатывать нагрузку, созданную с помощью тестов Playwright. |
Дополнительные сведения о рабочем процессе для определения оптимальной конфигурации для минимизации длительности набора тестов.
Рабочий процесс для определения оптимальной конфигурации
Оптимальная конфигурация для минимизации времени завершения набора тестов зависит от приложения и среды. Чтобы определить оптимальную конфигурацию, поэкспериментируйте с различными уровнями параллелизации, конфигурацией оборудования клиента или настройкой набора тестов.
Следующий подход поможет вам найти оптимальную конфигурацию для выполнения тестов с помощью Microsoft Playwright Testing:
1. Определение цели завершения теста
Определите допустимое время завершения набора тестов и связанные затраты на тестовый запуск.
В зависимости от сценария требования к завершению теста могут отличаться. При выполнении комплексных тестов с каждым изменением кода в рамках рабочего процесса непрерывной интеграции (CI) минимальное время завершения теста является важным. При планировании сквозных тестов в пакетном запуске (ночного) может потребоваться меньше требований.
2. Убедитесь, что тесты выполняются правильно на клиентском компьютере
Перед запуском набора тестов Playwright с помощью Microsoft Playwright Testing убедитесь, что тесты выполняются правильно на клиентском компьютере. Если вы запускаете тесты в рамках рабочего процесса CI, убедитесь, что тесты выполняются правильно на компьютере агента CI. Убедитесь, что тесты выполняются как минимум с двумя параллельными рабочими ролей, чтобы убедиться, что тесты настроены правильно для параллельного выполнения. Узнайте больше о параллелизме в Playwright.
3. Запуск с помощью облачных браузеров в Microsoft Playwright Testing
После правильного выполнения тестов добавьте конфигурацию службы для запуска тестов в облачных браузерах со службой. Убедитесь, что тесты продолжают работать правильно с клиентского компьютера (рабочая станция разработчика или компьютер агента CI).
Начало работы с кратким руководством. Запуск тестов Playwright в масштабе с помощью Microsoft Playwright Testing.
4. Проверка удаленных браузеров региона Azure
Microsoft Playwright Testing может использовать удаленные браузеры в регионе Azure, ближайшем к клиентскому компьютеру, или использовать фиксированный регион, в котором была создана рабочая область.
Узнайте, как оптимизировать региональную задержку для рабочей области.
5. Экспериментируйте с количеством параллельных рабочих ролей
Поэкспериментируйте с количеством параллельных рабочих ролей для выполнения тестов. Измеряйте время завершения теста и сравнивайте их с целевой целью, заданной ранее.
Обратите внимание, что время завершения теста больше не сокращается при добавлении дополнительных рабочих ролей. Перейдите к следующему шагу, чтобы оптимизировать настройку.
Примечание.
Хотя служба находится в предварительной версии, число параллельных рабочих на рабочую область ограничено 50. Вы можете запросить увеличение этого ограничения для рабочей области.
6. Масштабирование клиента
При увеличении параллелизма клиентский компьютер может столкнуться с состязанием вычислительных ресурсов. Увеличьте вычислительные ресурсы на клиентском компьютере, например, выбрав более крупные GitHub-размещенные средства выполнения.
Кроме того, если у вас есть ограничения оборудования, можно сегментировать клиентские тесты.
Повторно выполните тесты и поэкспериментируйте с количеством параллельных рабочих ролей.
7. Обновление параметров конфигурации теста Playwright
Настройте параметры конфигурации теста Playwright, такие как время ожидания теста, параметры трассировки или повторные попытки.