selendroid tutorial android mobile test automation framework
Automatisation mobile à l'aide de Selendroid (partie I):
Jusqu'à présent, des millions d'applications ont déjà été développées en utilisant Android comme plate-forme et le nombre continue d'augmenter de jour en jour.
Le hic, c'est comment valider chaque application? Comme nous aurons besoin de ressources dédiées telles que de la main-d'œuvre, des appareils réels (par exemple, mobiles), etc., et encore une fois, c'est une tâche qui prend du temps. D'autre part, la version Android, la version des applications (.apk), la dimension de l'appareil, etc., ne sont pas constantes.
Par conséquent, il devient très difficile de définir les critères de sortie du test car nous ne pouvons pas définir la portée complète du test, de sorte que l'estimation exacte de l'effort de test ne peut pas être effectuée.
Afin de surmonter la dépendance des appareils, des émulateurs sont en cours de développement, qui peuvent fournir un environnement en temps réel, dans lequel nous pouvons tester l'application sans nous soucier de la version Android, des appareils et de leur version. Mais, toujours tester des applications (.apk) sur l'émulateur est une activité manuelle et même une tâche fastidieuse. C'est pourquoi l'idée d'automatiser les tests mobiles est en train d'évoluer.
Pour effectuer l'automatisation mobile, un cadre d'automatisation de test est développé, ce qui permet l'automatisation des applications basées sur Android à l'aide d'un langage de script.
Il existe de nombreux frameworks d'automatisation développés tels que Selendroid, Appium, Robotium, Espresso.
Ce tutoriel est divisé en deux parties:
Tutoriel n ° 1 : Introduction à Selendroid: Framework d'automatisation des tests mobiles Android
Tutoriel n ° 2: Comment utiliser le framework Selendroid pour automatiser les interactions des utilisateurs sur une application mobile (à venir)
Ce que vous apprendrez:
- Qu'est-ce que Selendroid?
- Composants Selendroid
- Configuration environnementale
- Écriture du premier script à l'aide de fichiers APK sur des appareils réels
- Conclusion
- lecture recommandée
Qu'est-ce que Selendroid?
Selendroid est un incroyable outil de cadre d'automatisation de test d'applications mobiles Android avec plusieurs fonctionnalités importantes. Selendroid est un outil d'automatisation très puissant qui peut interagir avec plusieurs appareils simultanément et une application peut être testée sans aucune modification ou changement à l'aide de Selendroid.
Il est également appelé 'Selenium pour Android' pour tester les applications mobiles natives et hybrides et le Web mobile.
Pourquoi Selendroid?
- C'est un open source (gratuit à utiliser)
- Prend en charge Selenium comme langage de script
- Prend en charge les langages compatibles avec les pilotes Web tels que Java, C #, Perl
- Prend en charge toutes les versions d'Android
- Fonctionne à la fois sur un émulateur et sur l'appareil réel
- Fonctionne sur une application native, hybride et Web
- Efficace lors de l'exécution d'applications natives ainsi que d'applications basées sur le cloud. car il prend en charge la grille de sélénium
- Il prend en charge la reconnaissance d'objets à l'aide des propriétés d'objet
- Facile à mettre en œuvre
- Les périphériques matériels peuvent être branchés, débranchés du PC pendant l'exécution du test, sans redémarrer ni arrêter le test. Selendroid peut reconnaître les nouveaux appareils automatiquement. Cette fonctionnalité est connue sous le nom de «Hotplugging»
Une architecture simple de Selendroid
Composants Selendroid
Selendroid – Client
Fondamentalement, il s'agit d'une bibliothèque client java. À partir de ce composant, la requête HTTP et WebDriver est envoyée en utilisant JSON au serveur Selendroid Standalone.
Selendroid - Autonome
Ce composant gère différents appareils ainsi que les .apk en installant le serveur Selendroid et l'application en cours de test. La requête Http (à exécuter sur un appareil / simulateur réel) est envoyée depuis le serveur autonome Selendroid vers l'appareil et l'apk sous test.
Selendroid - Serveur
Ce serveur s'exécute sur l'appareil avec l'application testée. Il existe une communication bidirectionnelle entre le serveur et l'application testée.
AndroidDriverApp
Il s'agit d'un pilote Android intégré ainsi que d'une application Web View pour tester le Web mobile.
Un autre framework de test nommé comme APPI fonctionne de manière similaire à un Selendroid.
Voici une petite comparaison entre les deux.
Fonctionnalité | Selendroid | appium |
---|---|---|
Prise en charge de la version Android inférieure (<4.1) | Oui | Ne pas |
Connexion à chaud | Oui | Ne pas |
Test d'agent utilisateur | Ne pas | Oui |
Prise en charge des applications basées sur iOS | Ne pas | Oui |
Exigence environnementale | Pour Android - Mac, Linux, Windows (toute version) | Pour iOS - Mac OSX 107. Pour Android - Windows 7+, Linux, Mac OSX 107. |
Conditions préalables:
Pour commencer, le public visé doit être très conscient de l'utilisation du sélénium, des outils IDE tels qu'Eclipse, etc. Les concepts de base de la programmation disent Java, C, etc. et doivent être conscients de l'utilisation de Maven et d'autres outils de TEST.
- Installez Intel x86 Emulator Accelerator (non obligatoire) pour afficher le simulateur depuis ici
- Java SDK, JRE déjà installé dans un environnement de test. Vous pouvez également télécharger le même depuis ici
Notez le chemin du SDK lors de l'installation.
Définissez les variables d'environnement présentes sur mon ordinateur -> faites un clic droit -> Propriétés -> Paramètres système avancés
- Eclipse est déjà installé sur votre machine. Sinon, vous pouvez également télécharger le même depuis ici
- Les fichiers jar Selenium doivent être téléchargés. Vous pouvez télécharger le même d'ici aussi
- Les jars TestNG sont déjà téléchargés
- SDK Android à télécharger et à installer. Vous pouvez également télécharger le même depuis ici
Notez le chemin du SDK Android lors de l'installation
Une fois téléchargé, ANDROID_HOME doit être défini dans les variables d'environnement présentes sur:
Poste de travail -> cliquez dessus avec le bouton droit -> Propriétés -> Paramètres système avancés
- Les fichiers jar Selendroid doivent être téléchargés. Vous pouvez également télécharger le même depuis ici
Rappelles toi pour télécharger le fichier jar autonome Selendroid à partir de l'emplacement ci-dessus. Habituellement, le nom est comme selendroid-standalone-0.9.0-with-dependencies.jar. Téléchargez également un exemple de fichier APK, dit selendroid-test-app-0.8.0.apk à partir de l'emplacement ci-dessus.
Noter:
- Nous pouvons également utiliser référentiel maven pour donner la référence à tous les jars ou bien vous devez les télécharger manuellement et l'attacher au chemin de construction (Over Eclipse Project)
- Périphériques / émulateurs - Dans Android, toutes les applications installées auront l'extension .apk. Par d'autres moyens, vous pouvez télécharger des applications telles que APK Info qui vous informera de la liste des applications installées sur votre appareil Android et de son nom réel, de sa taille, etc.
Configuration environnementale
# 1) Conservez l'APK qui doit être installé à un emplacement approprié
Dans mon cas, je l'ai gardé G: \ Jars \ selendroid-test-app-0.8.0.apk
# 2) Ensuite, gardez l'application sur le dossier du projet
Dans mon cas c'est 500: AppiumAutomation SelendroidFirst
# 3) Connectez le vrai appareil au PC
Assurez-vous que le mode de débogage USB est activé et que vous autorisez également les applications externes à être installées via une connexion USB.
Des astuces:
- Veuillez vous référer au paramètre de débogage USB requis pour mobile, dites Redmi Note 3 à partir de ici
- Autoriser l'installation d'une application externe via USB, dites Redmi note 3 à partir de ici
# 4) Ouvrez l'invite de commande sur Windows
Accédez au dossier dans lequel le pot autonome Selendroid, ainsi que le fichier apk téléchargé, sont présents.
Spécifiez maintenant la commande similaire et appuyez sur Entrée dans l'invite de commande
Par exemple. java --jar selendroid-standalone-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
Ou java –jar selendroid-standalone-0.15.0-with-dependencies.jar
Fichier APK: selendroid-test-app-0.8.0.apk
Noter: Lorsque la commande ci-dessus est exécutée, assurez-vous que l'APK est signé et que l'appareil réel est également connecté au PC et que le débogage est activé sur l'appareil.
(Noter: Cliquez sur l'image pour une vue agrandie)
Vérifiez les points suivants sur l'invite de commande pour vous assurer que l'environnement est prêt pour l'automatisation:
- Vérifiez le message 'Périphérique spécifié avec un numéro valide'
- Vérifiez le message «Le serveur est démarré dans le port par défaut, disons (4444)…»
- Vérifiez le message «Session en cours de création…»
Encore une fois, nous pouvons toujours reconfirmer si un serveur est démarré ou non en utilisant l'URL suivante sur l'un de vos navigateurs Web.
par exemple. http: // localhost: 4444 / wd / hub / status
# 5) Inspecter les fichiers APK
- Nous pouvons utiliser Real Apps en connectant de vrais appareils mobiles
- Nous pouvons utiliser tous les fichiers APK téléchargés hors ligne
Selendroid Inspector est utile pour déboguer / inspecter les éléments Web d'APK.
Une fois l'appareil identifié et démarré, nous pouvons afficher l'APK (en mode virtuel) et trouver les références, ce qui est utile pour écrire les scripts, en utilisant l'URL suivante sur l'un de vos navigateurs Web.
Par exemple: http: // localhost: 4444 / inspector
Ici, nous avons la capture d'écran de l'application testée et nous avons également la possibilité d'inspecter l'élément.
Ou vous pouvez toujours utiliser uiautomatorviewer pour rechercher les objets de l'application testée.
Le chemin par défaut pour cela est mentionné ci-dessous:
C: Utilisateurs admin android-sdks tools
C: Utilisateurs admin - Il s'agit de l'emplacement où j'ai installé le SDK Android, mais il peut être différent selon l'emplacement spécifié lors de son installation.
quel est le système d'exploitation de l'ordinateur
Écriture du premier script à l'aide de fichiers APK sur des appareils réels
Objectif:
- Démarrez le serveur (sur le port par défaut, disons 4444)
- Créer une session
- Installez l'application (fichier .apk) sur l'appareil réel connecté
- Automatisez le champ de texte avec certaines données
- Cliquez automatiquement sur le bouton
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
Conclusion
Selendroid est un outil de cadre de test d'automatisation très puissant qui peut être utilisé pour tester des applications natives, hybrides et Web sur n'importe quel appareil Android ainsi qu'un simulateur.
Il prend en charge le branchement à chaud, ce qui signifie qu'un utilisateur peut faire tester plusieurs appareils à la fois, par conséquent, l'exécution de tests en parallèle est possible sur plusieurs appareils. Il prend en charge divers types d'interactions comme une pression longue, des actions tactiles, etc.
La seule complexité avec cela est la configuration environnementale, qui est également présente dans d'autres cadres. Une fois qu'il est correctement configuré, nous pouvons exécuter nos scripts sans aucune difficulté.
Danspartie 2de ce tutoriel Selendoid, nous couvrirons - Comment utiliser le framework Selendroid pour automatiser les interactions des utilisateurs sur une application mobile.
Dans notre prochain article, nous en discuterons plus sur Tutoriel de révision pratique pCloudy.
lecture recommandée
- Tutoriels Eclipse détaillés pour les débutants
- Tutoriel SeeTest Automation: Un guide de l'outil d'automatisation des tests mobiles
- Tutoriel Java Collections Framework (JCF)
- Tutoriel de réflexion Java avec des exemples
- Tutoriel Ranorex: un puissant outil de test d'automatisation de bureau, Web et mobile
- Tutoriel Appium pour tester les applications mobiles Android et iOS
- Utilisation de Selendroid pour automatiser les interactions des utilisateurs via une application mobile (partie 2)
- Utilisation avancée de l'automatisation SeeTest sur un projet d'automatisation mobile en temps réel