Avez-vous déjà développé une application Android et la publier sur Google Play? Que ferez-vous si vous obtenez un avis d'utilisateur comme -
Lorsque vous publiez une application sur Google Play, elle doit être bien testée pour éviter les bugs potentiels. Il existe une tonne de scénarios de test à exécuter avant de publier une application. Pour économiser l'effort de test, vous avez besoin d'un outil de test. L'un des meilleurs outils de test pour l'application Android est Selendroid.
- Qu'est-ce que Selendroid?
- Pourquoi avons-nous besoin de Selendroid?
- Architecture de Selendroid
- Premiers pas avec Selendroid
- Configuration d'un environnement Selendroid
- Comment lancer Selendroid
- Commande de base Selendroid
- Commencez votre premier test avec Selendroid
Qu'est-ce que Selendroid?
Selendroid est un framework d'automatisation de test pour plusieurs types d'applications mobiles: application Android native et hybride et Web mobile .
Vous pouvez écrire les tests à l'aide des API client Selenium 2. Parce que Selendroid réutilise toujours l'infrastructure Selenium existante pour le Web
Selendroid est un outil de test puissant. Il peut être utilisé sur des émulateurs et des appareils réels
Pourquoi avons-nous besoin de Selendroid?
Selendroid est un excellent outil de test. Mais vous pouvez encore douter de son utilité.
Cette section présentera les fonctionnalités importantes du Selendroid pour répondre à la question de savoir pourquoi vous avez besoin de Selendroid.
- Vous pouvez tester l'application testée à l'aide de Selendroid sans aucune modification de l'application. Vous avez juste besoin du fichier binaire (APK) installé sur l'ordinateur. Pour installer le fichier binaire sur l'appareil, l'application de test et l'application mobile doivent être signées avec la même clé de signature
- L'application de test Selendroid peut interagir avec plusieurs appareils ou simulateurs simultanément. C'est un grand avantage de Selendroid. Vous pouvez donc tester votre application avec divers appareils Android pour vérifier la compatibilité.
- Selendroid peut simuler des actions homme-utilisateur sur une application, telles que toucher, glisser, glisser-déposer sur des appareils
- Vous pouvez changer les périphériques matériels (brancher et débrancher) pendant le test sans redémarrer ni arrêter le test. Selendroid reconnaît automatiquement les nouveaux appareils
- Correspondant à la version d'API Android up, Selendroid prend également en charge la nouvelle API Android (De l'API 10 à l'API 19)
- Selendroid dispose également d'un outil d'inspecteur intégré pour vous aider à identifier l'élément d'interface utilisateur d'une application en cours de test. Par exemple, le bouton ID, le champ de texte, la vue de texte…
Architecture de Selendroid
Selendroid est basé sur le framework d'instrumentation Android. Les tests Selendroid sont écrits sur la base de l'API client du pilote Web Selenium, de sorte qu'il prend en charge l'intégration complète avec les frameworks Selenium actuels.
La figure suivante décrit l'architecture de Selendroid
Selendroid contient 4 composants principaux:
- Client Web Driver - La bibliothèque client Java basée sur Selenium. Cette bibliothèque doit être installée sur l'ordinateur (qui est utilisé pour développer les cas de test)
- Selendroid-Server - Le serveur qui s'exécute dans l'application en cours de test sur un appareil Android ou un simulateur. Ce sont les principaux composants d'une architecture Selendroid
- Android Driver-App - Un pilote Android intégré, une application Web View pour tester le Web mobile.
- Selendroid-Standalone - Ce composant est utilisé pour installer le serveur Selendroid et l'application sous test (AUT)
Premiers pas avec Selendroid
Vous connaissez déjà l'importance du Selendroid. Maintenant, mettons la main à la pâte avec Selendroid.
Il y a 3 étapes à suivre avant le premier test avec Selendroid
Configuration d'un environnement Selendroid
Selendroid peut fonctionner sur Windows, Linux et Mac OS. Dans ce tutoriel, nous allons configurer Selendroid dans Windows OS.
Avant d'utiliser Selendroid, vous devez d'abord installer le package suivant
- SDK Java (minimum 1,6)
Vous devez accepter le contrat de licence et télécharger le programme d'installation java (choisissez la base x64 ou x86 sur votre système d'exploitation)
Téléchargez et installez le SDK Java en tant que logiciel normal
- Dernière version du SDK Android
- Votre ordinateur doit avoir au moins un appareil virtuel Android (AVD) ou un appareil Android réel branché sur le PC.
- Selendroid Standalone avec dépendances, Selendroid Client et Selenium Client
- Logiciel Eclipse
- Configurer JAVA_HOME et ANDROID_HOME
Étape 1) Dans la fenêtre, cliquez avec le bouton droit sur Ordinateur -> Propriétés -> Paramètres système avancés
Étape 2) Affichage de la fenêtre Propriétés système, sélectionnez l'onglet Avancé -> Variables d'environnement
Étape 3) La fenêtre Environnement s'affiche, cliquez sur Nouveau -> Entrez une variable ANDROID_HOME comme suit
La valeur de la variable est le chemin vers android-sdks que vous avez déjà installé.
Recherchez la variable système Path -> Edit -> Ajoutez la ligne suivante après la ligne courante
Similaire à ANDROID_HOME, ajoutez une nouvelle variable JAVA_HOME avec la valeur ci-dessous
La valeur est le chemin de votre installation Java JDK
Étape 4) Redémarrez votre PC -> Terminé
Comment lancer Selendroid
Étape 1) Faire tester une application
Vous pouvez utiliser l'application de test Selendroid existante pour vérifier le fonctionnement de Selendroid (lien vers l'exemple d'application en cours de test)
Une fois le téléchargement terminé, copiez ce fichier APK et le fichier jar Selendroid Standalone ci-dessus dans un dossier portant le nom « Guru99».
Étape 2) Lancez le Selendroid
Ouvrez le terminal sous Windows et accédez au dossier Guru99 créé à l'étape 1.
Exécutez la commande suivante
La sortie s'affichera comme suit
Après avoir exécuté cette commande, le serveur HTTP Selendroid-standalone démarre! Le numéro de port par défaut de ce serveur est 4444. Tous les périphériques matériels, ainsi que les périphériques virtuels Android, seront analysés et reconnus automatiquement. Selendroid identifiera la version cible d'Android et la taille de l'écran de l'appareil.
Pour vérifier la version cible d'Android ainsi que les informations sur l'appareil, vous pouvez lancer l'URL suivante sur un navigateur:
http: // localhost: 4444 / wd / hub / status.
Commande de base Selendroid
Cette section vous présente une ligne de commande de base Selendroid-Standalone. Vous pouvez les utiliser pour configurer l'environnement de test Selendroid
- Réglage du port de Selendroid
Le port par défaut de Selendroid est 4444. Mais vous pouvez passer à un autre port en ajoutant un paramètre à la commande pour lancer Selendroid
Paramètre: -port [numéro de port]
Par exemple:
Dans la commande ci-dessus, 5555 est le nouveau port.
Ainsi, l'URL permettant de vérifier la version cible d'Android est modifiée en: http: // localhost: 5555 / wd / hub / status
- Spécifiez l'emplacement de l'application testée (fichier APK binaire). Selendroid avait souvent besoin du chemin absolu pour ce fichier
Paramètre: -app [chemin du fichier]
Par exemple:
Dans la commande ci-dessus, le Selendroid trouve automatiquement la base du fichier binaire sur le "C: \ Guru99App.apk" pour obtenir les informations de l'application testée.
Vérifiez l'URL http: // localhost: 4444 / wd / hub / status, vous verrez ces informations
- Modifiez le port utilisé par le Selendroid pour communiquer avec le serveur d'instrumentation. Selendroid utilise le port 8080 par défaut
Paramètre: -selendroidServerPort [numéro de port]
Exemple
Le port est maintenant changé en 9000
- Modifiez le délai pour démarrer les émulateurs. L'unité est en millisecondes.
Paramètre: -timeoutEmulatorStart
Par défaut, Selendroid attendra 300 000 millisecondes jusqu'à ce que l'émulateur démarre. Vous pouvez passer au nouveau délai (200 000 ms) par commande
Passé ce délai, si l'émulateur ne peut pas démarrer, le Selendroid lancera l'erreur d'exception (une erreur s'est produite lors de la recherche de périphériques / émulateurs.) Puis arrêtez de fonctionner.
- Lorsque vous lancez la commande Selendroid sur le terminal, vous verrez un journal imprimé à l'écran. Vous pouvez modifier le type de journal que vous voyez en ajoutant le paramètre suivant
Paramètre: -logLevel [type de journal]
Les valeurs de niveau de journalisation sont ERROR, WARNING, INFO, DEBUG et VERBOSE. Par défaut: ERROR.
Par exemple, définissez Selendroid pour imprimer uniquement le journal des AVERTISSEMENTS, vous pouvez utiliser cette commande
Le Selendroid n'imprime que le journal des AVERTISSEMENTS
Commencez votre premier test avec Selendroid
Cette section est un guide étape par étape pour créer votre premier script de test à l'aide de Selendroid
Supposons que nous ayons une application Android sous le nom de test Guru99App. L'application comprend un champ de texte et un nom de bouton "Afficher le texte".
TÉLÉCHARGEZ L'APK ICI
Nous devons exécuter le scénario de test suivant en utilisant Selendroid
Cas de test |
État |
Production attendue: |
|
Le binaire de l'application testée est disponible Un appareil est connecté au PC |
Le texte "Afficher le texte ici" est remplacé par le texte quel utilisateur saisit dans un champ de texte |
Étape 1) Créez un projet Java dans Eclipse
Étape 2) Ajoutez le sélénium et le fichier jar Selendroid dans les environnements d'éclipse
Cliquez avec le bouton droit sur le projet Guru99Test -> Chemin de construction -> Ajouter des archives externes
Accédez au dossier qui a stocké les fichiers jar
Il y a 3 fichiers jar doivent être ajoutés
- selendroid-client-0.10.0.jar: bibliothèque client Selendroid java
- selendroid-standalone-0.11.0-with-dependencies: bibliothèque de serveurs autonomes Selendroid
- selenium-java-2.40.0.jar: bibliothèque de pilotes Web Selenium
Sélectionner tout -> Choisissez Ouvrir pour ajouter un fichier jar au projet
Étape 3) après avoir ajouté la bibliothèque ci-dessus, ces bibliothèques seront ajoutées aux bibliothèques de référence du projet de test. Un testeur peut utiliser les API de ces bibliothèques pour développer le programme de test
Créez le package "com.guru.test" et ajoutez le fichier java "Guru99Test.java" comme ci-dessous
Clic droit Guru99Test -> Nouveau -> Package
Tapez com.guru.test dans le champ Nom de la boîte de dialogue Nouveau package Java à Terminer
L'Eclipse créera des dossiers de liste et des sous-dossiers comme celui-ci dans la structure du code source
Étape 4) Installez TestNG pour Eclipse
Dans Eclipse, Aide -> Installer un nouveau logiciel, dans la boîte de dialogue Installer, cliquez sur Ajouter et entrez ce qui suit
- Nom: TestNG
- Emplacement: http://selendroid.io/
Appuyez sur OK -> Suivant pour installer le TestNG
Étape 5) Copiez le Guru99App.apk dans le dossier de Test App
Étape 6) Obtenez l'ID d'une application en cours de test.
Supposons que nous ayons un nom de fichier APK Guru99App.apk. Suivez l'étape qui est décrite dans la section précédente, exécutez la commande sur le terminal
Ouvrir le lien suivant dans un navigateur
http: // localhost: 4444 / wd / hub / status.
Les informations de l'appareil s'affichent, copiez la valeur appId "com.guru99app: 1.0"
Étape 7) Ouvrez le fichier Guru99Test.java (dans l'exemple de code) et modifiez comme suit
Pour créer une nouvelle session de test avec Selendroid, vous devez fournir l'identifiant de l'application au format: com.guru99app: 1.0. Cet identifiant d'application peut être identifié à l'étape 6. Si vous ne définissez pas l'identifiant d'application correspondant à l'appareil Android, la session de test générera une erreur et ne démarrera pas.
Après avoir initialisé le périphérique trouvé, Selendroid crée un serveur selendroid personnalisé et installe le serveur Selendroid dessus
Selendroid installe également l'application testée et démarre le serveur selendroid sur l'appareil
Une fois la session de test initialisée avec succès, la commande de test est lancée sur un périphérique. (Tels que la saisie de texte, appuyez sur le bouton
…). Si le test ajoute la session de test, l'émulateur s'arrêtera automatiquementÉtape 8) Démarrez la nouvelle session de test
Lancez le serveur Selendroid en utilisant la commande suivante sur le terminal comme l'étape 6
Après le démarrage du serveur Selendroid, ouvrez l'exemple de projet de test Guru99test sur Eclipse, définissez un point d'arrêt à la ligne 77 sur le fichier Guru99Test.java en double-cliquant sur la ligne 77 -> Un point s'affichera comme ci-dessous
Démarrez une session de test par un clic droit sur le projet Guru99Test -> Debug As -> Testng Test.
Une session de test commencera comme ci-dessous
Étape 9) Obtenez l'ID de l'élément GUI d'une application en cours de test
Une fois la session de test démarrée avec succès, ouvrez le navigateur, accédez à l'URL http: // localhost: 4444 / inspector
Vous verrez que l'application en cours de test est lancée comme ci-dessous
Utilisez le survol de la souris sur chaque élément de l'interface utilisateur de AUT (Button, TextField, Text Label), l'ID de chaque élément sera mis en surbrillance dans le volet de droite
Après cette étape, vous pouvez obtenir l'ID de chaque élément de l'interface utilisateur ci-dessus
- Bouton Afficher l'ID du texte: " btnShow "
- ID du champ de texte: " edtText "
- Identifiant du texte de l'étiquette: " txtView "
Ces identifiants seront utilisés à l'étape suivante
Étape 10) Entrez le programme de test comme ci-dessous
Un programme de test utilisant Selendroid comprend 3 sections
Test de configuration:
Voici le code pour le test de configuration, il configurera la condition pour une session de test.En cas d'erreur, le Selendroid lèvera l'exception et l'application de test s'arrêtera.
Le code comprend les commentaires pour expliquer chaque déclaration.
package com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;import io.selendroid.SelendroidLauncher;import io.selendroid.device.DeviceTargetPlatform;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.testng.Assert;import org.testng.annotations.AfterSuite;import org.testng.annotations.BeforeSuite;import org.testng.annotations.Test;/ *** Application de test @author Guru99 utilisant Selendroid* Application en cours de test: Guru99App** /Publiqueclass Guru99Test {// Déclarer la variable du pilote Webpilote WebDriver privé;/ *** Configurer l'environnement avant de tester* @throws Exception* /@BeforeSuitePubliquevoid setUp () lève une exception {// Démarre selendroid-standalone pendant le testSelendroidConfiguration config = new SelendroidConfiguration ();// Ajouter le selendroid-test-app au serveur autonomeconfig.addSupportedApp ("Guru99App.apk");// démarrer le serveur autonomeSelendroidLauncher selendroidServer = nouveau SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Créer les capacités selendroidSelendroidCapabilities capa = new SelendroidCapabilities ();// Spécifiez pour utiliser l'application de test de selendroidcapa.setAut ("com.guru99app: 1.0");// Spécifiez pour utiliser l'API de l'appareil Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Ne demandez pas de simulateur, utilisez un appareil réelcapa.setEmulator (faux);//capa.wait(10000000);// Créer une instance du pilote Selendroidpilote = nouveau SelendroidDriver (capa);}
Exécuter le test
Voici le code pour exécuter un test. Le code comprend les commentaires
Voici à nouveau les étapes du test
- Entrez le texte "Hello Guru"
- Cliquez sur le bouton Afficher le texte
- Attendez un peu
- Vérifiez que l'application affiche le texte que l'utilisateur saisit dans un champ de texte (par exemple, affichez le texte «Hello Guru»)
/ *** Commencez à exécuter le cas de test* 01. Entrez le texte "Selendroid" dans le champ de texte* 02. Appuyez sur le bouton OK* @throws Exception* /@TestPubliquevoid selendroidTest () jette une exception {// Imprimer le journalSystem.out.print ("Démarrer l'exécution du test");// Trouver le champ de texte de saisie à l'écran// L'identifiant de ce champ de texte a été obtenu à partir de l'étape 9WebElement inputField = driver.findElement (By.id ("edtText"));// Vérifiez que le champ de texte est activé pour que l'utilisateur puisse saisir du texteAssert.assertEquals ("vrai", inputField.getAttribute ("activé"));// Entrez un texte dans le champ de texteinputField.sendKeys ("Bonjour Guru");// cliquez sur le bouton Afficher le texte// L'identifiant de ce bouton provient de l'étape 9Bouton WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Temps de retard pour prendre effetThread.sleep (5000);// Trouver le libellé "Afficher le texte ici" à l'écran// L'identifiant de cette étiquette a été obtenu à partir de l'étape 9WebElement txtView = driver.findElement (By.id ("txtView"));// Affiche le texte à l'écranChaîne attendue = txtView.getText ();// Vérifier que le texte que l'utilisateur saisit dans le champ de texte est le même que celui affiché à l'écranAssert.assertEquals (attendu, inputField.getText ());}
Terminer le test
Le code suivant terminera le test en arrêtant le pilote Selendroid.
/ *** Arrêtez le pilote Selendroid** /@AfterSuitePubliquevoid tearDown () {driver.quit ();}
Vous pouvez voir les détails dans l'exemple de code inclus dans cet article.
Étape 10) Connectez l'appareil Android au PC via un câble USB. Points à observer -
- Veuillez vous assurer qu'aucun verrouillage d'écran n'est configuré sur l'appareil.
- Les périphériques doivent être connectés via USB à l'ordinateur sur lequel le composant selendroid-standalone est exécuté.
- L'appareil doit installer au moins l'API version cible d'Android 10
Étape 11) Exécutez l'application de test: Faites un clic droit sur Guru99test -> Exécuter en tant que -> TestNG test
Étape 10) Le script démarre comme suit
Étape 12) Une fois l'exécution du test terminée, TestNG auto génère le rapport de test comme suit
Bon travail, vous avez terminé le test maintenant.
Résumé
Résumé
- Selendroid est un outil très puissant pour tester l'application native Android, l'application hybride ainsi que l'application Web.
- Il peut être utilisé sur de vrais appareils ainsi que sur le simulateur.
- Il vous permet également d'exécuter des tests en parallèle en exécutant un test sur plusieurs appareils.
- L'ensemble de la suite Selendroid comprend quatre composants:
- Client Web Driver,
- Serveur Selendroid,
- Application de pilote Android
- Selendroid-stand alone
- Pour utiliser Selendroid, vous devez installer Java JDK, Android SDK et Eclipse.