Тестування продуктивності з 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-dot sleep 3 замість 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...