Чтобы ваши тесты работали быстрее, нужен простой советский… xdist. Я измерил. Часть 2

В первой части я ускорил большой интеграционный pytest-сьют с получаса до полутора минут за счёт инфраструктурных правок. Во второй проверяю следующий очевидный слой оптимизации — pytest-xdist. Результат оказался не магическим, но полезным: -n auto дал ещё ×3.4 локально и около ×2.7 в CI. В статье показываю, почему xdist не заменяет дешёвый setup, а только домножает его; как разводить БД и Redis по воркерам; где упираются соединения Postgres; и почему память Docker VM и тюнинг Postgres не сдвинули потолок.

https://habr.com/ru/articles/1047134/

#pytest #pytestxdist #python #xdist #интеграционные_тесты #ускорение_тестов #параллельное_тестирование #postgresql #sqlalchemy #redis

Чтобы ваши тесты работали быстрее, нужен простой советский… xdist. Я измерил. Часть 2

Дисклеймер. Продолжение части 1 , тот же проект: Litestar + SQLAlchemy + Postgres + Redis, теперь 3477 тестов , почти все интеграционные, в настоящую БД. Замеры локальные (MacBook Pro M4 Max, 10...

Хабр

Pytest-xdist: как распараллелить тесты без конфликтов в базе

Привет! Я Андрей Сташок, бэкенд-разработчик в KTS . В этой статье я расскажу о запуске параллельных тестов через pytest-xdist . Почему это важно? Объясню на нашем примере. При разработке продуктов мы постоянно выполняем юнит-тестирование. Раньше мы проверяли все последовательно, и с расширением тестовой базы время проведения испытаний заметно возрастало. Распараллеливание через pytest-xdist помогло нам сильно ускориться, и сегодня я хочу поделиться этим трюком с вами. Я расскажу, как запускать параллельные тесты для реляционной БД PostgreSQL (с драйверами asyncpg и psycopg2) и key-value БД Redis. Для подключения к реляционной БД мы будем использовать SQLAlchemy, а для Redis — библиотеку redis. Кроме того, я рассмотрю, как автоматизировать выполнение миграций при каждом запуске тестов с использованием alembic.

https://habr.com/ru/companies/kts/articles/912840/

#python #pytest #xdist #изоляция_тестов #redis #postgresql #параллельное_тестирование #тестирование #базы_данных #ускорение

Pytest-xdist: как распараллелить тесты без конфликтов в базе

Привет! Я Андрей Сташок, бэкенд-разработчик в KTS . В этой статье я расскажу о запуске параллельных тестов через pytest-xdist . Почему это важно? Объясню на нашем примере. При разработке продуктов мы...

Хабр