Une introduction à Appium

Ce que vous allez créer

Les tests automatisés sont connus pour être très précieux pour tout programmeur. C’est un outil qui permet de simuler les actions d’une personne sur un appareil spécifique et il est favorisé car il manque les erreurs ou les limitations de vitesse d’une personne réelle.

Appium est un outil de test automatisé, basé sur le cadre de test populaire Sélénium, qui permet des tests automatisés sur les applications natives iOS et Android. Sa principale limitation est qu’il n’est conçu que pour OS X et Linux.

Dans mon bureau, nous utilisons Appium pour les tests de régression. Les tests de régression consistent simplement à tester les fonctionnalités existantes pour s’assurer qu’elles continuent à fonctionner comme prévu à mesure que le produit se développe. Il est très important de savoir quand les fonctionnalités sont interrompues pour que la progression puisse se poursuivre de manière linéaire.

Dans ce didacticiel, je vais vous montrer comment configurer Appium, générer des scripts automatisés et créer quelques tests de connexion simples pour une application Android.

1. Configuration Appium

Obtenir Appium ne prend pas beaucoup de temps, mais il est facile de gâcher la configuration. La première fois que j’ai installé Appium, j’ai téléchargé naïvement l’application (.dmg) avant de la configurer sur la ligne de commande. Il s’avère que si vous téléchargez d’abord l’application, il peut être assez difficile d’obtenir Appium sur la ligne de commande. Commencez donc par récupérer Appium depuis la ligne de commande.

Dans les étapes suivantes, je suppose que vous avez homebrew installé et que vous utilisez un OS X. Si vous n’avez pas de nœud installé, exécutez la commande suivante à partir de la ligne de commande:

Ensuite, installez Appium à l’aide du gestionnaire de packages de nœuds. Il est important que vous fassiez ne pas utilisation sudo pour ces commandes ou Appium ne fonctionnera pas.

Si vous ne disposez pas des autorisations nécessaires pour utiliser ces commandes, vous devrez chmod eux-mêmes plutôt que sudo. L’emplacement du dossier peut être différent pour vous, en fonction de votre configuration.

Pour exécuter le serveur Appium et voir si vous l’avez configuré correctement, exécutez la commande suivante à partir de la ligne de commande.

Appium sur la ligne de commande vous permet d’exécuter des tests Selenium non seulement sur des simulateurs Android et iOS, mais également sur des appareils physiques. L’application dispose d’une interface utilisateur agréable qui vous permet d’exécuter une version simulée de votre AUT (Application en cours de test) et générez facilement du code Selenium pour des actions simples sur l’application. Vous utiliserez principalement l’application dans la phase initiale de création des tests, puis vous utiliserez la ligne de commande pour exécuter les tests.

Pourquoi n’utilisons-nous pas l’application pour tout le flux? Si vous prévoyez d’exécuter une suite de tests sur divers appareils de manière automatisée, peut-être selon un calendrier, il sera essentiel de pouvoir exécuter Appium à partir de la ligne de commande.

L’application Appium peut être téléchargée depuis Bitbucket. Après avoir téléchargé l’image disque, double-cliquez dessus et faites glisser l’application Appium sur votre Applications dossier.

2. Configuration AUT

Ensuite, nous avons besoin d’une application à tester. Pour cette introduction à Appium, nous allons tester une application Android native que j’appelle AUT. C’est une application de connexion et de déconnexion très simple. En cas de connexion réussie, cela nous amènera à une page qui nous indique que nous nous sommes connectés avec succès, affichant un bouton de déconnexion.

De nombreuses applications ont une fonction de connexion, nous allons donc créer une suite de base de tests de connexion pour tester les résultats possibles d’un utilisateur interagissant avec le flux de connexion. Ce n’est pas tant que nous voulons nous assurer que la connexion fonctionne, nous voulons tester la réponse de l’application aux différentes façons dont un utilisateur peut ne pas se connecter, par exemple en entrant des informations d’identification invalides.

Comme il est impossible de posséder tous les appareils Android disponibles, je teste généralement sur des appareils simulés. Cela me permet de changer facilement quel appareil est simulé pour les tests de compatibilité. Pour obtenir un simulateur Android, obtenez Gestionnaire AVD et configurez n’importe quel appareil Android de votre choix, compatible avec le niveau d’API 21.

  1. Téléchargez l’APK depuis GitHub.
  2. Avoir JDK, si vous ne l’avez pas déjà.
  3. Obtenir le SDK Android avec AVD Manager.
  4. Met le ANDROID_HOME, JAVA_HOME, et PATH variables d’environnement dans votre .profil ou .bash_profile (ou .zshrc si vous utilisez zsh).

