
Комментарии 4
Почему используется pytest_asyncio, вместо рекомендованного документацией playwright pytest-playwright-asyncio?
Я использовал pytest-asyncio, потому что хотел показать сам принцип работы async/await в тестах и как именно приходится переписывать фикстуры, PageObject и API-клиентов.
pytest-playwright-asyncio существует, но он решает другую задачу - просто дает встроенные async-фикстуры для Playwright. В то время, как pytest-asyncio в целом открывает опцию писать async/await в pytest, эти два плагина про разное.
Для целей статьи это не критично, поэтому я сделал вручную через async_playwright(). Суть статьи ведь не в том, какой плагин выбрать, а в том, что сама по себе асинхронность не делает тесты быстрее и без понимания, зачем она нужна, превращается скорее в усложнение, чем в пользу.
Спасибо за классную статью. Все четко и понятно, буквально разложено по полочкам. Отдельное спасибо за аргументированное обоснование того, что асинхронность - не панацея, и тесты можно и нужно оптимизировать другими способами.
Рад, что оказалось полезно :) Решил сделать подробный разбор потому, что на курсах у студентов этот вопрос про асинхронность возникает постоянно. У многих есть ожидание, что если в коде поставить "магические" async/await, то тесты сразу ускорятся в 10 раз, а то и больше. На деле же важнее правильно оптимизировать архитектуру и подход к тестированию
Асинхронные тесты для UI и API на Python: примеры, подводные камни и трезвый вывод