Dernière mise à jour le 12 mai 2020 — Continuous Testing Expert

 

Appium est une solution basée sur les services conçue pour simplifier le processus de mise à l'échelle des tests d'applications sur une grande variété d'appareils et d'environnements, dans le but de maintenir un logiciel sécurisé. Appium agit comme un serveur virtuel qui envoie des commandes aux frameworks natifs des appareils afin que les actions et les scripts de test soient gérés de manière autonome et à grande échelle.

Appium coordonne non seulement les tests sur des milliers (ou des dizaines de milliers) d'appareils réels ou virtualisés, mais il renvoie également les données au référentiel souhaité. De préférence, Appium est open source ! Cela signifie qu'il est non seulement 100 % gratuit, mais qu'il peut également être personnalisé ou intégré pour s'adapter au cas d'utilisation souhaité.

Digital.ai Continuous Testing exploite Appium, entre autres technologies, pour tester rapidement des applications sur une vaste gamme d'appareils. Le framework Appium est un élément clé dans la mise à l'échelle des tests d'applications mobiles à effectuer de manière autonome et continue. En savoir plus sur comment Digital.ai permet aux entreprises d'utiliser Appium se trouve dans Studio Appium.

Pourquoi Appium devient-il populaire pour les tests d'applications mobiles et Web ?

Tests dans les jours précédant Appium
Alors que les logiciels numériques commençaient à se répandre dans presque tous les foyers et toutes les poches du monde, les créateurs de produits numériques ont été chargés de déterminer de nouvelles façons de tester leur technologie sur une large gamme d'appareils.

Test manuel était la principale méthode à un moment donné dans le passé. Cela implique de prendre les mesures réelles nécessaires pour tester les performances, découvrir les bogues et assurer la sécurité, la conformité et la gouvernance (SCaG). Une session de test manuel consisterait en une personne assise devant un poste de travail, agissant en tant qu'utilisateur du logiciel, utilisant sa souris et son clavier pour interagir avec le programme et tester divers aspects de ses performances et de son intégrité.

Les équipes logicielles ont pu aller au-delà des tests manuels lents et fastidieux à l'aide de scripts de test. En programmant une application de test pour effectuer une batterie d'actions conçues pour vérifier l'intégrité d'un produit, les équipes de développement et d'assurance qualité ont pu étendre leurs tests au-delà de ce que les testeurs humains sont capables d'accomplir.

Cependant, il y a une limite à l'évolutivité, même avec des outils de test scriptés. Différents environnements d'appareils présentent tous de nouvelles opportunités pour les vulnérabilités, bogues et problèmes non découverts. De plus, chaque appareil a son propre cadre unique qu'un programme de test doit prendre en compte. Dans le passé, surmonter ces obstacles signifiait coder un kit de développement logiciel (SDK) unique ou compiler une version unique des outils de test pour chaque appareil. Désormais, avec Appium, l'accès à chaque appareil peut se faire de manière automatique/autonome et à distance.

Entrez Appium : l'outil de test d'applications qui change la donne

Appium est un cadre d'automatisation des tests mobiles multiplateforme et multitechnologie open source. Grâce à Appium, les développeurs et les testeurs évitent le processus de création manuelle d'outils de test pour chaque appareil. Au lieu de cela, un serveur Appium peut être créé pour relayer les instructions directement à l'appareil à partir d'un script de test généralisé.

Ces dernières années, Appium a fait des vagues dans le test d'automatisation mobile segment. L'outil est rapidement devenu populaire car il est indépendant de la plate-forme, ce qui signifie que vous pouvez utiliser le même script de test pour tester les applications iOS et Android avec un minimum de modifications. Appium prend en charge les tests automatisés des applications Web et des applications natives, ainsi que des applications hybrides.

Le fait qu'Appium prenne en charge plusieurs langages de programmation pour écrire du code de test, tels que Python, Ruby, Java, JavaScript, PHP, est un autre avantage considérable. De plus, Appium vous permet de tester de vrais appareils, émulateurs et simulateurs.

