Fermer

octobre 19, 2023

Quoi de neuf dans Appium 2.0 : une plongée approfondie dans l’automatisation mobile

Quoi de neuf dans Appium 2.0 : une plongée approfondie dans l’automatisation mobile


L’automatisation mobile est devenue un aspect essentiel du développement de logiciels, car elle permet aux équipes de garantir que leurs applications fonctionnent de manière transparente sur divers appareils et plates-formes. Appium est un framework de test mobile open source bien connu qui automatise les tests pour les plateformes iOS, Android, TV, Firestick et Windows. Il prend en charge les tests d’applications natives, mobiles, Web et hybrides. Grâce à Appium, les tests automatisés peuvent être exécutés sur de vrais appareils mobiles, des téléviseurs, des Firestick, des émulateurs Android et des simulateurs iOS. Vous pouvez automatiser les tests d’interface utilisateur sur plusieurs plates-formes de manière standardisée avec Appium. Si de nombreux outils permettent d’automatiser l’interface utilisateur sur les plateformes, il s’agit souvent d’outils natifs spécifiques à une plateforme, comme Espresso pour Android et XCUITest pour iOS, nécessitant des connaissances particulières en langage de programmation et en chaînes d’outils. Le framework Appium vise à intégrer toutes ces technologies d’automatisation dans une interface stable accessible via les langages de programmation les plus populaires, notamment Java, Python, Ruby, C# et Javascript.

Dans cet article de blog, nous examinerons en profondeur les avancées d’Appium 2.0.

Architecture de l’application 2.0

Fonctionnalités d’Appium 2.0 : qu’est-ce qui a disparu ou différent ?

Modifications du protocole

Appium 2.x a subi un changement important et approfondi dans son architecture. Il ne prendra plus en charge les anciens protocoles JSONWP (JSON Wire Protocol) et MJSONWP (Mobile JSON Wire Protocol). Ces protocoles étaient utilisés dans Selenium et Appium avant que le protocole W3C WebDriver ne soit accepté comme standard Web. Jusqu’à Appium 2.0, il prenait également en charge le protocole W3C WebDriver et ces anciens protocoles, permettant aux anciens clients de communiquer avec les nouveaux serveurs Appium. Cependant, cela a changé avec Appium 2.0, et seul le protocole W3C WebDriver sera désormais pris en charge.

Pilotes Appium séparés du serveur Appium

La dernière version d’Appium, la version 2.0, a séparé les pilotes du serveur Appium principal. Dans la version précédente, tous les pilotes étaient installés avec le serveur, ne laissant aux utilisateurs d’autre choix que de télécharger tous les pilotes même s’ils n’en avaient pas besoin. Avec la nouvelle version, les utilisateurs peuvent télécharger uniquement les pilotes dont ils ont besoin, réduisant ainsi considérablement la taille de l’installation. Cela permet également des mises à jour indépendantes des pilotes, ce qui signifie que les utilisateurs peuvent mettre à jour un pilote tout en gardant un autre stable. Les utilisateurs ont désormais plus de contrôle sur les versions de pilotes qu’ils souhaitent utiliser et peuvent choisir d’installer uniquement celles dont ils ont besoin.

Vous pouvez exécuter la commande suivante pour répertorier les pilotes disponibles :

liste des pilotes AppiumOu exécutez la commande suivante pour installer l’un des pilotes souhaités :

installation du pilote appium

Vous pouvez exécuter la commande pour installer une version particulière du pilote :

Installation du pilote Appium xcuitest@4.32.20

Vous pouvez également mentionner le nom du pilote lorsque vous installez l’outil de ligne de commande Appium lui-même en utilisant la commande suivante :

npm install –global appium –drivers=uiautomator2,xcuitest

Mises à jour du pilote Appium

Auparavant, dans Appium 1.x, les pilotes Appium étaient étroitement liés au serveur Appium, ce qui signifie que les mises à jour des pilotes n’étaient disponibles que lorsque la dernière version du serveur était publiée. Il n’était pas possible de mettre à jour les pilotes séparément. Cependant, avec l’introduction d’Appium 2.x, les pilotes sont désormais distincts du serveur et sont publiés avec leurs propres numéros de version. Ainsi, nous pouvons désormais recevoir les mises à jour des pilotes dès qu’elles sont disponibles, sans avoir à attendre une nouvelle version du serveur Appium.

Vous pouvez exécuter la commande suivante pour voir quel pilote dispose d’une nouvelle mise à jour disponible :

liste des pilotes Appium – mises à jour

Lorsque vous souhaitez mettre à jour un pilote, vous pouvez simplement exécuter la commande suivante pour le mettre à jour :

