Selendroid Tutoriel pour débutants avec exemple
Avez-vous déjà développé un Android application et la publier sur Google Play ? Que ferez-vous si vous recevez 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 qui doivent être exécutés avant de publier une application. Pour sauvegarder le Contrôle de qualité effort, vous avez besoin d’un outil de test. L'un des meilleurs outils de test pour Android l'application est Selendroid.
Qu’est ce qu' Selendroid?
Selendroid est un framework d'automatisation de tests pour plusieurs types d'applications mobiles : indigène et roues hybrides Android application et mobile web.
Vous pouvez écrire les tests en utilisant le Selenium 2 API clientes. Parce que Selendroid toujours des réutilisations de l'existant Selenium infrastructure pour le web
Selendroid est un outil de test puissant. Il peut être utilisé sur émulateurs et réel dispositifs
Pourquoi avons-nous besoin Selendroid?
Selendroid est un excellent outil de test. Mais on peut encore douter de son utilité.
Cette section présentera les caractéristiques importantes du Selendroid pour répondre à la question pourquoi vous avez besoin Selendroid.
- Vous pouvez tester l'application testée en utilisant Selendroid sans aucune modification de l'application. Vous avez juste besoin du fichier binaire (APK) installé sur l'ordinateur. Afin d'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.
- Selendroid L'application de test peut interagir avec plusieurs appareils ou simulateurs simultanément. C'est un grand avantage Selendroid. Vous pouvez donc tester votre application avec différents Android appareils pour vérifier la compatibilité.
- Selendroid peut simuler des actions d'un utilisateur humain 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 au Android Version API vers le haut, Selendroid prend également en charge le nouveau Android API (De l'API 10 à l'API 19)
- Selendroid dispose également d'un outil d'inspection 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 texte…
Selendroid Architecture
Selendroid est basée sur la Android cadre d'instrumentation. Selendroid les tests sont écrits sur la base du Selenium API client du pilote Web, elle prend donc en charge l'intégration complète avec les versions actuelles Selenium cadres.
La figure suivante décrit l'architecture de Selendroid
Selendroid contient 4 composants majeurs :
- Client de pilote Web – Le Java bibliothèque client basée sur Selenium. Cette bibliothèque doit être installée sur l'ordinateur (qui sert à développer les cas de tests)
- Selendroid-Serveur – Le serveur qui s'exécute dans l'application testée sur Android appareil ou simulateur. Ce sont les principaux composants d'un Selendroid architecture
- Android Driver-App - Un intégré Android pilote, application Web View pour tester le Web mobile.
- Selendroid-Standalone – Ce composant est utilisé pour installer le Selendroid serveur et l'application testée (AUT)
Commencer avec Selendroid
Vous connaissez déjà l'importance du Selendroid. Maintenant, mettons nos mains dans le cambouis avec Selendroid.
Il y a 3 étapes à effectuer avant le premier test avec Selendroid
Mettre en place un Selendroid sûr, heureux et sain
Selendroid peut fonctionner sur Windows, Linux et MacOS. Dans ce tutoriel, nous allons configurer Selendroid dans le système d'exploitation Windows.
Avant d'utiliser Selendroid, vous devez d'abord installer le package suivant
- Java SDK (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 Java SDK comme logiciel normal
- La dernière version de Android SDK
- Votre ordinateur doit avoir au moins un Android Dispositif virtuel (AVD), ou un véritable Android appareil branché sur le PC.
- Selendroid Autonome avec dépendances, Selendroid Projet et Selenium Projet
- Eclipse software
- Configurer JAVA_HOME et ANDROID_HOME
Étape 1) Sous Windows, 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 d'accès aux SDK Android que vous avez déjà installés.
Rechercher la variable système Path -> Modifier -> Ajoutez la ligne suivante après la ligne actuelle
Semblable à ANDROID_HOME, ajoutez une nouvelle variable JAVA_HOME avec la valeur ci-dessous
La valeur est le chemin vers votre Java Installation du JDK
Étape 4) Redémarrez votre PC -> OK
Comment lancer Selendroid
Étape 1) Obtenir une application en test
Vous pouvez utiliser l'existant Selendroid tester l'application pour vérifier comment Selendroid travaux (Lien pour un exemple d'application testée)
Une fois le téléchargement terminé, copiez cet APK et ce qui précède Selendroid Pot autonome fichier dans un dossier portant le nom «Gourou99″
Étape 2) Lancez le Selendroid
Ouvrez le terminal sur Windows & 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, Selendroid-le serveur HTTP autonome démarre ! Le numéro de port par défaut de ce serveur est 4444. Tous les périphériques matériels, ainsi que Android Le périphérique virtuel sera analysé et reconnu automatiquement. Selendroid identifiera le Android version cible et taille de l’écran de l’appareil.
Pour vérifier le Android la version cible ainsi que les informations sur l'appareil, vous pouvez lancer l'URL suivante sur un navigateur : http://localhost:4444/wd/hub/status
.
Selendroid commande de base
Cette section vous présente quelques notions de base Selendroid-Ligne de commande autonome. Vous pouvez les utiliser pour configurer le Selendroid environnement de test
- Définition 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.
Donc l'URL pour vérifier le Android la version cible est remplacée par : http://localhost:5555/wd/hub/status
- Spécifiez l'emplacement de l'application testée (fichier APK binaire). Selendroid il fallait souvent le chemin absolu de ce fichier
Paramètre : -app [chemin du fichier]
Par exemple :
Dans la commande ci-dessus, le Selendroid recherche automatiquement la base du fichier binaire sur « C:\Guru99App.apk » pour obtenir les informations de l'application testée.
Vérifiez l'URL
http://localhost:4444/wd/hub/status
, vous verrez cette information - Changez le port le Selendroid utilise 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 d'attente pour démarrer les émulateurs. L'unité est la milliseconde.
Paramètre : -timeoutEmulatorStart
Par défaut, Selendroid attendra 300,000 200,000 millisecondes jusqu'à ce que l'émulateur démarre. Vous pouvez passer à un nouveau délai d'attente ( ms) par commande
Passé ce délai expiré, 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êtera de fonctionner
- Lorsque vous démarrez le Selendroid sur le terminal, vous verrez un journal imprimé sur 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 du niveau de journalisation sont ERREUR, AVERTISSEMENT, INFO, DEBUG et VERBOSE. Par défaut : ERREUR.
Par exemple, définissez Selendroid pour imprimer le journal AVERTISSEMENT uniquement, vous pouvez utiliser cette commande
La Selendroid imprimer uniquement 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 un Android application sous le nom de test Guru99App. L'application comprend un champ de texte et un nom de bouton « Afficher le texte ».
Nous devons exécuter ce qui suit Cas de test 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 « Texte à afficher ici » est remplacé par le texte
quel utilisateur saisit dans un champ de texte |
Étape 1) Créer un Java projet en Eclipse
Étape 2) Ajoutez du sélénium et Selendroid fichier jar dans les environnements eclipse
Cliquez avec le bouton droit sur le projet Guru99Test -> Chemin de construction -> Ajouter un externe Archives
Accédez au dossier dans lequel les fichiers jar sont stockés
Il y a 3 fichiers jar qui doivent être ajoutés
- selendroid-client-0.10.0.jar : Selendroid bibliothèque cliente Java
- selendroid-standalone-0.11.0-avec-dépendances : Selendroid bibliothèque de serveur autonome
- selenium-java-2.40.0.jar : Selenium Bibliothèque de pilotes Web
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 sur Guru99Test -> Équipement -> Forfait
Tapez com.guru.test dans le champ Nom sur Nouveau Java Boîte de dialogue Package à Terminer
La Eclipse créera des dossiers et sous-dossiers de liste comme celui-ci dans la structure du code source
Étape 4) Installer TestNG pour Eclipse
In Eclipse, Aide -> Installez un nouveau logiciel, dans la boîte de dialogue d'installation, cliquez sur Ajouter et entrez ce qui suit
- Nom : TestNG
- Emplacement : https://github.com/selendroid/selendroid
appuyer sur OK -> Ensuite, 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 décrite dans la section précédente, exécutez la commande sur le terminal
Ouvrez 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 au Android périphérique, 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 Selendroid serveur dessus
Selendroid installe également l'application testée et démarre le serveur selendroid sur l'appareil
Après avoir initialisé avec succès la session de test, la commande de test commence à s'exécuter sur un appareil. (Comme saisir du texte, appuyer sur un bouton…). Si le test ajoute la session de test, l'émulateur s'arrêtera automatiquement
Étape 8) Démarrer la nouvelle session de test
Lancez l' Selendroid serveur en utilisant la commande suivante sur le terminal comme à l'étape 6
Après les Selendroid Serveur démarré, ouvrez l'exemple de projet de test Guru99test sur Eclipse, définissez un point d'arrêt à la ligne 77 du fichier Guru99Test.java en double-cliquant sur la ligne 77 -> Un point s'affichera comme ci-dessous
Démarrez une session de test par clic droit sur le projet Guru99Test -> Déboguer en tant que -> Tester Test.
Une session de test démarrera comme ci-dessous
Étape 9) Obtenir l'identifiant de l'élément GUI d'une application testée
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 d'AUT (bouton, TextField, étiquette de texte), 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 d'interface utilisateur ci-dessus
- Bouton Afficher l'ID du texte : "btnAfficher"
- ID du champ de texte : "edtTexte"
- ID 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 chacune des instructions.
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; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
Exécuter le test
Vous trouverez ci-dessous le code pour exécuter un test. Le code inclut les commentaires
Voici à nouveau les étapes du test
- Entrez le texte « Bonjour Guru »
- Cliquez sur le bouton Afficher le texte
- Attendez un peu
- Vérifiez que l'application affiche le texte lorsque l'utilisateur entre dans un champ de texte (par exemple, affichez le texte « Bonjour Guru »)
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Terminer l'essai
Le code suivant terminera le test en arrêtant le Selendroid chauffeur.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Vous pouvez voir les détails dans l’exemple de code inclus dans cet article.
Étape 10) Connectez Android appareil au PC via un câble USB. Points à observer –
- Veuillez vous assurer qu'aucun verrouillage d'écran n'est configuré sur l'appareil.
- Les appareils doivent être branchés via USB à l'ordinateur sur lequel le composant autonome Selendroid est exécuté.
- L'appareil doit installer au moins Android Target VersionAPI10
Étape 11) Exécutez l'application de test : clic droit sur Guru99test -> Courir comme -> TestNG tester
Étape 10) Le script démarre comme suit
Étape 12) Une fois l'exécution du test terminée, TestNG génère automatiquement le rapport de test comme suit
Bon travail, vous avez terminé le test maintenant.
Résumé
- Selendroid est un outil très puissant pour tester Android l'application native, l'application hybride ainsi que l'application web.
- Il peut être utilisé sur des appareils réels 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 Selendroid la suite est composée de quatre composants :
- Client pilote Web,
- Selendroid-Serveur,
- Android Application de pilote
- Selendroid-autonome
- Utiliser Selendroid dont vous avez besoin Java JDK, Android SDK et Eclipse installé.