Comparaison et combinaison des pilotes d'automatisation des tests Web et mobiles

Dernière mise à jour : 12 février 2019 — Continuous Testing Expert

Similitudes et différences entre les pilotes d'automatisation des tests web et mobiles, avec un accent particulier sur Appium et sélénium. Lisez la suite pour en savoir plus.

Il existe de nombreux outils pour l'automatisation des tests web et mobiles. Leurs fonctionnalités, plateformes prises en charge et conditions d'utilisation varient. Nous nous concentrerons ici sur deux d'entre eux : Appium et Selenium.

Les développeurs et les testeurs utilisent le framework Appium pour l'automatisation des applications web, natives et mobiles hybrides. Le framework Selenium, quant à lui, est utilisé pour l'automatisation des applications web. De plus, Selenium est écrit en Java, tandis qu'Appium l'est en JavaScript. Bien qu'ils semblent différents au premier abord, ils ont un point commun : Appium et Selenium utilisent le protocole WebDriver pour communiquer avec la plateforme cible : Appium avec l'appareil mobile, Selenium avec le navigateur web. En général, un script Selenium WebDriver est exécutable aussi bien dans un navigateur mobile que dans un navigateur de bureau afin de réaliser les mêmes actions sur une même application web.

Différences entre les pilotes d'automatisation des tests web et mobiles

Surtout la différence entre le web et le mobile automatisation des tests Les pilotes d'application dépendent des fonctionnalités, des plateformes prises en charge et de la configuration du banc d'essai. Appium, en particulier, fonctionne comme un serveur HTTP et propose plusieurs clients : Java, JavaScript, Python, C# et Ruby. En réalité, un client Appium est une surcouche des bibliothèques clientes Selenium WebDriver. Outre Selenium, Appium utilise un ensemble étendu d'API WebDriver, spécifiques à l'interaction avec les appareils mobiles. Par exemple, Appium inclut des commandes pour la prise en charge des gestes multitouch et de l'orientation de l'écran, la gestion des données de géolocalisation, l'accès aux journaux de l'appareil, et bien d'autres fonctionnalités.

Le serveur Appium permet aux utilisateurs d'Appium de contrôler les fonctions du dispositif testé, comme l'installation et la désinstallation d'une application pendant la session de test. Des implémentations client similaires existent pour Selenium. Cependant, un serveur Selenium n'est requis pour l'exécution de tests distribués que si l'on souhaite installer une grille Selenium.

Pour clarifier, Selenium prend en charge les principaux navigateurs fonctionnant sur les systèmes d'exploitation de bureau les plus courants. Appium, quant à lui, prend en charge une large gamme d'appareils iOS et Android, pour les versions officiellement prises en charge. De plus, Appium permet l'automatisation des applications Windows. En revanche, la configuration de l'infrastructure requise pour les tests Appium et Selenium diffère. Pour effectuer des tests Appium, il est nécessaire d'installer NodeJS, Appium, et de configurer le SDK ainsi que les pilotes et frameworks spécifiques. Dans le cas des tests Selenium, la configuration de l'environnement de développement et d'exécution des tests est beaucoup plus simple, sauf si vous installez le serveur Selenium pour exécuter des tests sur Selenium Grid. Les schémas des architectures Appium et Selenium sont présentés ci-dessous.

L'exemple de l'utilisation des deux frameworks pour l'automatisation web mobile

Leur base commune permet de les utiliser conjointement pour l'automatisation des tests web et mobiles, malgré les différences mentionnées précédemment. Pour tester une application web sur un navigateur mobile, Appium et Selenium peuvent être utilisés simultanément et se complètent au sein d'un même test. Vous trouverez ci-dessous un lien vers un test simple sur Git, par exemple, qui ouvre une page du site Amazon.com dans le navigateur Chrome pour Android sur un appareil mobile.

Exemple de test Android.

Les codes de test utilisent les bibliothèques Selenium et Appium pour interagir avec le navigateur sur un appareil mobile. Les objets clients Appium servent à initialiser le pilote de périphérique, à définir le navigateur Chrome d'Android et à le contrôler. Selenium est utilisé pour définir l'objet « Desired capabilities », qui contrôle le pilote de périphérique, le navigateur mobile et interagit avec l'application web (ici, le site web Amazon.com), via l'objet Selenium « By ». L'utilisation de ces objets permet d'accéder aux éléments web du navigateur mobile.

