Tutoriel Selendroid pour les débutants avec exemple

Avez-vous déjà développé une application Android et l'avez publiée sur Google Play ? Que ferez-vous si vous recevez un avis d'utilisateur comme :

Tutoriel Selendroid

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 Essais effort, vous avez besoin d’un outil de test. L'un des meilleurs outils de test pour les applications Android est Selendroïde.

Qu'est-ce que Selendroid ?

Selendroid est un framework d'automatisation de tests pour plusieurs types d'applications mobiles : indigène et roues hybrides Application Android et mobile web.

Qu’est-ce que Selendroid

Vous pouvez écrire les tests en utilisant le Sélénium 2 API clientes. 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 émulateurs et réel dispositifs

Qu’est-ce que Selendroid

Pourquoi avons-nous besoin de Selendroid ?

Selendroid est un excellent outil de test. Mais on peut encore douter de son utilité.

Pourquoi avons-nous besoin de Selendroid

Cette section présentera les fonctionnalités importantes du Selendroid pour répondre à la question de savoir pourquoi vous avez besoin de Selendroid.

Pourquoi avons-nous 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. 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.
  • L'application de test Selendroid peut interagir avec plusieurs appareils ou simulateurs simultanémentneohabituellement. C'est un grand avantage de Selendroid. Vous pouvez donc tester votre application avec différents appareils Android pour vérifier la compatibilité.
  • Selendroid peut simuler des actions d'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 à la version API Android supérieure, Selendroid supporte également la nouvelle API Android (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 testée. Par exemple le bouton ID, le champ de texte, la vue texte…

Selendroïde Architecture

Selendroid est basé sur le Cadre d'instrumentation Android. Les tests Selendroid sont écrits sur la base de l'API client du pilote Web Selenium, ils prennent donc en charge l'intégration complète avec les frameworks Selenium actuels.

Le following la figure décrit le archiconfiguration de Selendroid

Selendroïde Architecture

Selendroid contient 4 composants majeurs :

Selendroïde Architecture

  • 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-Server – Le serveur qui s'exécute dans l'application testée sur un appareil ou un simulateur Android. Ce sont les principaux composants d’un Selendroid architecture
  • 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 testée (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 à effectuer avant le premier test avec Selendroid

Premiers pas avec Selendroid

Mise en place d'un environnement Selendroid

Selendroid peut fonctionner sur Windows, Linux/Unix et MacOS. Dans ce didacticiel, nous allons configurer Selendroid sous Windows OS.

Avant d'utiliser Selendroid, vous devez installer followlowing paquet d'abord

  • 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)

    Configuration d'un environnement Selendroid

    Téléchargez et installez le SDK Java comme logiciel normal

  • La dernière version de SDK Android
  • Votre ordinateur doit disposer d'au moins un appareil virtuel Android (AVD) ou d'un véritable appareil Android branché sur le PC.
  • Selendroid autonome avec dépendances, Client Selendroïdeet Client Sélénium
  • 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

    Configuration d'un environnement Selendroid

    Étape 2) Affichage de la fenêtre Propriétés système, sélectionnez l'onglet Avancé -> Variables d'environnement

    Configuration d'un environnement Selendroid

    Étape 3) La fenêtre Environnement s'affiche, cliquez sur Nouveau -> Entrez une variable ANDROID_HOME comme suitwing

    Configuration d'un environnement Selendroid

    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 le suiviwing ligne après la ligne actuelle

    Configuration d'un environnement Selendroid

    Configuration d'un environnement Selendroid

    Semblable à ANDROID_HOME, ajoutez une nouvelle variable JAVA_HOME avec la valeur ci-dessous

    Configuration d'un environnement Selendroid

    La valeur est le chemin d'accès à votre installation Java JDK

    Étape 4) Redémarrez votre PC -> OK

Comment lancer Selendroid

Étape 1) Obtenir une application en test

Vous pouvez utiliser l'application de test Selendroid existante pour vérifier le fonctionnement de Selendroid (Lien pour un exemple d'application testée)

Une fois le téléchargement terminé, copiez cet APK et ce qui précède Pot autonome Selendroid 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 le suiviwing commander

Lancer Selendroid

La sortie s'affichera comme suitwing

Lancer Selendroid

Après avoir exécuté cette commande, le serveur HTTP autonome Selendroid 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 la suitewing URL sur un navigateur : http://localhost:4444/wd/hub/status.

Lancer Selendroid

Commande de base Selendroid

