Comment utiliser Selenium, l'outil de test automatisé Python

WBOY
Libérer: 2023-05-17 10:43:37
avant
1361 Les gens l'ont consulté

    1 Tests automatisés

    Les tests automatisés font référence à l'automatisation des tests de logiciels, à l'exécution d'applications ou de systèmes dans des conditions prédéfinies, y compris des conditions normales et anormales, et enfin à l'évaluation des résultats d'exécution. Processus de conversion du comportement de test piloté par l'homme en exécution machine.

    Comment utiliser Selenium, loutil de test automatisé Python

    Les tests automatisés incluent l'automatisation de l'interface utilisateur, l'automatisation de l'interface et l'automatisation des tests unitaires. La planification des tests automatisés selon ce modèle pyramidal peut produire le meilleur rapport sortie/entrée (ROI) des tests automatisés et obtenir de bons avantages avec moins d'investissement.

    1.1 Test unitaire

    Le plus gros investissement devrait être dans les tests unitaires, et les tests unitaires devraient être exécutés plus fréquemment.

    Le framework de tests unitaires de Java est Junit.

    1.2 Tests d'interface

    Les tests d'interface sont des tests d'API Par rapport à l'automatisation de l'interface utilisateur, l'automatisation des API est plus facile à mettre en œuvre et plus stable dans son exécution.

    L'automatisation de l'interface présente les caractéristiques suivantes :

    • Peut intervenir dès le début du produit, une fois l'interface terminée

    • La quantité de maintenance du cas d'utilisation est faible

    • Convient aux projets avec une petite interface changements et changements fréquents d'interface

    Common Les outils de test automatisés de l'interface incluent RobotFramework, JMeter, SoapUI, TestNG+HttpClient, Postman, etc.

    1.3 UI Test

    Bien que la pyramide de tests nous dise de faire autant de tests automatisés de Si possible la couche API, les tests automatisés de la couche UI sont plus proches des exigences des utilisateurs et de l'activité réelle des systèmes logiciels. Et parfois, nous devons effectuer des tests de couche d'interface utilisateur.

    Caractéristiques de l'automatisation de l'interface utilisateur :

    • Une grande quantité de maintenance des cas d'utilisation

    • La page est très pertinente et doit être intervenue une fois le développement de la page du projet terminé

    • Les tests d'interface utilisateur conviennent aux projets avec de petits changements d'interface

    Il existe de nombreux frameworks de test pour la couche UI, tels que AutoIT pour les tests client Windows, Selenium pour les tests Web, TestPlant, eggPlant, Robot framework, QTP, etc.

    1.3.1 Avantages des tests automatisés de l'interface utilisateur

    Réduisez l'investissement en main-d'œuvre dans les tests de régression provoqués par des changements ou le développement en plusieurs phases de grands systèmes. Cela peut être la tâche la plus importante des tests automatisés, en particulier lorsque les modifications du programme sont fréquentes. L'effet est très évident. Les tests automatisés nécessitent plus de main-d'œuvre au début, mais après être entré dans la période de maintenance, beaucoup de main-d'œuvre peut être économisée. Cependant, dans la phase ultérieure des tests manuels, beaucoup de main-d'œuvre est nécessaire pour les tests de régression

    .
    • Réduisez le temps des tests répétés et réalisez des tests de régression rapides

    • Créez un processus de test efficace et fiable, réduisez les erreurs humaines

    • Peut exécuter des tests de plus en plus fastidieux

    • Peut effectuer certains tests difficiles ou impossible de tester manuellement

    • Meilleure utilisation des ressources

    • Réutilisabilité des scripts de test

    1.3.2 Objets applicables des tests automatisés de l'interface utilisateur

    Prérequis pour la mise en œuvre des tests automatisés : les changements de demande sont peu fréquents, le cycle du projet est suffisamment long et le script de test automatisé est reproductible.

    Convient aux projets d'automatisation :

    • Projets de type produit. Pour les projets de type produit, la nouvelle version constitue une amélioration par rapport à l'ancienne version et les fonctionnalités du projet n'ont pas beaucoup changé. Cependant, les nouvelles et anciennes fonctions du projet doivent être testées à plusieurs reprises pour vérifier la régression. L'avantage des tests automatisés réside dans les tests de régression, qui peuvent vérifier efficacement si de nouveaux défauts ont été introduits et si d'anciens défauts ont été corrigés. Dans une certaine mesure, les outils de tests automatisés peuvent être appelés outils de tests de régression.

    • Tests mécaniques et fréquents. Dans un projet à long terme, les mêmes grandes quantités de données doivent être saisies encore et encore. Comme les tests de compatibilité.

    Les projets suivants ne conviennent pas aux tests automatisés :

    • Projets avec des changements fréquents de demande, les scripts automatisés ne peuvent pas être réutilisés, les coûts de maintenance sont trop élevés et les performances en termes de coûts sont faibles

    • Le cycle du projet est court , une fois le script d'automatisation compilé Utilisation peu fréquente, performances à faible coût

    • Projets à forte nature interactive, projets nécessitant une intervention manuelle, l'automatisation ne peut pas être mise en œuvre

    1.4 Processus de test automatisé

    • Analyse : comprendre globalement le logique du système, analyser l’architecture de base du système.

    • Conception : Concevoir des cas de test. Les cas de test doivent être suffisamment clairs et clairs, avec une couverture large et précise.

    • Mise en œuvre : Pour implémenter le script, il y a deux exigences : l'une est une assertion et l'autre. utilisation raisonnable du paramétrage.

    • Exécution : L'exécution du script est loin d'être aussi simple qu'on l'imaginait. Les anomalies lors de l'exécution du script nécessitent une analyse minutieuse des causes.

    • Résumé : L'analyse des résultats des tests et le résumé du processus de test sont les clés des tests automatisés.

    • Maintenance : La maintenance des scripts de tests automatisés est un problème difficile à résoudre mais qui doit être résolu.

    • Analyse : Analyse approfondie des risques de couverture des cas d'utilisation automatisés et du coût de maintenance des scripts pendant le processus de test automatisé.

    2 selenium

    Selenium est un cadre de test automatisé basé sur l'interface utilisateur pour les applications Web, prenant en charge plusieurs plates-formes, plusieurs navigateurs et plusieurs langues.

    Le premier Selenium RC a été remplacé par l'actuel webDriver. Il peut être simplement compris comme selenium1.0 + webdriver, et l'actuel Selenium2.0. Généralement, nous utilisons le terme « Sélénium » pour désigner Sélénium 2.0. Selenium comprend trois composants : Selenium IDE, Webdriver et Selenium Grid.

    Présentons chacun d'entre eux :

    Selenium IDE

    Selenium IDE est un environnement de développement intégré complet pour les tests Selenium. Il peut enregistrer directement les opérations de l'utilisateur dans le navigateur et lire, modifier et déboguer les scripts de test. Pendant le débogage, vous pouvez parcourir l'exécution ou ajuster la vitesse d'exécution, et afficher le journal en bas pour obtenir des informations sur les erreurs. Les scripts de test enregistrés peuvent être exportés dans plusieurs langages, tels que Java, C#, Python, Ruby, etc., ce qui facilite le fonctionnement des testeurs maîtrisant différents langages. Webdriver

    Selenium RC Lors de l'exécution d'applications JavaScript dans un navigateur, il y aura des problèmes de bac à sable environnemental, mais WebDriver peut sortir du bac à sable JavaScript et créer des scripts de test automatisés multiplateformes plus robustes, distribués pour différents navigateurs. Basé sur des liaisons de langage spécifiques (Java, C#, Python, Ruby, Perl, JavaScript, etc.) pour conduire le navigateur à exploiter et valider les éléments Web.

    Comment fonctionne le pilote Web :

    • Après le démarrage du navigateur, Selenium-webdriver liera le navigateur cible à un port spécifique et le navigateur démarré servira de serveur distant du pilote Web.

    • Le client (c'est-à-dire le script de test) utilise ComandExecutor pour envoyer une requête HTTP au serveur (protocole de communication : The WebDriver Wire Protocol. Dans le corps de la requête HTTP, ce sera une chaîne au format JSON spécifié par le protocole WebDriver Wire. Indiquez à Selenium ce que nous voulons que le navigateur fasse ensuite).

    • Le côté serveur doit s'appuyer sur des composants natifs du navigateur pour convertir les commandes du service Web en appels natifs du navigateur afin de terminer l'opération.

    selenium Grid

    selenium Grid est un serveur qui fournit une liste de serveurs accessibles par les instances de navigateur et gère les informations d'enregistrement et d'état de chaque nœud. Différents scripts de test peuvent être exécutés simultanément sur différents serveurs.

    3 script d'enregistrement IDE Selenium

    Ouvrez Edge-Plug-in-select Selenium IDE :

    Créez un nouveau projet à ce moment-là, il y aura un scénario de test sans titre dans la fenêtre de scénario de test sur la gauche. et renommez-le en "test"

    Comment utiliser Selenium, loutil de test automatisé Python

    Cliquez sur le bouton d'enregistrement (petit point rouge) en haut à droite de l'IDE pour démarrer l'enregistrement manuel

    Entrez l'URL à tester telle que http://www.baidu. com dans la barre d’adresse, recherchez des mots-clés et vous pourrez voir que l’opération d’enregistrement IDE a été effectuée.

    Cliquez avec le bouton droit sur la page pour ajouter des points de contrôle.

    Une fois l'enregistrement terminé, cliquez sur le bouton d'enregistrement (petit point rouge) pour mettre fin à cet enregistrement manuel. Dans Selenium IDE, sélectionnez un scénario de test, cliquez avec le bouton droit et sélectionnez "Exporter en tant que fichier test.py.

    Exécutez le script en python et déboguez-le.

    # Generated by Selenium IDE
    import pytest
    import time
    import json
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    class TestTest():
      def setup_method(self, method):
        self.driver = webdriver.Chrome()
        self.vars = {}
      def teardown_method(self, method):
        self.driver.quit()
      def test_test(self):
        self.driver.get("https://www.baidu.com/")
        self.driver.set_window_size(809, 864)
        self.driver.find_element(By.ID, "kw").click()
        self.driver.execute_script("window.scrollTo(0,0)")
        self.driver.find_element(By.ID, "kw").send_keys("四月是你的谎言")
        self.driver.find_element(By.ID, "su").click()
    Copier après la connexion

    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!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    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
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!