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 :

Selendroid Tutoriel

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.

Qu’est ce qu' Selendroid

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

Qu’est ce qu' Selendroid

Pourquoi avons-nous besoin Selendroid?

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

Pourquoi avons-nous besoin Selendroid

Cette section présentera les caractéristiques importantes du Selendroid pour répondre à la question pourquoi vous avez besoin Selendroid.

Pourquoi avons-nous 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 Architecture

Selendroid contient 4 composants majeurs :

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

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

    Mettre en place un Selendroid Environnement

    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

    Mettre en place un Selendroid Environnement

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

    Mettre en place un Selendroid Environnement

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

    Mettre en place un Selendroid Environnement

    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

    Mettre en place un Selendroid Environnement

    Mettre en place un Selendroid Environnement

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

    Mettre en place un Selendroid Environnement

    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

Lancement Selendroid

La sortie s'affichera comme suit

Lancement Selendroid

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.

Lancement Selendroid

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

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

    Selendroid Commande de base

    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

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

    Selendroid Commande de base

    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

    Selendroid Commande de base

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

    Selendroid Commande de base

    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

    Selendroid Commande de base

    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

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

    Selendroid Commande de base

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

TÉLÉCHARGEZ L'APK ICI

Premier test avec Selendroid

Nous devons exécuter ce qui suit 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é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

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 : 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

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 -> Équipement -> Forfait

Premier test avec Selendroid

Tapez com.guru.test dans le champ Nom sur Nouveau Java Boîte de dialogue Package à Terminer

Premier test avec Selendroid

La 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 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

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

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 »

Premier test avec Selendroid

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

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

Premier test avec Selendroid

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

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 :

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

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

Premier test avec Selendroid

Étape 10) Le script démarre comme suit

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 suit

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