Qu’est-ce qu’Appium ?
Appium est un framework open source pour automatiser l’interface des applications mobiles iOS et Android, ainsi que des applications de bureau et des navigateurs. Il fonctionne comme un serveur HTTP qui implémente le protocole WebDriver : le code de test, écrit dans n’importe quel langage disposant d’un client Appium, pilote l’application que vous livrez réellement, sans y ajouter de SDK de test.
Comment fonctionne Appium
Appium comprend quatre éléments : un noyau qui définit l’API, des pilotes (drivers) qui se connectent à une plateforme précise, des clients qui exposent l’API dans un langage de programmation et des plugins facultatifs qui étendent le noyau. Votre test envoie des commandes WebDriver au serveur via un client, et le serveur les transmet au bon pilote.
- UiAutomator2 et Espresso pour les applications Android.
- XCUITest pour iOS, iPadOS, tvOS et watchOS.
- Mac2 et Windows pour les applications de bureau, Safari, Gecko et Chromium pour les navigateurs.
Des clients officiels existent pour JavaScript, Java, Python, Ruby et .NET. Les applications Flutter disposent de pilotes maintenus par la communauté, voir Flutter. Appium 3 exige Node.js 20.19 ou plus récent et supprime de nombreux points d’accès obsolètes, par exemple l’ancien paramètre desiredCapabilities : seul capabilities est accepté.
Exemple : un test de connexion
Vous démarrez une session en envoyant des capabilities qui indiquent la plateforme, le pilote (par exemple UiAutomator2) et le fichier de l’application. Le test repère le champ e-mail par son accessibility id, saisit une valeur, appuie sur le bouton de connexion et vérifie qu’un élément de l’écran d’accueil s’affiche. Sur iOS, ce sont surtout les capabilities et quelques localisateurs qui changent. C’est un test de régression typique d’un parcours critique.
Erreurs fréquentes avec Appium
- Utiliser de longs XPath : ils sont lents et cassent à la moindre modification de mise en page. Préférez les accessibility ids que les développeurs définissent volontairement.
- Employer des pauses fixes au lieu d’attentes explicites qu’un élément soit visible ou cliquable.
- Tout automatiser par l’interface. Gardez peu de parcours de bout en bout et testez le reste au niveau unitaire et API.
- Mettre à jour Appium sans mettre à jour les pilotes. Appium 3 demande des versions récentes des pilotes.
- Oublier de fermer la session, ce qui laisse appareils et émulateurs occupés.
Appium, frameworks mobiles et tests de performance
Appium fonctionne avec les applications natives et celles créées avec des frameworks multiplateformes comme React Native. Pour le contenu web dans un navigateur mobile, voyez comment tester un site dans des émulateurs mobiles et le mode appareil du navigateur. Pour des tests de navigateur en JavaScript, WebdriverIO est une option voisine.
Appium vérifie que l’interface se comporte correctement sur un appareil. Il ne dit pas comment le backend tient face à de nombreux utilisateurs simultanés. Pour cela, lancez un test de charge sur les API que l’application appelle. LoadFocus peut exécuter des scripts JMeter existants dans le cloud, voir les tests de charge JMeter et les tests de charge. LoadFocus ne s’intègre pas à Appium.
Questions fréquentes
Appium est-il gratuit ?
Oui. Appium est open source. Vous ne payez que les appareils, émulateurs ou services d’appareils dans le cloud sur lesquels vous l’exécutez.
Appium demande-t-il de modifier mon application ?
Non. Appium automatise l’application non modifiée grâce aux outils d’automatisation de chaque plateforme : vous testez le même build que celui que vous livrez.
Dans quels langages écrire des tests Appium ?
Dans tout langage disposant d’un client Appium ou WebDriver. Des clients officiels existent pour JavaScript, Java, Python, Ruby et .NET.
Quelle différence entre Appium 2 et Appium 3 ?
Appium 2 a déplacé la prise en charge des plateformes vers des pilotes installés séparément. Appium 3 porte la version minimale de Node.js à 20.19 et supprime de nombreux points d’accès et paramètres obsolètes.
Peut-on utiliser Appium pour des tests de charge ?
Non. Appium pilote un appareil à la fois par l’interface. Pour savoir comment un backend gère de nombreux utilisateurs, utilisez un outil de test de charge sur ses API.
Termes associés
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus, la plateforme même qui propulse tout ce que vous venez de lire.