Cette section vous présente une ligne de commande de base de Selendroid-Standalone. Vous pouvez les utiliser pour configurer l'environnement de test Selendroid

  1. Configuration 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 :

    Commande de base Selendroid

    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

  1. Spécifiez l'emplacement de l'application testée (fichier APK binaire). Selendroid exigeait souvent le chemin absolu de ce fichier

    Paramètre : -app [chemin du fichier]

    Par exemple :

    Commande de base Selendroid

    Dans la commande ci-dessus, le Selendroid trouve automatiquement la base de 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

    Commande de base Selendroid

  2. Modifiez le port utilisé par Selendroid pour communiquer avec le serveur d'instrumentation. Selendroid utilise le port 8080 par défaut

    Paramètre : -selendroidServerPort [numéro de port]

    Exemple

    Commande de base Selendroid

    Le port est maintenant changé en 9000

  3. 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

    Commande de base Selendroid

    Passé ce délai expiré, si l'émulateur ne peut pas démarrer, le Selendroid générera l'erreur d'exception (une erreur s'est produite lors de la recherche de périphériques/émulateurs.) puis cessera de fonctionner.

  4. Lorsque vous démarrez 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 suiviwing paramètre

    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, configurez Selendroid pour imprimer uniquement le journal d'avertissement, vous pouvez utiliser cette commande

    Commande de base Selendroid

    Le Selendroid imprime 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 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

Premier test avec Selendroid

Nous devons exécuter followwing Cas de test en utilisant Selendroid

Cas de test État Production attendue
  1. Lancer l'application
  2. Saisissez un texte «Test Guru99" dans le champ de texte
  3. Appuyez sur le bouton « Afficher le texte »
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éez un projet Java dans Eclipse

Étape 2) Ajouter le fichier jar sélénium et Selendroid dans eclipse environnements

Cliquez avec le bouton droit sur le projet Guru99Test -> Chemin de construction -> Ajouter un externe Archives

Premier test avec Selendroid

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 : Bibliothèque client Java Selendroid
  • selendroid-standalone-0.11.0-with-dependencies : bibliothèque de serveur autonome 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

Premier test avec Selendroid

É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 -> Nouveauté -> Forfaits

Premier test avec Selendroid

Tapez com.guru.test dans le champ Nom de la boîte de dialogue Nouveau package Java à Terminer

Premier test avec Selendroid

Le Eclipse créera des dossiers et sous-dossiers de liste comme celui-ci dans la structure du code source

Premier test avec Selendroid

Étape 4) Installer TestNG à Eclipse

In Eclipse, Aide -> Installez un nouveau logiciel, dans la boîte de dialogue d'installation, cliquez sur Ajouter et entrez ce qui suitwing

appuyer sur OK -> Ensuite pour installer le TestNG

Premier test avec Selendroid

Étape 5) Copiez le Guru99App.apk dans le dossier de Test App

Premier test avec Selendroid

É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

Premier test avec Selendroid

Ouvrir le suiviwing lien dans un navigateur : http://localhost:4444/wd/hub/status.

Les informations de l'appareil s'affichent, copiez la valeur appId « com.guru99app:1.0 »

Premier test avec Selendroid

Étape 7) Ouvrez le fichier Guru99Test.java (dans l'exemple de code) et modifiez comme suitwing

Premier test avec Selendroid

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é l'appareil trouvé, Selendroid crée un serveur Selendroid personnalisé et y installe le serveur Selendroid

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 le serveur Selendroid en utilisant la suitewing commande sur le terminal comme à l'étape 6

Premier test avec Selendroid

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 du fichier Guru99Test.java en double cliquez sur la ligne 77 -> Un point s'affichera comme ci-dessous

Premier test avec Selendroid

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

Premier test avec Selendroid

É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

Premier test avec Selendroid

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.

Premier test avec Selendroid

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 :

Following est le code pour le test de configuration, il définira les conditions d'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

  1. Entrez le texte « Bonjour Guru »
  2. Cliquez sur le bouton Afficher le texte
  3. Attendez un peu
  4. 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 following Le code terminera le test en arrêtant le pilote Selendroid.

 /**
		     * 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 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 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 Version API 10

Étape 11) Exécutez l'application de test : clic droit sur Guru99test -> Courir comme -> TestTestNG

Premier test avec Selendroid

Étape 10) Le démarrage du script est exécuté comme suitwing

Premier test avec Selendroid

Étape 12) Une fois l'exécution du test terminée, TestNG génère automatiquement le rapport de test comme suitwing

Premier test avec Selendroid

Premier test avec Selendroid

Bon travail, vous avez terminé le test maintenant.

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 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 de la suite Selendroid est composé de quatre composants :
    • Client pilote Web,
    • Serveur Selendroid,
    • Application de pilote Android
    • Selendroid autonome
  • Pour utiliser Selendroid, vous avez besoin de Java JDK, Android SDK et Eclipse installé.