Maison >développement back-end >Tutoriel Python >Tests automatisés d'applications Web à l'aide de Python

Tests automatisés d'applications Web à l'aide de Python

WBOY
WBOYoriginal
2023-06-17 14:12:431459parcourir

Dans le développement de logiciels modernes, les tests unitaires et les tests d'intégration sont devenus la norme, mais ces tests doivent toujours être effectués manuellement. Les tests manuels peuvent être fastidieux, longs et sujets aux erreurs, en particulier dans les environnements qui nécessitent une intégration continue. Les tests automatisés sont particulièrement importants. Python, en tant que langage de programmation populaire, dispose de nombreux frameworks de test et bibliothèques puissants pour écrire des tests d'applications Web automatisés. Cet article explique comment utiliser Python pour les tests automatisés.

  1. Installer les bibliothèques Python nécessaires

Avant de commencer à écrire des tests automatisés, vous devez vous assurer que vous avez installé les bibliothèques Python nécessaires. Ces bibliothèques incluent :

  • Selenium WebDriver : utilisé pour simuler les actions du navigateur telles que cliquer sur des liens et remplir des formulaires.
  • Pytest : utilisé pour écrire et exécuter des cas de test.
  • Requêtes : utilisées pour envoyer des requêtes HTTP et analyser les réponses.

Ces bibliothèques peuvent être facilement installées à l'aide de la commande pip.

pip install selenium pytest requests

Vous pouvez également lister les bibliothèques que vous souhaitez utiliser dans le fichier exigences.txt de votre projet afin que d'autres puissent facilement installer les mêmes dépendances.

  1. Rédaction de cas de test

Avant d'écrire un cas de test, vous devez déterminer l'URL de l'application que vous souhaitez tester et toutes les informations d'authentification requises. Il est souvent nécessaire de créer un environnement de test contenant des utilisateurs tests afin que des comportements spécifiques puissent être déclenchés à l'aide d'informations d'identification connues.

Le processus de base d'écriture de cas de test à l'aide de Selenium et de Pytest est le suivant :

  • Si nécessaire, ouvrez un navigateur utilisant Selenium et accédez au site de test.
  • Utilisez Selenium pour simuler l'interaction de l'utilisateur avec votre application. Par exemple, Selenium peut être utilisé pour simuler les connexions des utilisateurs, le remplissage de formulaires, le clic sur des boutons ou des liens, etc.
  • Rédiger des cas de tests au format Pytest. Chaque scénario de test correspond généralement à un test unique d'une certaine fonctionnalité de l'application, tel que « Test de la fonctionnalité de connexion utilisateur » ou « Test de l'accès à une page spécifique ».
  • Avant que Pytest n'exécute le test, vous pouvez configurer un appareil de test pour configurer l'environnement de test ou les objets simulés, ou effectuer certaines étapes répétées.

Voici un exemple de cas de test simple pour tester la page de connexion :

import pytest
from selenium import webdriver

# 设置测试环境
@pytest.fixture(scope="module")
def driver():
    with webdriver.Chrome() as driver:
        yield driver

# 测试用例
def test_login_page(driver):
    driver.get("https://myapp.com/login")
    assert "登录" in driver.title
    username_input = driver.find_element_by_id("username")
    password_input = driver.find_element_by_id("password")
    submit_button = driver.find_element_by_id("submit")
    username_input.send_keys("test_user")
    password_input.send_keys("test_password")
    submit_button.click()
    assert "欢迎" in driver.title

Dans le code ci-dessus, driver是一个Selenium webdriver对象,test_login_page est un cas de test qui accède à la page de connexion, remplit le formulaire et clique sur le bouton de soumission et affirme enfin qu'après la connexion Le titre de la page contient le mot « Bienvenue ».

  1. Exécuter des cas de test

Une fois que vous avez fini d'écrire vos cas de test, vous pouvez utiliser Pytest pour les exécuter. Entrez la commande suivante sur la ligne de commande pour exécuter le scénario de test :

pytest test_web_app.py

Avant d'exécuter le scénario de test, Pytest recherchera les fonctions commençant par "test_" dans le fichier et les identifiera comme cas de test en fonction du nom de la fonction et de la balise. Lors de l'exécution des scénarios de test, Pytest affichera les résultats de chaque scénario de test, y compris si le test a réussi, la durée d'exécution et toute sortie.

  1. Intégration avec d'autres outils

Outre Selenium et Pytest, il existe de nombreux autres outils disponibles pour les tests automatisés Python. Voici quelques exemples :

  • PyAutoGUI : utilisé pour simuler les entrées et les opérations du clavier et de la souris. Peut être utilisé pour écrire des tests d’interface utilisateur.
  • Locust : Un outil de test de charge open source écrit en Python qui peut simuler un grand nombre de visites d'utilisateurs et capturer des indicateurs de performances des applications.
  • Mock : bibliothèque Python pour se moquer de fonctions et d'objets pouvant remplacer des fonctions et des objets réels dans les tests afin d'éviter les dépendances sur d'autres systèmes.
  • Coverage.py : outil de couverture de tests Python, vous pouvez voir quelles parties du code ont été couvertes par les tests.

Les tests automatisés font partie intégrante du développement logiciel moderne. Python fournit des bibliothèques et des outils puissants et faciles à utiliser pour créer et exécuter facilement des tests automatisés. Que vous utilisiez Selenium et Pytest pour écrire des tests d'interface utilisateur ou que vous utilisiez d'autres outils pour tester les performances et le chargement du code, Python est un excellent choix.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn