recherche
Maisondéveloppement back-endTutoriel PythonLes transactions de page comme nouvelle façon d'organiser l'automatisation de vos tests

Page Transactions as a new way to organize your testing automation Photo de Mateus Campos Felipe

L'ibis écarlate vibrant ( Eudocimus ruber), également connu sous le nom d'ibis rouge, est un membre frappant de la famille des oiseaux Threskiornithidae. Cette espèce aviaire tropicale orne les paysages d’Amérique du Sud et de certaines parties des Caraïbes. Bien que sa forme reflète celle des autres espèces d'ibis, son brillant plumage écarlate le distingue. Symbole de fierté nationale, c'est l'un des deux oiseaux nationaux de Trinité-et-Tobago, et son nom tupi-guarani, « guará », est même incorporé dans les noms de plusieurs municipalités côtières brésiliennes.

Guará : une implémentation Python du modèle de transactions de page

Guará, une bibliothèque Python, incarne le modèle de conception Page Transactions. Il s'agit moins d'un outil que d'un paradigme de programmation flexible applicable à divers pilotes d'automatisation au-delà de Selenium, englobant Linux, Windows et l'automatisation mobile.

L'objectif principal de ce modèle est de rationaliser l'automatisation des tests. S'inspirant des objets de page, des actions d'application et du scénario, Guará se concentre sur les actions des utilisateurs (transactions) au sein d'une application, telles que la connexion, la déconnexion ou la soumission de formulaires.

Cette approche améliore la lisibilité, la maintenabilité et l'adaptabilité du code de test d'automatisation sans nécessiter de nouveaux outils ou des abstractions complexes. Un avantage clé est sa nature indépendante du conducteur ; les testeurs ne sont pas obligés d'utiliser Selenium. Guará s'intègre parfaitement à Helium, Dogtail, PRA Python, Playwright ou tout autre pilote préféré. Aucun plugin supplémentaire ou connaissance spécialisée n'est nécessaire.

Pour réitérer : Guará est une implémentation Python du modèle de conception Page Transactions, donnant la priorité au modèle plutôt qu'à un outil autonome.

Guará utilise le modèle de commande (GoF) pour regrouper les interactions des utilisateurs (appuis sur des boutons, saisie de texte) en transactions. Bien qu'il soit qualifié de framework, ce n'est pas un nouvel outil.

Au lieu de se concentrer sur des éléments individuels de l'interface utilisateur, Guará met l'accent sur le parcours de l'utilisateur. La complexité est encapsulée dans les transactions, ce qui donne lieu à des instructions de test qui se lisent comme du langage naturel. Les testeurs peuvent également créer et intégrer des assertions personnalisées.

Guará en action : un exemple de changement de langue

Cet exemple montre un utilisateur qui change de langue sur une page Web :

from selenium import webdriver
from guara.transaction import Application
from guara import it, setup
import home

def test_language_switch():
    app = Application(webdriver.Chrome())

    # Open the application
    app.at(setup.OpenApp, url="https://example.com/")

    # Change language and assert
    app.at(home.ChangeToPortuguese).asserts(it.IsEqualTo, "Conteúdo em Português")
    app.at(home.ChangeToEnglish).asserts(it.IsEqualTo, "Content in English")

    # Close the application
    app.at(setup.CloseApp)

Chaque transaction réside dans sa propre classe (par exemple, ChangeToPortuguese), s'étendant AbstractTransaction. Les testeurs remplacent simplement la méthode do ; Guará s'occupe du reste.

from guara.transaction import AbstractTransaction

class ChangeToPortuguese(AbstractTransaction):
    def do(self, **kwargs):
        self._driver.find_element(By.CSS_SELECTOR, ".btn-pt").click()
        return self._driver.find_element(By.CSS_SELECTOR, ".content").text

Les journaux post-test affichent les transactions et les assertions :

<code>test_demo.py::test_language_switch 
2025-01-24 21:07:10 INFO Transaction: setup.OpenApp
2025-01-24 21:07:10 INFO  url: https://example.com/
2025-01-24 21:07:14 INFO Transaction: home.ChangeToPortuguese
2025-01-24 21:07:14 INFO Assertion: IsEqualTo
2025-01-24 21:07:14 INFO  Actual Data: Conteúdo em Português
2025-01-24 21:07:14 INFO  Expected: Conteúdo em Português
2025-01-24 21:07:14 INFO Transaction: home.ChangeToEnglish
2025-01-24 21:07:14 INFO Assertion: IsEqualTo
2025-01-24 21:07:14 INFO  Actual Data: Content in English
2025-01-24 21:07:14 INFO  Expected: Content in English
2025-01-24 21:07:14 INFO Transaction: setup.CloseApp</code>

