Appium vs Espresso pour framework de test automatisé

Ces dernières semaines, j’utilisais Appium(python) pour tester Android, mais hier, nous avons décidé de passer à Expresso(Java) pour les tests automatisés. Nous faisons ce changement pour plusieurs raisons:

Je lisais pour Espresso mais je ne trouve rien de génial, si je compare avec Appium. Je suis un Python/R developer alors il y a peut-être quelques points que je ne peux pas comprendre. Quelqu’un voudrait-il m’aider à comprendre si le passage à ce nouveau cadre de test sera bénéfique pour l’avenir? Il me manque la plus grande image ici, et toute aide serait grandement appréciée.

  1. Le changement sera très utile car Espresso prend en charge les activités de test en dehors de l’application, telles que l’appareil photo, le navigateur, le numéroteur, etc., qu’appium ne prend pas en charge.
  2. Espresso vous pouvez tester le message de pain grillé, l’auto-complétion et les dialogs qui sont en dehors de l’application.
  3. Avec Espresso Test Suit, vous pouvez trouver la couverture de code et mesurer vos efforts de test.

Vous pouvez utiliser Espresso si vous vous en tenez uniquement à l’automatisation Android et n’avez aucune idée d’automatiser iOS.

AFIKW, Espresso a besoin du code source de l’application pour l’automatiser.

L’avantage est que c’est directement open-source de google.

Mais je dois aller avec Appium car il s’agit d’une vaste communauté à source ouverte dotée d’énormes améliorations et facile à automatiser avec n’importe quel langage de programmation. Inutile de dire qu’elle prend en charge Android et iOS.

Je conviens qu’Espresso peut s’avérer très efficace lorsqu’il s’agit de tester uniquement Android. Par exemple, il ne peut exécuter que l’activité qu’il teste, ce qui est génial.

Néanmoins, je m’en tiens à l’Appium car il possède la même API pour AndroidDriver et iOSDriver. Généralement, les applications Android sont accompagnées d’applications iOS et si vous êtes responsable de l’automatisation de l’interface utilisateur, vous devez tenir compte des coûts globaux.

Appium présente les avantages suivants par rapport à une solution spécifique à la plate-forme:

  • Les tests Android et iOS peuvent partager de nombreuses classes, y compris des méthodes d’assistance et de la configuration,
  • Les tests Android et iOS peuvent partager la même logique de test à un niveau supérieur, tout en ayant une implémentation différente ou légèrement différente à un niveau inférieur (par exemple, je peux parfois simplement copier une classe d’object de page entière et faire un simple changement de localisateurs Plate-forme),
  • La même API nous permet de basculer de manière transparente entre le développement de tests iOS et Android au sein d’une équipe. Le basculement facile vers Selenium pour le développement Web constitue un avantage supplémentaire.

Le principal inconvénient d’Appium est la rapidité des scénarios de test plus longs et quelques difficultés à localiser les éléments, mais c’est toujours mon choix.

En guise de remarque, j’aimerais append qu’il ne faut pas oublier la pyramide de test, qui fait référence à l’automatisation du test. Veuillez maintenir un équilibre entre les tests unitaires, les tests d’intégration et les tests d’interface utilisateur http://martinfowler.com/bliki/TestPyramid.html

La principale différence entre les deux est,

Le test Espresso fait partie de l’application et prend en compte toutes les couches de l’application. Ainsi, vous pouvez vous moquer de certaines couches de l’application, plus comme un test de boîte blanche

Les tests Appium sont une boîte noire, les tests ne connaissent que la couche d’interface utilisateur de l’application. Le principal avantage est le test multiplateforme.