Repolode
ionelmc

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. 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 обновляется ежедневно.

Похожие проекты

Библиотека .NET для превращения методов C# в воспроизводимые бенчмарки с автоматическим прогревом, статистикой и отчетами о результатах.

11,5 тыс.+2 за неделю1,1 тыс.C#MITАктивно поддерживаетсяОбновлён 22 часа назад

Приложение с открытым исходным кодом на Java для нагрузочного тестирования и оценки производительности веб-приложений и других сервисов.

9,6 тыс.+16 за неделю2,3 тыс.JavaApache-2.0Активно поддерживаетсяОбновлён позавчера