Maison >développement back-end >Tutoriel Python >Les transactions de page comme nouvelle façon d'organiser l'automatisation de vos tests
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 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.
Cet exemple montre un utilisateur qui change de langue sur une page Web :
<code class="language-python">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)</code>
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.
<code class="language-python">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</code>
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.
pip install guara
AbstractTransaction
.Application
, at
et asserts
pour appeler des transactions.python -m pytest -o log_cli=1 --log-cli-level=INFO
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!