Tests de performance avec pytest

Introduction aux tests en Python

Alexander Levin

Data Scientist

Qu'est-ce que le test de performance

Performance — efficacité avec laquelle un logiciel utilise les ressources du système pour accomplir une tâche.

Test de performance — type de test qui mesure la performance d'un logiciel.

Introduction aux tests en Python

Quand le test de performance est-il important

Ressources :

  • Temps d'exécution
  • CPU
  • RAM
  • Autres ressources

Cas :

  • Optimisation de la vitesse d'un site Web
  • Appli recevant des millions de requêtes
  • Planification de trajet pour un robot aspirateur
Introduction aux tests en Python

Fixture de banc d'essai

Installation :

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

Commande CLI :

pytest Example_1.py
Introduction aux tests en Python

Résultats de banc d'essai

Résultats obtenus après l'exécution de la commande CLI : Résultats de banc d'essai après l'exécution de la commande pytest

Pour time.sleep(3) au lieu de time.sleep(1) : Résultats de banc d'essai après l'exécution de pytest pour le programme avec time point sleep de 3 au lieu de 1

Introduction aux tests en Python

Décorateur benchmark

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

Commande CLI :

pytest Example_2.py
Introduction aux tests en Python

Résumé

  • Test de performance : type de test qui mesure la performance d'un logiciel.
  • Les ressources sont généralement finies.
  • Utile quand les ressources sont limitées.
  • Nous pouvons utiliser la fixture pytest-benchmark en :
    • appelant benchmark directement
    • utilisant @benchmark comme décorateur
  • Les résultats décrivent l'échantillon d'exécutions mesurées en secondes.
Introduction aux tests en Python

Passons à la pratique !

Introduction aux tests en Python

Preparing Video For Download...