ANDROID_HOME doit pointer vers l’emplacement du sdk Android pendant que JAVA_HOME doit pointer vers l’emplacement du JDK.

C’est ainsi que vous pouvez ajouter ces chemins à votre .bash_profile. Notez que les chemins peuvent être différents pour vous.

Ensuite, créez un appareil simulé avec AVD Manager. Assurez-vous d’activer Utiliser le GPU hôte et définissez le Tas de VM à 64.

Pour accélérer le fonctionnement du simulateur, installez HAX à partir de Site Web d’Intel.

3. Inspecteur Appium

Il est temps d’utiliser le Inspecteur Appium et commencez à écrire des tests. Lancez l’application Appium. Dans réglages généraux, décocher Vérifier les mises à jour, Application de prélancement, Remplacer les sessions existantes, et Tuer les processus à l’aide du port du serveur avant le lancement.

Paramètres généraux Appium

Ensuite, vérifiez le Bouton radio Android et cliquez sur le Icône Android. Vérifier Chemin de l’application et définissez sa valeur sur l’emplacement où vous avez placé l’APK de l’application à tester. Vérifier Lancez AVD et sélectionnez l’appareil simulé. Choisir 5.1 Lollipop (API niveau 21) dans le menu déroulant de Version de la plateforme.

Sélection d'Android
Paramètres Android

Frappé lancement et attendez que l’application se lance sur l’appareil simulé.

Vous pouvez rencontrer un problème où l’application se bloque lors du déverrouillage car nous utilisons la toute nouvelle API 21. Pour résoudre ce problème, relancez l’application après avoir déverrouillé manuellement l’écran simulé.

Une fois que l’appareil simulé a lancé l’application, appuyez sur le bouton Loupe icône pour lancer l’inspecteur.

Inspecteur Appium

Voici l’inspecteur Appium. C’est un outil très pratique pour vous aider à commencer à écrire des tests pour Appium. Essentiellement, l’inspecteur vous permet d’effectuer des actions sur l’application Android native et d’enregistrer vos actions sous forme de code généré.

Les cases sur le côté gauche de l’inspecteur constituent le Navigateur UI et vous permettent de parcourir les éléments de l’activité en cours. En bas se trouvent les options d’interaction avec l’élément sélectionné dans les boîtes d’éléments. Les détails de l’élément sélectionné sont affichés dans Détails. Si vous faites quelque chose manuellement à la simulation, vous devez appuyer sur Rafraîchir pour que l’inspecteur reconnaisse ces changements. Si vous souhaitez commencer à enregistrer vos actions dans le code, vous devez appuyer sur le bouton Record bouton.

Créons le code nécessaire pour une connexion réussie. L’application dispose de deux connexions codées en dur, [email protected]:mot de passe et [email protected]: mot de passe2.

  1. En cliquant Record et observez qu’il y a maintenant du code sous l’inspecteur. Vous pouvez choisir différentes langues pour afficher cela. Pour ce didacticiel, nous utiliserons Python.
  2. dans le Navigateur UI accédez à android.widget.LinearLayout / android.widget.FrameLayout /
    android.widget.LinearLayout / android.widget.ScrollView /
    android.widget.LinearLayout / android.widget.EditText[1].
  3. Cliquez sur Texte en bas et entrez [email protected].
  4. Cliquez sur Envoyer des clés, et observez que le code ci-dessous a maintenant une nouvelle ligne.
L'inspecteur envoie des clés par courrier électronique

5. Dans le Navigateur UI, accédez à android.widget.LinearLayout /
android.widget.FrameLayout / android.widget.LinearLayout /
android.widget.ScrollView / android.widget.LinearLayout /
android.widget.EditText[2]

6. Entrez le mot de passe.

Inspecteur envoie des clés au mot de passe

7. Cliquez sur Envoyer des clés.

8. Dans le Navigateur UI, accédez à android.widget.LinearLayout / android.widget.FrameLayout /
android.widget.LinearLayout / android.widget.ScrollView /
android.widget.LinearLayout / android.widget.Button[1]

9. Cliquez sur Toucher en bas, suivi de Robinet. Nous sommes maintenant à une nouvelle activité alors le Navigateur UI a changé.

Inspecteur Appuyez sur Connexion

10. Frapper Rafraîchir puisque l’inspecteur n’a probablement pas réalisé que le simulateur a dépassé l’écran de chargement maintenant.

Inspecteur non actualisé

11. Dans le navigateur de l’interface utilisateur, accédez à android.widget.LinearLayout / android.widget.FrameLayout /
android.widget.RelativeLayout / android.widget.Button[1].

