Prestandatestning med pytest

Introduktion till testning i Python

Alexander Levin

Data Scientist

Vad är prestandatestning

Prestanda – hur effektivt programvara använder systemets resurser för att utföra en uppgift.

Prestandatestning – en typ av testning som mäter programvarans prestanda.

Introduktion till testning i Python

När prestandatestning är viktigt

Resurser:

  • Exekveringstid
  • CPU
  • RAM
  • Övriga resurser

Exempel:

  • Optimering av webbplatshastighet
  • App som tar emot miljontals förfrågningar
  • Ruttplanering för en robotdammsugare
Introduktion till testning i Python

Benchmark-fixture

Installation:

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

CLI-kommando:

pytest Example_1.py
Introduktion till testning i Python

Benchmarkresultat

Resultaten efter att CLI-kommandot körs: Benchmarkresultat efter körning av pytest-kommandot

För time.sleep(3) i stället för time.sleep(1): Benchmarkresultat efter körning av pytest-kommandot för programmet med time-dot sleep 3 i stället för 1

Introduktion till testning i Python

Benchmark-dekorator

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

CLI-kommando:

pytest Example_2.py
Introduktion till testning i Python

Sammanfattning

  • Prestandatestning – en typ av testning som mäter programvarans prestanda.
  • Resurser är oftast begränsade.
  • Användbart när resurser är knappa.
  • Vi kan använda pytest-benchmark-fixture genom att:
    • anropa benchmark direkt
    • använda @benchmark som dekorator
  • Resultaten beskriver urvalet av uppmätta körningar i sekunder.
Introduktion till testning i Python

Nu kör vi en övning!

Introduktion till testning i Python

Preparing Video For Download...