Automatiser vos tests d’application mobile avec Appium
Actuellement dans le domaine du développement de contenu numérique, la demande pour les applications
mobiles est très élevée. Les entreprises convertissent leurs sites Web en applications mobiles. Par conséquent,
il est très important de connaître les technologies d’automatisation des tests d’applications mobiles.
Qu’est-ce qu’Appium ?
Appium est un outil d’automatisation open source. Il est développé et maintenu par SauceLabs. Multiplateforme,
il est capable d’exécuter des tests sur des applications mobiles natives, hybrides et web apps. Il permet
d’exécuter le même test sur plusieurs plates-formes. Plusieurs appareils peuvent être facilement testés en parallèle.
Il prend en charge les tests d’automatisation sur Android, iOS et également Windows desktop.
La philosophie Appium
Appium peut être considéré comme le Selenium de vos applications mobiles. Il a été conçu pour répondre aux besoins d’automatisation mobile selon une philosophie définie par les quatre principes suivants :
- Ne pas avoir à recompiler l’application ou à la modifier de quelque manière que ce soit pour l’automatiser.
- Ne pas être enfermé dans un langage ou un framework spécifique pour écrire et exécuter les tests.
- Des API d’automatisation standard
- Un framework d’automatisation mobile open source.
Les types d’applications testées : Appium pour IOS, Android et web apps
Applications Natives
Une application native est une application mobile qui est développée spécifiquement pour un des systèmes d’exploitation utilisé par les smartphones et tablettes (iOS, Android). Elles sont développées à l’aide des SDK iOS, Android.
Web apps
Les Webapps sont des applications Web accessibles à l’aide d’un navigateur mobile. Appium prend en charge Safari sur iOS et Chrome ou l’application « Navigateur » intégrée sur Android).
Applications Hybrides
Les applications hybrides ont la particularité de combiner des éléments des applications dites natives (à l’aide
des SDK iOS, Android) et des web apps (disponibles sur internet via un navigateur et non installées localement).
Concept et architecture d’Appium
Appium suit l’architecture client-serveur.
Il s’agit d’un serveur Web qui fournit des API de type REST, il est implémenté en Node.js et s’appuie sur l’API
selenium Webdriver.
Le serveur Appium reçoit les connexions du client, écoute les commandes, les exécute (en fonction de la plate-
forme) sur un appareil mobile et répond via une réponse HTTP représentant le résultat de l’exécution de la commande.
- Réception de la connexion du client
- Ecoute des commandes
- Exécution des commandes
- Retour des statuts d’exécution
Avantages et inconvénients d’Appium
Les Avantages d’Appium :
- Un outil gratuit et open source, donc tout le monde peut l’utiliser pour l’automatisation des tests mobiles.
- Appium est développé et pris en charge par Sauce Labs et il a été adopté très rapidement au sein de la communauté du test sur mobile.
- Le backend d’Appium est Selenium. Les commandes utilisées dans Appium sont très similaires aux commandes Selenium.
- Il prend en charge plusieurs langages tels que Java, C #, Ruby, Python, JavaScript, PHP, etc.
- Tests mobiles cross-plateformes, ce qui signifie que le même test fonctionnerait sur plusieurs plates-formes.
- Il peut automatiser les applications mobiles Web, hybrides et natives.
- Il gère les simulateurs, les émulateurs et les appareils réels.
- Il laisse la possibilité d’utiliser des scripts préalablement réalisés via un orchestrateur comme Jenkins
- Il peut s’interconnecter avec différents « framework » comme Cumcumber ou TestNG
Les Inconvénients d’Appium
Il est impossible d’exécuter des scripts sur plusieurs simulateurs iOS en même temps.
Sous iOS, on ne peut exécuter qu’une seule instance par Mac OS. Donc, si les tests doivent être exécutés sur
plusieurs appareils iOS en même temps, le même nombre de Mac devrait être implémenté, ce qui augmente les coûts.
Fonctionnement d’Appium
Appium utilise l’architecture client-serveur dans laquelle les machines clientes communiquent avec le serveur
via un protocole.
Pour démarrer une session de test d’automatisation, la machine cliente envoie une requête au serveur Appium.
Le code de test peut être écrit dans plusieurs langages de programmation tels que Java, Ruby, Python, PHP, C# et JavaScript.
Le serveur Appium crée une nouvelle session d’automatisation de test et appelle le pilote iOS/Android.
Le serveur Appium se connecte ensuite aux frameworks de test natifs correspondants qui s’exécute sur les appareils mobiles pour effectuer des opérations sur l’appareil.
Appium Server reconnaît alors la commande et établit une connexion avec le terminal correspondant. Une fois
la connexion établie, elle déclenche l’exécution de cas de test sur le terminal. Le terminal répond à la demande.
Les commandes sont des interactions de l’utilisateur avec l’application, comme un scroll sur l’écran, cliquer sur
un composant de l’interface, faire défiler une zone particulière, saisir des caractères ou effectuer un geste spécifique.
Mise en place et prérequis pour l’installation
La configurationd’Appium ne consiste pas seulement à installer un seul outil ou à configurer quelques variables. Une configuration complète d’Appium nécessite l’installation de nombreux autres outils.
On a tendance à considérer l’installation d’Appium comme un processus fastidieux et compliqué en raison des dépendances d’Appium. Néanmoins le processus s’avère simple s’il est correctement orchestré.
Voici les dépendances nécessaires pour installer Appium :
- Node.js
- Java SDK
- Appium Server
- Appium Client Libraries
- Selenium Libraries
- Android Studio
- Xcode
De nombreux guides étape par étape sont disponibles pour installer l’écosystème d’Appium.
Le bon choix pour vos tests d’application ?
Il existe aujourd’hui plusieurs options disponibles en matière d’automatisation mobile. Appium offre de nombreux avantages pour l’automatisation mobile. Un seul test Appium peut s’exécuter sur plusieurs appareils et versions de système d’exploitation. La création de tests est également facile.
Appium constitue un choix fiable et évolutif pour l’automatisation du mobile.
CloudNetCare
Pour que chaque clic soit une expérience réussie
On pilote vos tests, vous gardez le contrôle !
Grâce à notre expertise, vos applications et sites web restent fluides, sans bugs ni frictions, vous permettant de vous concentrer sur votre innovation et garantir ainsi une expérience utilisateur irréprochable.
Notre cabinet français d’experts en tests logiciels, automatise, gère et analyse vos tests quotidiennement pour détecter et corriger les dysfonctionnements avant qu’ils n’affectent vos utilisateurs.