Dans l'automatisation de tests nous utilisons souvent les objets app pour abstraire le code. Cela réduit la duplication de code et de repères. Si nous avons besoin de changer une section de code commune, nous pouvons la changer juste dans un seul objet app
, plutôt que d'avoir à la modifier dans 10 ou 20 fichiers de test. Cet article donne les bases de l'utilisation des objets app
.
Objets app : bien démarrer
L'objet app
est une classe Python qui contient des méthodes et des propriétés qui représentent les actions sur une page. Regardons comment nous pouvons utiliser ceci dans un exemple théorique.
homepage.py
Voici un cadre que nous pouvons utiliser pour l'app Homepage avec un peu de pseudo-code.
class Homepage: __init__(self, marionette): # Marionette is passed in so that the object can use it self.marionette = marionette def switch_to_homepage_frame(self): # Code for switching to System then to Homepage frame def tap_contacts_icon(self): # Code to tap the icon # Switch to Contacts frame # Now we return the Contacts app object as it has focus from contacts import Contacts return Contacts(self.marionette)
contacts.py
Et voici ce que nous pouvons utiliser pour l'app Contacts, avec encore du pseudo-code.
class Contacts: _new_contact_button = (By.ID, ‘id’) def tap_new_contact(self): # Tap new contact icon # Wait for event def type_given_name(self, name_string): # element.send_keys(name_string)
test_contacts.py
Pour comprendre comment cela fonctionne dans le contexte d'un test, voici un exemple rapide qui utilise la classe Homepage
:
from homepage import Homepage def test_add_contact(self): homepage = Homepage(self.marionette) homepage.switch_to_homepage_frame() contacts = homepage.tap_contacts_icon() contacts.tap_new_contact()
Mettre à jour vos tests
À partir de cela, nous voudrions vous pousser à mettre à jour tous vos fichiers de test pour utiliser le nouveau système d'objets app.
C'est une tâche difficile si vous n'êtes pas familier avec les structures de classes Python, vous aurez peut-être besoin de consulter quelques livres pour avoir des références et des exemples de code.
Quand vous aurez fini, idéalement vous aurez une séparation claire entre les fichiers de test :
TestBase
contiendra les méthodessetUp()
ettearDown()
- Les objets
app
contiendront les interactions et repères des pages - Vos fichiers de test contiendront uniquement les étapes de test.
Bonne chance !