12. Cliquez sur Robinet.

Inspecteur Tap Logout

Dans le code ci-dessous, nous avons tout le code pour simuler une connexion réussie. N’hésitez pas à jouer un peu plus avec l’inspecteur. Plus tard dans ce didacticiel, nous écrirons également des tests pour les connexions infructueuses.

4. Tests de connexion

Nous allons maintenant écrire quelques tests en utilisant Appium pour nous assurer que notre page de connexion fonctionne comme il se doit. Si vous n’avez pas Python, vous pouvez le télécharger à partir du site officiel.

Pour utiliser le pilote Web Appium avec Python, vous devez également obtenir le Bibliothèques Appium pour Python.

  1. Téléchargez et désarchivez le fichier .gz.
  2. Ouvrez le fichier .gz, accédez à l’emplacement sur la ligne de commande et exécutez la commande suivante:

Avant de commencer à écrire les tests, nous devrons décider quels cas de test nous allons créer. Une bonne suite de tests doit prendre en compte toutes les interactions possibles. Commençons par un simple.

  1. Une connexion réussie.
  2. Une connexion infructueuse.

Tout d’abord, nous devons importer tout ce dont nous avons besoin pour le test. Nous utiliserons le test unitaire Python intégré pour exécuter nos tests. L’élément Appium est le pilote Web, que nous utiliserons pour interagir avec le serveur Appium.

Nous créons une classe LoginTests pour définir notre suite de tests. le setUp fonction de notre test unitaire s’exécute au début du test. Dans cette méthode, nous définissons les fonctionnalités souhaitées, telles qu’Android et le chemin de l’application. Nous initialisons ensuite le pilote Web self.wd en vous connectant au serveur Appium.

le tearDown La fonction s’exécute après un test et se déconnecte du serveur Appium.

Le bloc de code ci-dessus est principalement copié à partir du code de l’inspecteur Appium. Nous effectuons les actions requises sur l’interface utilisateur pour une connexion réussie. dans le try clause, nous essayons de trouver la textView élément qui affiche le texte Connexion réussie! Si une exception est levée, le test échoue.

Pour échouer au test de connexion, nous utilisons délibérément un mot de passe incorrect, mauvais mot de passe, en espérant que la connexion échoue. Nous vérifions si nous pouvons trouver l’élément du bouton de connexion et échouons au test si nous ne le pouvons pas.

C’est la fonction principale nécessaire pour exécuter nos tests. Il n’y a rien de mal avec notre premier cas de test. Cependant, une connexion infructueuse peut signifier plusieurs choses. Lorsqu’un utilisateur ne parvient pas à se connecter, nous voulons nous assurer que l’interface utilisateur les aide à comprendre comment corriger leur erreur pour une meilleure expérience utilisateur.

  1. Une connexion réussie.
  2. Connectez-vous avec un mot de passe incorrect.
  3. Connectez-vous avec une adresse e-mail incorrecte.
  4. Connectez-vous sans mot de passe.
  5. Connectez-vous sans e-mail.
  6. Connectez-vous avec un e-mail non valide.

Nous avons étendu nos cas de test de deux à six cas de test pour la page de connexion. Cela peut sembler beaucoup pour une fonctionnalité aussi simple, mais c’est absolument nécessaire.

La partie la plus difficile de la rédaction de tests est de vérifier les attentes. Par exemple, le test de connexion ayant échoué vérifie si un élément existe dans l’interface utilisateur. Cela signifie que les tests de connexion reposent entièrement sur l’interface utilisateur pour nous dire si les exigences sont remplies.

Cela pourrait être une mauvaise chose car l’interface utilisateur ne nous dit pas tout sur le code sous-jacent. Cependant, le but est de tester l’interface utilisateur afin d’avoir une attente de vérification qu’un élément d’interface utilisateur existe est correct. Nous pourrions rendre notre attente plus approfondie en vérifiant que chaque élément attendu est présent sur la page ou même en vérifiant que chaque élément est correctement positionné.

Conclusion

Nous avons appris à:

  • configurer Appium
  • utiliser l’inspecteur d’Appium pour vous aider à créer des scripts de test automatisés
  • utiliser l’automatisation pour créer quelques tests de connexion simples pour une application Android

Il y a beaucoup plus à apprendre sur Appium et les tests. L’étape suivante pourrait être de créer un système de test intégré en continu qui utilise les capacités d’Appium pour vos propres applications.

En relation :  5 applications de journal alimentaire pour suivre ce que vous mangez et comment cela vous affecte
Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.