Библиотека .NET для превращения методов C# в воспроизводимые бенчмарки с автоматическим прогревом, статистикой и отчетами о результатах.
ionelmc/pytest-benchmark
Плагин для pytest с фикстурой benchmark, которая измеряет время выполнения Python-функций в тестах.
- Звёзды
- 1,459
- Форки
- 139
- Открытые issues
- 125
- Последний коммит
- 7 дней назад
Что это?
pytest-benchmark добавляет в pytest фикстуру benchmark. Если передать ей функцию, она запускает её несколько раз, объединяя запуски в раунды, откалиброванные под выбранный таймер, а результаты измерений выводит в сводке pytest.
Фикстуру можно вызывать с позиционными и именованными аргументами. В педантичном режиме можно явно задавать функции настройки, число итераций и число раундов. Результаты можно сравнивать с предыдущими запусками, а плагин умеет строить гистограммы распределения времени выполнения.
Благодаря интеграции с pytest бенчмарки оформляются как обычные тестовые функции и запускаются стандартной командой pytest. Плагин измеряет время выполнения отдельных функций, поэтому для замера более крупного фрагмента кода его нужно обернуть в функцию.
Ключевые возможности
- 01Предоставляет фикстуру benchmark для измерения времени вызова функции в тесте pytest.
- 02Группирует измерения в раунды, откалиброванные под выбранный таймер.
- 03Предлагает педантичный режим с настройкой функций подготовки, числа итераций и раундов.
- 04Позволяет сравнивать результаты с предыдущими запусками бенчмарков.
- 05Умеет строить гистограммы результатов измерений.
Сценарии использования
- Отслеживание регрессий производительности Python-функций между коммитами.
- Сравнение двух реализаций одной функции в тестовом наборе.
- Измерение критичных участков библиотеки с использованием существующего рабочего процесса pytest для бенчмарков.
Быстрый старт
- 1
Установите плагин из PyPI
pip install pytest-benchmark
Что важно знать
- Бенчмарки выполняются только для отдельных функций, поэтому для тестирования целых программ или блоков кода нужна функция-обёртка.
Темы
Частые вопросы
- Что такое pytest-benchmark?
- Плагин для pytest с фикстурой benchmark, которая измеряет время выполнения Python-функций в тестах. pytest-benchmark добавляет в pytest фикстуру benchmark. Если передать ей функцию, она запускает её несколько раз, объединяя запуски в раунды, откалиброванные под выбранный таймер, а результаты измерений выводит в сводке pytest.
- pytest-benchmark можно использовать бесплатно? Какая у него лицензия?
- pytest-benchmark распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pytest-benchmark всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pytest-benchmark — 1 нояб. 2026 г..
- Для чего можно использовать pytest-benchmark?
- Отслеживание регрессий производительности Python-функций между коммитами. Сравнение двух реализаций одной функции в тестовом наборе. Измерение критичных участков библиотеки с использованием существующего рабочего процесса pytest для бенчмарков.
- Как установить pytest-benchmark?
- Установите плагин из PyPI: pip install pytest-benchmark
- Где скачать pytest-benchmark?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ionelmc/pytest-benchmark
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Построчный профилировщик Python, который показывает, сколько времени занимает выполнение каждой строки декорированной функции.
Приложение с открытым исходным кодом на Java для нагрузочного тестирования и оценки производительности веб-приложений и других сервисов.
Кроссплатформенный CLI-инструмент на Go для бенчмаркинга и нагрузочного тестирования HTTP(S), использующий fasthttp для высокой пропускной способности.
CLI-инструмент для бенчмаркинга и нагрузочного тестирования gRPC-сервисов с настройкой параллелизма, ограничений частоты запросов и форматов вывода.
Фреймворк для макробенчмаркинга Elasticsearch: разворачивает кластеры, запускает тестовые прогоны и сравнивает результаты.