Automatisation des tests mobiles – 1ère partie


          L’automatisation des tests dans le domaine des applications mobiles offre des avantages indéniables, le principal étant un gain de temps et de ressources considérable. Elle convient parfaitement aux tests de type « non régression » (TNR), ainsi qu’aux tests de performances. Différents outils permettent d’accomplir cette tâche, et cet article, 1er d’une série sur l’automatisation des tests mobiles, se propose d’aborder Appium.

 

Qu’est-ce qu’Appium ?

Appium est un framework open source de test pour applications mobiles.

Il supporte les applications natives, web mobiles et hybrides. Il est également cross-platform (les apis fournies fonctionnent à la fois pour les plateformes IOS et Android), ce qui permet la réutilisation d’une grande partie des tests.

Avantages :

  • Différents langages sont supportés (Java, Objective-C, JavaScript, PHP, Python, Ruby, C#…).
  • Cross-platform, il supporte les applications natives, web mobiles et hybrides.
  • Pas besoin de modifier l’application pour la tester.

Inconvénients :

  • Appium ne supporte pas les versions d’Android inférieures à 4.2.
  • Le test d’application IOS en parallèle n’est pas possible mais peut être contourné avec le test cloud.

Architecture d’Appium :

L’outil Appium est principalement un serveur, il est implémenté en Node.js et s’appuie sur les Webdriver de Sélénium.

Ce serveur fournit des apis de type REST qui ont les fonctions suivantes :

  • Réception de la connexion du client
  • Ecoute des commandes
  • Exécution des commandes
  • Retour des statuts d’exécution des commandes

Le diagramme ci-dessous explique le fonctionnement plus en détail :

archi_appium

 

Mise en place d’Appium :

Les étapes pour l’installation de cet outil peuvent être assez fastidieuses. En effet, elles diffèrent selon les plateformes que l’on veut tester et selon le type de système d’exploitation où il sera installé.

Voici quelques informations qui permettent d’apporter quelques éclaircissements sur ce processus de mise en place.

Prérequis :

iOS :

  • Mac OSX >= 10.10 la version recommandée est la 10.11.1
  • Xcode >= 6.0 , la version recommandée est la 7.1.1
  • Apple developer tools

Android :

  • Android SDK API >=17
  • Les OS Windows, OSX et Linux peuvent être utilisés

Limitation :

Il y a différentes limitations selon les OS.

Windows :

  • Il n’est pas possible de tester des application iOS sous Windows car Appium se sert des librairies fournis par OSX.
  • Le recorder est indisponible sous Windows

Linux :

  • Il n’y a pas d’interface graphique.
  • Le test d’application iOS est également indisponible

 

Vous l’aurez donc compris,  pour bénéficier de toutes les fonctionnalités il est préférable d’utiliser un OS type OSX.

Remarque : A la fin de l’installation il est conseillé d’utiliser Appium Doctor qui permet de s’assurer qu’Appium est opérationnel en vérifiant que les différentes briques (SDK , XCode , variables d’environnement)  sont présentes et fonctionnelles.

doctor

Appium Inspector :

Cet outil permet de localiser les différents éléments d’une application afin de pouvoir interagir avec elle durant les tests. Il propose différents moyens d’identification (xpath, id, …). D’autres méthodes peuvent être utilisées telle que l’outil UiAutomatorViewer.

Appium Inspector permet également l’enregistrement d’un script de test. Pour ce faire on active la fonctionnalité Record puis on effectue les différentes actions voulues. Les tests seront générés dans le langage choisi. Cette fonctionnalité est très utile,  mais on se rend compte très vite que beaucoup de tests doivent être complétés ou créés manuellement.

inspector

Création d’un test

Il y a différentes manières de s’organiser pour le développement des tests, néanmoins un test doit toujours être composé de :

  • Capabilities : c’est ici que l’on définira les différentes informations dont le serveur a besoin (plateforme utilisée, version de l’OS, le nom du device …).
  • Une connexion au serveur : ici on se connectera à une session et l’on fournira les capabilités précédemment définies.
  • Les commandes : dans cette partie on décrira toutes les interactions que l’on souhaite reproduire sur l’application.

Exemple :

Ne reste plus qu’à lancer l’exécution.

passfail

Conclusion :

Appium est de mon point de vue un candidat intéressant pour l’automatisation des tests mobiles car comme exposé ci-dessus, il offre beaucoup d’avantages (plusieurs langages supportés, cross plateform …etc.) et il bénéficie également d’une communauté très active.

Commentez cet article