Les performances robustes d'Appium peuvent être attribuées au protocole JSON Wire que les clients Appium utilisent pour interagir avec les appareils mobiles via le serveur Appium. Bien qu'il y ait une courbe d'apprentissage, cela vaut la peine d'apprendre, car cela rend les tests d'automatisation faciles et efficaces une fois que vous avez mis la main dessus.

Initialement développé en tant qu'outil CLI, Appium s'est maintenant transformé en une application de bureau GUI puissante et dynamique qui peut être exécutée sur les distributions Windows, MAC et Linux.

Architecture d'AppiumArchitecture du serveur Appium

Appium utilise une architecture client-serveur. Voici les composants clés de l'architecture Appium :

1) Serveur Appium : Appium Server est le composant central de l'architecture Appium. Il est écrit en Node.js et s'exécute sur la machine ou dans le cloud. Le serveur Appium reçoit les requêtes des bibliothèques clientes Appium via le protocole filaire JSON et appelle le pilote mobile (pilote Android/pilote iOS) pour se connecter aux infrastructures d'automatisation des tests natifs correspondants afin d'exécuter les opérations client sur les appareils. Les résultats des tests sont ensuite reçus et envoyés aux clients. Le serveur Appium a la capacité de créer plusieurs sessions pour exécuter simultanément des tests sur plusieurs appareils.

2) Bibliothèques clientes Appium : Les clients Appium demandent au serveur de démarrer une session d'automatisation de test à l'aide de la commande createSession() via le protocole JSON Wire, d'exécuter des tests sur plusieurs appareils mobiles et de recevoir les autres résultats du serveur Appium. Les bibliothèques client Appium couvrent plusieurs langages tels que PHP, Java, Ruby, JavaScript, C#, Python.

3) Protocole filaire JSON : Dans l'architecture client-serveur Appium, les clients Appium communiquent avec le serveur Appium via le protocole JSON Wire développé par l'équipe de développeurs WebDriver. Il permet aux développeurs d'accéder à des points de terminaison standard et prédéfinis via une API RESTful. À l'aide du protocole JSON Wire, vous pouvez tester des sites Web et des applications via un navigateur mobile tout en pouvant installer ou désinstaller des applications sur l'appareil pendant la session d'automatisation des tests.

4) Pilote Appium : Appium est indépendant de la plate-forme et de la technologie. Pour gérer efficacement différentes plates-formes, Appium utilise plusieurs pilotes et convertit l'API en sessions d'automatisation pour les plates-formes correspondantes.

  1. UiAutomator2 : Le pilote Appium par défaut pour les tests d'appareils Android
  2. UiAutomator1 : Pilote Appium pour les anciennes versions Android.
  3. XCUITest : Pilote Appium pour les tests d'appareils iOS
  4. WinAppDriver : Pilote Appium pour les tests de périphériques Windows
  5. Expresso: Nouveau pilote Appium pour les tests d'appareils Android

5) Frameworks de tests automatisés : Appium utilise les infrastructures de test automatisées natives pour exécuter les opérations client sur les appareils de test. Il se connecte au bootstrap.js qui agit comme un serveur TCP et exécute des commandes de test sur les appareils.

  1. Cadre UiAutomator : Pour les tests d'appareils Android
  2. Cadre XCUITest : Pour tester les applications iOS

Comment fonctionne Appium ?

Appium Server est écrit en Node.js et 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 via le protocole JSON Wire. 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 ensuite une nouvelle session d'automatisation des tests et appelle le pilote iOS/Android approprié. Lorsque le serveur Appium se connecte aux frameworks de test natifs correspondants, il commence également à interagir avec le service d'amorçage (bootstrap.jar/bootstrap.js) qui s'exécute sur les appareils mobiles pour effectuer des opérations, comme le ferait un utilisateur.