liste des pilotes Appium [driver-name]

Modifications du chemin d’installation du pilote Appium

Avant Appium 2.x, tous les pilotes Appium étaient installés ensemble dans le dossier node_modules du dossier binaire principal du serveur Appium. Cela signifie que tous les pilotes peuvent être trouvés dans le répertoire /path/to/appium/node_modules. Cependant, avec Appium 2. x, l’emplacement par défaut d’installation des pilotes est devenu APPIUM_HOME, qui est défini sur ~/.appium. Par conséquent, tout pilote Appium installé sera enregistré dans $APPIUM_HOME/node_modules/.

Chemin de base du serveur Appium

La version précédente d’Appium 1.x avait un chemin de serveur par défaut de « https://localhost:4723/wd/hub », qui acceptait diverses commandes Appium. Le chemin incluait `/wd/hub` et n’était pas modifiable. Appium 2.x a désormais un chemin de base par défaut de `/` pour le serveur Appium. Pour ceux qui préfèrent l’ancien comportement, il est toujours possible de configurer le chemin de base en utilisant l’argument appium –base-path=/wd/hub` au démarrage du serveur.

Plugins

En tant qu’auteur d’extensions Appium, vous pouvez désormais créer vos propres plugins de serveur. Cela vous permet d’intercepter et de modifier n’importe quelle commande Appium, ainsi que d’ajuster le fonctionnement du serveur HTTP Appium sous-jacent. Grâce à ces fonctionnalités, vous pouvez adapter Appium pour répondre aux exigences spécifiques de votre projet et personnaliser davantage ses performances.

Voici quelques plugins Appium 2.0 disponibles au moment de la rédaction de ce blog,

  • Images – Pour la correspondance et la comparaison d’images.
  • Gestes – Pour effectuer des gestes de base à l’aide des actions du W3C.
  • Attendez – Attendre qu’un élément devienne présent.
  • Journaliste – Pour générer des rapports HTML simples avec des captures d’écran.
  • Pilote d’exécution– D’exécuter tous les lots de commandes avec un seul appel au serveur Appium.

Nous verrons comment installer les plugins Appium 2.0 afin que vous puissiez facilement démarrer avec toutes les nouvelles fonctionnalités.

Pour installer un plugin Appium, la commande suivante peut être exécutée –

installation du plugin appium

Cependant, pour savoir quels plugins sont disponibles pour l’installation, nous pouvons utiliser la commande suivante –

liste des plugins Appium

De même, tout plugin installé peut être désinstallé à l’aide de la commande mentionnée ci-dessous.

désinstallation du plugin appium

La bibliothèque client JavaScript « WD » n’est plus prise en charge

Au fil des années, les créateurs d’Appium ont été chargés de prendre soin de la bibliothèque cliente WD. Cependant, avec l’introduction d’Appium 2.x, cette bibliothèque est devenue obsolète et n’est plus mise à jour pour prendre en charge le protocole W3C WebDriver. Par conséquent, si vous utilisez actuellement cette bibliothèque, il est recommandé de passer à une bibliothèque plus moderne. À l’heure actuelle, Appium et la bibliothèque client WD suggèrent d’utiliser WebdriverIO. Cette bibliothèque mise à jour inclut toutes les dernières fonctionnalités et est entièrement compatible avec les nouvelles normes de protocole introduites avec Appium 2.0.

Commandes d’automatisation du pilote Appium

Avec Appium 1.x, tenter d’exécuter une commande Appium qui n’a pas été implémentée par le pilote correspondant entraînerait une erreur « 501 Not Yet Implemented ». Dans Appium 2.x, cette erreur a été remplacée par « 404 Not Found ».

Mise à jour des capacités

Auparavant, lors de l’utilisation d’Appium 1.x, il n’était pas nécessaire de mettre à jour le préfixe du fournisseur dans les fonctionnalités souhaitées d’Appium. Cependant, avec Appium 2.x, le préfixe du fournisseur doit être inclus dans toutes les fonctionnalités, à l’exception des fonctionnalités « nom du navigateur » et « nom de la plate-forme ». Le préfixe du fournisseur se compose du nom du fournisseur au format chaîne, suivi de deux points (:) et du nom de la fonctionnalité, tel que « appium: ». La dernière version des liaisons Appium Inspector et client Appium dans divers langages de programmation gère automatiquement l’ajout du préfixe du fournisseur au nom de la fonctionnalité respective.

Fonctionnalité d’analyse d’image déplacée vers le plugin