Le test est exécuté sur la plateforme DécouvrirTest – plateforme basée sur le cloud, offrant un grand nombre de navigateurs et d'appareils mobiles pour le développement et l'automatisation des tests web et mobiles. À titre de comparaison, il existe le test qui ouvre cloud.seetest.io Sur un Mac, ouvrez une page web dans le navigateur Google Chrome, puis recherchez et cliquez sur certains liens. Ce test utilise uniquement des objets Selenium qui contrôlent le navigateur distant sur la plateforme cloud DécouvrirTest et exécutent les actions spécifiées. Le code du test est disponible via le lien ci-dessous.

Exemple de test Chrome.

Le deuxième test est également exécuté sur la plateforme DécouvrirTest et est prêt à être lancé. Les deux tests peuvent être téléchargésLe programme a été compilé et lancé. Utilisez la commande « mvn clean install » pour l'installer. Les deux tests devant être exécutés sur la plateforme DécouvrirTest, n'oubliez pas d'ajouter la clé d'accès de votre compte DécouvrirTest aux variables système avant de lancer les tests.

Le premier exemple ci-dessus illustre les tests avec Appium et Selenium et fait partie des exemples d'automatisation des tests web et mobiles. Ce cas de figure se présente lorsqu'une application web doit fonctionner à la fois sur ordinateur et sur mobile, ce qui est fréquent aujourd'hui.

Un exemple d'utilisation d'Appium et de Selenium pour l'automatisation d'applications mobiles natives

Outre la nécessité de prendre en charge différents navigateurs sur de multiples plateformes mobiles et de bureau, les applications modernes peuvent comporter plusieurs types de clients : web, de bureau et mobile, qui peuvent eux-mêmes s’exécuter sur diverses plateformes matérielles et sous différents systèmes d’exploitation. Pour un ingénieur QA, cela implique avant tout la nécessité de réaliser des tests sur toutes les combinaisons possibles de matériel, de système d’exploitation et de navigateur. Par exemple, un cas d’utilisation possible, lorsque deux clients différents sont utilisés, est celui où un utilisateur effectue une action depuis le client mobile et où un autre utilisateur, depuis le client web, en reçoit le résultat, ou inversement.

Un exemple de ce type de cas est une publication sur un réseau social qui doit être consultée par différents clients. Un autre exemple est une messagerie instantanée, où un utilisateur envoie un message depuis un appareil mobile et un utilisateur le reçoit depuis un navigateur web, et inversement. Du point de vue du test, il faudra simuler l'interaction entre ces deux types de clients : mobile et web. Ainsi, un même test utilisera les frameworks Appium et Selenium, combinant ainsi les deux approches. Dans ce test, les objets Appium gèrent l'appareil mobile, tandis que les objets Selenium gèrent le navigateur sur la plateforme de bureau et interagissent avec lui. Ce test sera également exécuté sur le service cloud DécouvrirTest.

Concernant l'implémentation, les tests pour ces clients peuvent être écrits dans des modules distincts et exécutés en parallèle à l'aide de DécouvrirTest pour les instances correspondantes. Dans cet exemple, Selenium et Appium sont complémentaires. Il s'agit d'un autre exemple d'automatisation des tests web et mobiles.

Le framework Appium est-il basé sur Selenium ou non ?

Enfin, une précision concernant l'automatisation des applications mobiles natives : lors de la rédaction de tests d'interface utilisateur et de l'interaction avec les éléments des pages mobiles, nous y accédons via un objet `MobileElement`, instance de la classe `io.appium.java_client.MobileElement`, qui étend `org.openqa.selenium.remote.RemoteWebElement`. Ainsi, les tests des applications mobiles natives utilisent Selenium de manière implicite pour accéder aux éléments des pages mobiles.

Conclusion

En résumé, Selenium et Appium ne sont pas des frameworks isolés, utilisables uniquement pour l'automatisation des tests web et mobiles respectivement. Ces frameworks peuvent être utilisés conjointement dans un même test pour tester des applications web sur navigateur mobile et pour implémenter des cas de test complexes impliquant des interactions avec des clients web et mobiles. Tous ces cas de test peuvent être facilement exécutés sur la plateforme DécouvrirTestDécouvrirTest propose une large gamme d'appareils mobiles et de navigateurs pour les tests. De plus, il figure parmi les meilleures plateformes cloud pour l'automatisation des tests web et mobiles.

Afin de voir de visu comment tout cela fonctionne, Cliquez ici pour un essai gratuit.

Vous aimerez aussi