Une caractéristique extrêmement avantageuse d'Appium est qu'il permet aux développeurs d'utiliser le même code de test pour tester les appareils iOS et Android. Cependant, le défi ici est de différencier les demandes d'automatisation des tests des appareils iOS et Android. Pour ce faire, Appium examine l'option de fonctionnalités souhaitée. Lorsque vous créez une session de requête, vous devez mentionner les paires clé-valeur telles que deviceName, platformName, appPackage, appActivity, etc. Sur la base de ces valeurs, le serveur Appium achemine efficacement les requêtes client vers les frameworks de test correspondants.

Comment Appium fonctionne sur chaque appareil

Appium sur les appareils Android

  1. La machine cliente envoie une requête au serveur Appium via le protocole JSON Wire pour créer une nouvelle session d'automatisation de test.
  2. Une session d'automatisation des tests est créée sur le serveur. Le serveur vérifie également les capacités souhaitées. Pour les tests de la plate-forme Android, le serveur contacte le framework UiAutomator2 qui est un framework d'automatisation des tests natif dans Android.
  3. UiAutomator2 communiquera avec le bootstrap.jar qui s'exécute sur l'appareil, agissant comme un serveur TCP. Il fonctionne sur des émulateurs, des simulateurs ainsi que sur de vrais appareils.
  4. Bootstrap.jar reçoit les commandes et exécute les tests sur les appareils Android. Il transmet les détails du journal de test à UiAutomator2 qui, à son tour, envoie ces informations au serveur Appium. Bootstrap.jar transmet ensuite ces informations au client.

Appium sur les appareils iOS

  1. La machine cliente envoie une requête au serveur Appium via le protocole JSON Wire pour créer une nouvelle session d'automatisation de test.
  2. Une session d'automatisation des tests est créée sur le serveur. Le serveur vérifie également les capacités souhaitées. Pour les tests de la plate-forme iOS, le serveur contacte le framework XCUITest qui est un framework d'automatisation des tests natif dans iOS fourni avec Apple XCode.
  3. Le framework XCUITest communiquera avec le bootstrap.js qui s'exécute sur l'appareil agissant en tant que serveur TCP. Il fonctionne sur des émulateurs, des simulateurs ainsi que sur de vrais appareils.
  4. Bootstrap.js reçoit les commandes et exécute les tests sur les appareils iOS. Il transmet les détails du journal de test au XCUITest qui à son tour envoie ces informations au serveur Appium. Ces informations sont ensuite communiquées au client.

Qu'est-ce que le protocole JSON Wire et comment fonctionne-t-il avec Appium ?

JSON Wire Protocol est une norme populaire qui facilite la communication entre les bibliothèques clientes et le serveur dans un système hétérogène. En tant qu'outil indépendant de la plate-forme et du langage, Appium utilise cette fonctionnalité du protocole JSON Wire.

JSON est une forme abrégée de JavaScript Object Notation, dans laquelle des structures de données complexes sont représentées. Le protocole filaire est un mécanisme de transmission de données point à point.

Dans l'architecture Appium, la communication entre le serveur Appium et les bibliothèques clientes est facilitée par le WebDriver qui utilise le protocole JSON Wire sur une requête TTP REST avec des entrées JSON. Cet arrangement utilise la méthode de sérialisation et de désérialisation pour convertir les données d'objet au format JSON, et vice versa.

En tant qu'outil multiplateforme, le serveur n'a pas à comprendre les langages de programmation des bibliothèques clientes, mais doit simplement identifier le protocole pour créer et gérer des sessions d'automatisation.

L'architecture du protocole JSON

  1. Fin locale : c'est le côté client du protocole, normalement des bibliothèques clientes écrites dans un langage de programmation spécifique.
  2. Extrémité distante : c'est le côté serveur du protocole
  3. Extrémité intermédiaire : systèmes proxy qui peuvent agir à la fois comme extrémité distante et comme extrémité locale.
  4. Nœud d'extrémité : il s'agit de l'extrémité distante finale de la structure de nœud.