Dans le passé, Appium 1.x incluait la comparaison d’images et la possibilité de localiser des éléments par image. Cependant, ces fonctionnalités ont été déplacées vers un plugin appelé Images. Pour installer le plugin Images, utilisez la commande « appium plugin install images ». Pour utiliser le plugin, il est nécessaire d’inclure l’argument « -use-plugins=images » lors du démarrage du serveur Appium, à l’aide de la commande « appium ».

Commande d’exécution du pilote déplacée vers le plugin

La commande « execute-driver » dans Appium 1.x a été déplacée vers un nouveau plugin appelé « execute-driver » dans Appium 2.x. Pour installer le plugin, utilisez la commande « appium plugin install perform-driver ». Pour utiliser le plugin, incluez l’argument « -use-plugin » lors du démarrage du serveur Appium.

Les fichiers externes ne sont plus pris en charge pour –node-config, –default-capabilities, –allow-insecure, –deny-insecure

La prise en charge de la fourniture de fichiers externes n’est plus fournie pour les indicateurs suivants dans Appium 2.x :

  • –node-config
  • –capacités par défaut
  • –autoriser-non sécurisé
  • – refuser-non sécurisé

Il est recommandé de fournir ces options à l’aide d’un fichier de configuration.

Anciens pilotes supprimés

Les anciens pilotes Appium pour iOS et Android, comme « uiautomator1 », ainsi que les outils associés comme « authorize-ios », qui n’étaient pas pertinents pendant de nombreuses années dans Appium 1.x, ont été supprimés dans Appium 2.x.

Suppression de la prise en charge du démarrage du serveur Appium sur le port zéro (–port-0)

Lors de l’utilisation d’Appium 1.x, le serveur démarrait sur un port libre aléatoire si aucun port spécifique n’était spécifié. Cependant, dans Appium 2.x, il n’est plus autorisé d’utiliser le port 0 et les valeurs de port doivent être supérieures à 1. Il est désormais recommandé de démarrer le serveur Appium sur un port connu et explicite pour connaître les meilleures pratiques. De plus, certains packages internes ont été renommés dans le pack Appium npm.

Packages internes renommés

Certains packages npm internes d’Appium ont été renommés. Par exemple, « appium-base-driver » est désormais @appium/base-driver. Un autre exemple est appium-doctor, qui est désormais renommé @appium/doctor. Il ne s’agit pas d’un changement radical pour les utilisateurs d’Appium, cependant, ceux qui maintiennent du code qui fonctionne directement avec Appium seront impactés.

Appium Desktop obsolète

Avant Appium 2.x, Appium Desktop était utilisé comme application d’interface utilisateur graphique pour lancer le serveur Appium et incluait un inspecteur Appium intégré pour faciliter l’identification des éléments mobiles. Cependant, avec la sortie d’Appium 2.x, Appium Desktop a été interrompu et Appium Inspector a été déplacé vers son application. De plus, Appium Inspector propose désormais une version Web accessible via https://inspector.appiumpro.com. Il est important de noter que pour utiliser cette version du navigateur avec un serveur Appium local, le serveur doit être démarré avec l’indicateur –allow-cors.

Obsolète

  1. La classe MobileBy a été supprimée et remplacée par la classe AppiumBy dans Appium 2.0. Étant donné qu’Appium prend en charge l’automatisation des applications mobiles et de bureau, il est logique que la classe MobileBy soit obsolète.
  2. Avec la standardisation du protocole W3C, les classes TouchAction et MultiTouchAction sont devenues obsolètes. Vous devrez donc plutôt utiliser la classe de séquence pour effectuer les actions effectuées au toucher de nos doigts. La prise en charge de ces actions sera supprimée des futures versions d’Appium.
  3. Classe SelendroidDriver– Étant donné que cette classe est utilisée lors de l’utilisation du protocole JSON Wire qui n’est plus pris en charge dans Appium 2.0, elle est obsolète
  4. Méthode LaunchApp – La méthode de démarrage de l’activité peut être utilisée à la place.
  5. Méthode closeApp – la méthode clearApp peut être utilisée.
  6. Méthode resetApp – Les méthodes clearApp et StartActivity peuvent être utilisées.
  7. Classes MobileElement (AndroidElement et iOSElement) – La classe WebElement peut être utilisée à la place, comme indiqué ci-dessous.

Résumé

Si vous envisagez de migrer d’Appium 1.x vers 2.x, il est important de prendre note des multiples modifications majeures qui ont été introduites. Pour garantir une transition transparente, assurez-vous d’installer les pilotes et plugins nécessaires et d’apporter les modifications appropriées comme indiqué dans ce blog.

Bons tests !






Source link

octobre 19, 2023