Тестирование производительности с pytest

Введение в тестирование на Python

Alexander Levin

Data Scientist

Что такое тестирование производительности

Производительность — насколько эффективно программа использует ресурсы системы для выполнения задачи.

Тестирование производительности — вид тестирования, измеряющий производительность программного обеспечения.

Введение в тестирование на Python

Когда важно тестирование производительности

Ресурсы:

  • Время выполнения
  • CPU
  • RAM
  • Прочие ресурсы

Примеры:

  • Оптимизация скорости сайта
  • Приложение, обрабатывающее миллионы запросов
  • Построение маршрута для робота-пылесоса
Введение в тестирование на Python

Фикстура benchmark

Установка:

pip install pytest-benchmark
# Example_1.py
import time
def test_func(benchmark):
    benchmark(time.sleep, 1)

Команда CLI:

pytest Example_1.py
Введение в тестирование на Python

Результаты бенчмаркинга

Результаты после выполнения команды CLI: Результаты бенчмаркинга после выполнения команды pytest

Для time.sleep(3) вместо time.sleep(1): Результаты бенчмаркинга после выполнения команды pytest для программы с time.sleep(3) вместо time.sleep(1)

Введение в тестирование на Python

Декоратор benchmark

# Example_2.py
import time
def test_func(benchmark):
    @benchmark
    def sleep_for_1_sec():
        time.sleep(1)

Команда CLI:

pytest Example_2.py
Введение в тестирование на Python

Итоги

  • Тестирование производительности — вид тестирования, измеряющий производительность программного обеспечения.
  • Ресурсы, как правило, ограничены.
  • Особенно полезно при нехватке ресурсов.
  • Фикстуру pytest-benchmark можно использовать:
    • вызывая benchmark напрямую
    • применяя @benchmark как декоратор
  • Результаты описывают выборку замеров в секундах.
Введение в тестирование на Python

Давайте потренируемся!

Введение в тестирование на Python

Preparing Video For Download...