Testowanie wydajności z pytest

Wprowadzenie do testowania w Pythonie

Alexander Levin

Data Scientist

Czym jest testowanie wydajności

Wydajność – jak efektywnie oprogramowanie wykorzystuje zasoby systemowe do wykonania zadania.

Testowanie wydajności – typ testowania mierzący wydajność oprogramowania.

Wprowadzenie do testowania w Pythonie

Kiedy testowanie wydajności jest ważne

Zasoby:

  • Czas wykonania
  • CPU
  • RAM
  • Inne zasoby

Przypadki użycia:

  • Optymalizacja szybkości witryny
  • Aplikacja obsługująca miliony żądań
  • Planowanie trasy dla robota sprzątającego
Wprowadzenie do testowania w Pythonie

Fixture benchmark

Instalacja:

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

Polecenie CLI:

pytest Example_1.py
Wprowadzenie do testowania w Pythonie

Wyniki benchmarkingu

Wyniki po wykonaniu polecenia CLI: Wyniki benchmarkingu po wykonaniu polecenia pytest

Dla time.sleep(3) zamiast time.sleep(1): Wyniki benchmarkingu po wykonaniu polecenia pytest dla programu z time.sleep(3) zamiast time.sleep(1)

Wprowadzenie do testowania w Pythonie

Dekorator benchmark

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

Polecenie CLI:

pytest Example_2.py
Wprowadzenie do testowania w Pythonie

Podsumowanie

  • Testowanie wydajności – mierzy efektywność działania oprogramowania.
  • Zasoby są zazwyczaj ograniczone.
  • Przydatne przy ograniczonych zasobach.
  • Fixture pytest-benchmark można używać poprzez:
    • bezpośrednie wywołanie benchmark
    • użycie @benchmark jako dekoratora
  • Wyniki opisują próbkę zmierzonych przebiegów w sekundach.
Wprowadzenie do testowania w Pythonie

Czas na ćwiczenia!

Wprowadzenie do testowania w Pythonie

Preparing Video For Download...