web-dev-qa-db-fra.com

Appium vs Espresso pour un cadre de test automatisé

Au cours des dernières semaines, j'utilisais Appium(python) pour Android testing mais hier nous avons décidé de passer à Expresso(Java) pour les tests automatisés. Il y a quelques raisons pour lesquelles nous faisons ce changement:

  • Nous voulons étendre nos tests automatisés et de nombreuses fonctionnalités ne sont pas présentes dans appium.

  • C'est l'un des derniers frameworks de test pour Android, et il a une compatibilité ascendante agréable.

  • Petite API et très facile à personnaliser.

Je lis depuis Espresso mais je ne trouve rien du tout génial, si je le compare avec Appium. Je suis un Python/R developer alors peut-être qu'il y a quelques points que je ne peux pas comprendre. Quelqu'un voudrait-il m'aider à comprendre si le passage à ce nouveau cadre de test sera bon pour l'avenir? Il me manque une vue d'ensemble ici, et toute aide serait grandement appréciée.

18
python
  1. Le Shifting sera très utile car Espresso prend en charge les activités de test en dehors de l'application comme la caméra, le navigateur et le numéroteur, etc., que Appium ne prend pas en charge.
  2. Espresso, vous pouvez tester le message toast, la saisie automatique et les dialogues qui sont en dehors de l'application.
  3. Avec Espresso Test Suit, vous pouvez trouver la couverture du code et mesurer vos efforts de test.
14
anuja jain

Vous pouvez accéder à Espresso si vous vous en tenez uniquement à l'automatisation Android et que vous n'avez aucune idée d'automatiser iOS.

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

L'avantage est qu'il est directement open source par Google.

Mais mon choix est d'aller avec Appium car c'est une grande communauté open source avec d'énormes améliorations en cours et facile à automatiser avec n'importe quel langage de programmation et inutile de dire qu'il prend en charge les deux Android et iOS.

13
karthick23

Je conviens que Espresso peut être très efficace en ce qui concerne Android test uniquement. Par exemple, il ne peut exécuter que l'activité testée, ce qui est génial.

Pourtant, je m'en tiens à l'Appium car il a la même API pour AndroidDriver et iOSDriver. Habituellement Android sont accompagnées d'applications iOS, et si vous êtes responsable de l'automatisation de l'interface utilisateur, vous devez prendre en compte les 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 les méthodes d'assistance et la configuration,
  • Les tests Android et iOS peuvent partager une logique de test commune à un niveau supérieur, tout en ayant une implémentation différente ou légèrement différente au niveau inférieur (par exemple, parfois, je peux simplement copier la classe d'objet de la page entière et faire un simple changement de localisateurs afin de le faire fonctionner sur l'autre). Plate-forme),
  • la même API nous permet de basculer de manière transparente entre iOS et Android test de développement en équipe. Passer facilement à Selenium pour le développement Web est un avantage supplémentaire.

Le plus gros inconvénient d'Appium est la vitesse des scénarios de test plus longs et certaines difficultés pour localiser les éléments, mais c'est toujours mon choix.

Comme note latérale, je voudrais ajouter que vous ne devez pas oublier la pyramide de test qui fait référence à l'automatisation des tests. Veuillez maintenir l'équilibre entre les tests unitaires, les tests d'intégration et les tests d'interface utilisateur http://martinfowler.com/bliki/TestPyramid.html

8
kiedysktos

La principale différence entre les deux est,

Le test Espresso est dans l'application et il connaît toutes les couches de l'application. Vous pouvez donc vous moquer de certaines couches d'application, plus comme un test en boîte blanche

Les tests Appium sont en boîte noire, les tests ne connaissent que la couche UI de l'application. Le principal avantage est pour les tests multiplateformes.

6
Santhosh Kumar