L'extrémité distante est le serveur qui lit les requêtes des clients finaux locaux et écrit les réponses via un socket TCP.

Par exemple, vous pouvez utiliser la commande New Session pour créer une nouvelle session WebDriver afin d'effectuer des opérations de test sur le nœud de point de terminaison ou utiliser la commande Find Element pour récupérer des éléments spécifiques.

Installer Appium
Appium est disponible en deux versions :

  1. Serveur Appium basé sur CLI
  2. Appium Desktop basé sur une interface graphique (il ajoute une couche d'interface graphique au serveur Appium et propose également Appium Inspector)

Installation du serveur Appium basée sur CLI
Appium propose une application de bureau à interface graphique dynamique qui vous permet de gérer facilement les opérations d'automatisation des tests. Cependant, lorsque vous intégrez des tests dans vos pipelines CI, vous devez démarrer le serveur Appium à l'aide des scripts. En tant que tel, vous devez installer le serveur Appium comme première étape.

Installation Appium

Appium est disponible en deux versions.

  1. Serveur Appium basé sur CLI
  2. Appium Desktop basé sur une interface graphique (il ajoute une couche d'interface graphique au serveur Appium et propose également Appium Inspector)

Installation du serveur Appium basée sur CLI

Appium propose une application de bureau à interface graphique dynamique qui vous permet de gérer facilement les opérations d'automatisation des tests. Cependant, lorsque vous intégrez des tests dans vos pipelines CI, vous devez démarrer le serveur Appium à l'aide des scripts. En tant que tel, vous devez installer le serveur Appium

Étape 1: Installez Node.js

Comme Appium est écrit en Node.js, vous devez d'abord installer Node.js pour utiliser Appium. Visitez le site Web Node.js pour télécharger le logiciel :

https://nodejs.org/en/download/current/

Installez Node.js

Une fois le téléchargement terminé, installez le package.

Installer le package Node.js

Acceptez le contrat de licence et passez à l'écran suivant.

Acceptez le contrat de licence

Choisissez le chemin Node.js qui est normalement C:Program Filesnodejs

Choisissez le chemin Node.js

L'écran suivant montre les composants en cours d'installation. En plus de Node.js, vous avez besoin d'un gestionnaire de packages. Npm est le gestionnaire de packages recommandé pour Node.js. Alors, installez également les outils NPM.

installer les outils NPM

L'écran suivant vous demandera d'autoriser l'installation des outils nécessaires pour compiler les modules natifs. Vous pouvez sélectionner cette option ou vous pouvez les installer manuellement à partir de GitHub si nécessaire.

installation des outils nécessaires pour compiler les modules natifs

Cliquez sur suivant et terminez l'installation.

terminer l'installation

Après l'installation, vérifiez si la variable d'environnement contient le chemin de npm et nodejs.

Le chemin système affiche le chemin Node.js et la variable utilisateur affiche le chemin npm.

Faites un clic droit sur Démarrer->Système->Avancé->Variables d'environnement

la variable utilisateur affiche le chemin npm

Étape 2 : Installez Appium à partir de l'invite de commande

Ouvrez l'invite de commande en tant qu'administrateur et tapez la commande suivante :

npm installer -g Appium

Installer Appium à partir de l'invite de commande

Le gestionnaire de packages npm lancera la procédure d'installation.

Le gestionnaire de paquets npm lancera la procédure d'installation

Après une installation réussie, vous pouvez commencer à utiliser Appium.

Pour ouvrir Appium à partir de l'invite de commande, tapez Appium suivi de l'adresse IP et du numéro de port du serveur.

Appium -a 127.0.0.1 -p 4723

Après une installation réussie, vous pouvez commencer à utiliser Appium

Maintenant, Appium est en cours d'exécution et le REST HTTP écoute sur l'adresse IP (dans l'exemple ci-dessus, localhost 127.0.0.1 et le port du serveur 4723).

Installation d'Appium Desktop basée sur l'interface graphique

Téléchargez et installez Appium Desktop

Pour télécharger et installer le bureau Appium, visitez le site Web d'Appium :

https://Appium.io/

Installation d'Appium Desktop basée sur l'interface graphique

Après une installation réussie, ouvrez le bureau Appium.

Ouvrez le bureau Appium

À l'écran d'ouverture, Appium vous demandera d'entrer l'adresse IP de l'hôte et le numéro de port du serveur.

Comme Appium n'est qu'un serveur HTTP, il ne fait rien par lui-même. Vous avez besoin des bibliothèques clientes pour demander et effectuer des opérations sur les appareils finaux. Il est donc important de configurer le port du serveur lorsque vous démarrez Appium. Le port du serveur est ce à quoi le client se connecte et communique avec Appium. Le port de serveur par défaut est 4723. Lorsque vous vous connectez aux machines clientes, vous devez spécifier ce port de serveur.

Pour changer le port du serveur, cliquez sur l'onglet Avancé et vous verrez un écran avec les paramètres de configuration du serveur. Entrez les détails et démarrez le serveur.

Démarrer le serveur

Si vous souhaitez enregistrer ces paramètres pour la prochaine fois, enregistrez-les en tant que paramètres prédéfinis et choisissez les paramètres de l'onglet prédéfini lorsque vous ouvrez Appium la prochaine fois.

Paramètres du serveur Appium

Appium Desktop est maintenant prêt à l'emploi.

Tirer parti d'Appium pour performer continuous testing

Appium offre d'énormes avantages dans la mesure où Appium Server peut être utilisé pour relayer les demandes de test et récupérer les données de test de manière autonome. Cette capacité s'accorde parfaitement avec continuous testing cadres.

In continuous testing, l'application est testée régulièrement tout au long du cycle de vie du produit. Cela inclut des tests individuels release construit avant l'intégration et aussi aprèsdeployment. En exécutant des tests en continu, les équipes produit automatisent de nombreuses tâches liées à la planification et à la création manuelles de tests, tandis que les produits sont testés plus fréquemment et plus intensément pour détecter tout problème, bogue ou vulnérabilité.

La plateforme DécouvrirTest, qui fait partie de Digital.ai Continuous Testing, est une solution de bout en bout utilisée pour tester les appareils et les navigateurs sur le Cloud ou un réseau distant. DécouvrirTest est entièrement compatible avec des outils tels que Appium, Selenium, XCUITest, etc.

La section ci-dessous fournit une procédure étape par étape pour connecter DécouvrirTest Cloud à Appium Desktop pour Windows :

Connecter Appium Desktop à la plateforme DécouvrirTest

La plateforme DécouvrirTest est une solution de bout en bout pour tester les appareils et les navigateurs sur le Cloud ou un réseau distant. DécouvrirTest est entièrement compatible avec des outils tels que Appium, Selenium, XCUITest, etc. La section ci-dessous fournit une procédure étape par étape pour connecter DécouvrirTest Cloud à Appium Desktop pour Windows.

Tu auras besoin de un compte DécouvrirTest Cloud valide.

Étape 1: Lancez Appium Desktop et démarrez une nouvelle session

Une fois le bureau Appium lancé, ouvrez une "Nouvelle session Windows…"

Nouvelle fenêtre de session

Étape 2: Obtenir la clé d'accès de DécouvrirTest Cloud

Accédez à l'interface utilisateur DécouvrirTest Cloud et cliquez sur l'icône représentant l'utilisateur. Cliquez ensuite sur Obtenir la clé d'accès comme indiqué ci-dessous.

Obtenir la clé d'accès de DécouvrirTest Cloud

Copiez la clé d'accès dans le presse-papiers à partir de la boîte de dialogue de clé d'accès ouverte.

Remarque : Dans ce cas, Nous avons utilisé Offre publique de DécouvrirTest Cloud dans les préférences de connexion.

Voir l'offre publique de Test Cloud dans les préférences de connexion.

Étape 3: Spécifiez les paramètres de connexion DécouvrirTest Cloud et les capacités souhaitées. L'étape précédente ouvrira une boîte de dialogue pour se connecter à un serveur Appium. Dans cette étape, nous allons spécifier les préférences de connexion du serveur Appium de DécouvrirTest Cloud.

Sélectionnez Experitest dans les 'Fournisseurs Cloud'

Sélectionnez Experitest dans les 'Fournisseurs Cloud'

Fournissez l'URL du cloud et la clé d'accès.

Définissez la capacité « nom de la plate-forme » sur iOS ou Android, en fonction de l'appareil que vous souhaitez utiliser.

Définissez la capacité "platformName" sur iOS ou Android, en fonction de l'appareil que vous souhaitez utiliser.

Cliquez sur Démarrer la session pour vous connecter à DécouvrirTest Cloud. Cette étape se connectera au DécouvrirTest Cloud.

Une session continue d'Appium Desktop sur DécouvrirTest Cloud est également disponible dans l'interface utilisateur de DécouvrirTest Cloud. Cela permet à l'utilisateur de mieux contrôler l'appareil.

Cliquez sur Démarrer la session pour vous connecter à DécouvrirTest Cloud

Accédez à l'onglet Exécution dans l'interface utilisateur DécouvrirTest Cloud et cliquez sur déboguer pour utiliser la session Appium Desktop en cours.

Il s'agit d'une fonctionnalité très pratique car un utilisateur de test peut tirer parti des fonctionnalités puissantes de DécouvrirTest et d'Appium au cours de la même session. Le principal avantage de cette session est que les opérations de test effectuées à l'aide de DécouvrirTest sont plus rapides et plus conviviales. Appium Inspector peut être utilisé pour inspecter n'importe quel élément de la session.

DécouvrirTest et Appium dans la même session

Bien sûr, si vous voulez le voir en temps réel, nous avons ce qu'il vous faut avec ce super tutoriel vidéo.

https://www.youtube.com/watch?v=GjX56G0rtEw&feature=emb_logo

Appium est une solution pratique pour l'automatisation continuous testing À l'échelle

Grâce à toutes ses qualités avantageuses et à son intégration facile dans d'autres suites de tests, la popularité d'Appium ne montre aucun signe de ralentissement au fil du temps. Nos équipes gardent toujours cela à l'esprit lorsque nous développons et release les dernières versions de DécouvrirTest.

En ce qui concerne les informations contenues dans le billet de blog, nous vous recommandons de mettre cette page en signet afin que vous ayez toujours les informations du didacticiel disponibles. Et naturellement, nous vous recommandons, si vous n'avez pas encore utilisé notre intégration Appium, de télécharger et de voir par vous-même.

Êtes-vous prêt à faire évoluer votre entreprise ?

Explorer

Quoi de neuf dans le monde de Digital.ai

22 avril 2024

Les biais dans la machine : les biais des données de formation et leur impact sur le code généré par les assistants de code IA

Explorez les biais dans les données de formation en IA ayant un impact sur la génération de code et apprenez des stratégies pour les atténuer pour un développement de l'IA et une innovation logicielle plus équitables.

En savoir plus
22 février 2024

Comment le futurisme façonne les tests cloud : une prévision

Découvrez l'avenir des tests cloud : approches stratégiques pour exploiter efficacement la technologie, améliorer la qualité des logiciels et garantir la réussite de l'entreprise.

En savoir plus
4 décembre 2023

La recherche de la qualité : tests logiciels automatisés en continu pour l'industrie automobile

De la création de tests basés sur l'IA aux systèmes d'auto-réparation, découvrez comment continuous testing et les développements innovants façonnent l’avenir des technologies connectées, safeet des véhicules fiables.

En savoir plus