Les appareils (installation/démontage) gèrent l'initialisation et l'achèvement des tests. Les outils de test standards comme pytest ou unittesting sont entièrement compatibles.

Avantages de l'utilisation du guará

  • Réutilisabilité améliorée du code : Chaque classe représente une transaction utilisateur complète.
  • Lisibilité améliorée : Le code ressemble à un anglais simple, ce qui facilite la collaboration.
  • Assertions personnalisables : Créez et partagez des assertions personnalisées.
  • Agnosticisme du pilote : Fonctionne avec divers outils d'automatisation au-delà de Selenium.
  • Application polyvalente : Automatise les API REST, les tests unitaires, les tests de bureau et mobiles.

Démarrer avec Guará

  1. Installer : pip install guara
  2. Créez des transactions en utilisant AbstractTransaction.
  3. Utilisez Application, at et asserts pour appeler des transactions.
  4. Exécutez des tests avec journalisation détaillée à l'aide de Pytest : python -m pytest -o log_cli=1 --log-cli-level=INFO

Conclusion

Guará propose une nouvelle approche de l'organisation du code de test, en donnant la priorité à la lisibilité, à la maintenabilité et à l'indépendance du pilote. Il favorise la collaboration et permet la création et le partage d'assertions personnalisées. Essayez Guará !

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
Quels types de données peuvent être stockés dans un tableau Python?Quels types de données peuvent être stockés dans un tableau Python?Apr 27, 2025 am 12:11 AM

PythonlistScanstoreanyDatatype, ArrayModulearRaySstoreOneType, et NumpyArraysArnumericalComptations.1) ListesaSaSatilebutlessmemory-Efficient.2) NumpyArraySareMory-EfficientForHomoGeneousData.3)

Que se passe-t-il si vous essayez de stocker une valeur du mauvais type de données dans un tableau Python?Que se passe-t-il si vous essayez de stocker une valeur du mauvais type de données dans un tableau Python?Apr 27, 2025 am 12:10 AM

Lorsque vous vous assumez de la valeur de la valeur de la datyypie de la datyylethonarray.

Quelle partie fait partie de la bibliothèque standard Python: listes ou tableaux?Quelle partie fait partie de la bibliothèque standard Python: listes ou tableaux?Apr 27, 2025 am 12:03 AM

PythonlistSaReparmentofthestandardLibrary, tandis que les coloccules de colocède, tandis que les colocculations pour la base de la Parlementaire, des coloments de forage polyvalent, tandis que la fonctionnalité de la fonctionnalité nettement adressée.

Que devez-vous vérifier si le script s'exécute avec la mauvaise version Python?Que devez-vous vérifier si le script s'exécute avec la mauvaise version Python?Apr 27, 2025 am 12:01 AM

TheScriptSrunning withthewrongpythonversionDuetOincorrectDefaultInterpretersettings.tofixThis: 1) vérifiez laefaultpythonversionusingpython - Versionorpython3 - Version.2)

Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Python?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Python?Apr 26, 2025 am 12:22 AM

PythonarRaySSupportVariousOperations: 1) SpecingExtractsSubSets, 2) A SPENDANT / EXPENSEDADDDSELLESS, 3) INSERtingPlaceSelelementsAtSpecific Positions, 4) RemovingdeleteSelements, 5) Sorting / ReversingChangeSes

Dans quels types d'applications les tableaux Numpy sont-ils couramment utilisés?Dans quels types d'applications les tableaux Numpy sont-ils couramment utilisés?Apr 26, 2025 am 12:13 AM

NumpyArraysAressentialFor Applications est en train de réaliser des objets de manière numérique et une datamanipulation.

Quand choisiriez-vous d'utiliser un tableau sur une liste dans Python?Quand choisiriez-vous d'utiliser un tableau sur une liste dans Python?Apr 26, 2025 am 12:12 AM

Useanarray.arrayoveralistinpythonwendealing withhomogeneousdata, performance-criticalcode, orinterfacingwithccode.1) homogeneousdata: ArraySaveMemorywithTypelements.2) performance-criticalcode

Toutes les opérations de liste sont-elles prises en charge par des tableaux, et vice versa? Pourquoi ou pourquoi pas?Toutes les opérations de liste sont-elles prises en charge par des tableaux, et vice versa? Pourquoi ou pourquoi pas?Apr 26, 2025 am 12:05 AM

Non, NotallListOperationsResaSupportedByArrays, andviceVersa.1) ArraysDonotsUpportDynamicOperationsLIKEAPENDORINSERSERTWithoutresizing, qui oblige la performance.2) Listes de la glate-enconteConStanttimecomplexityfordirectAccessLikEArraysDo.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel