web-dev-qa-db-fra.com

Les applications angularjs peuvent-elles être automatisées avec du sélénium? si oui, pourquoi utiliser le rapporteur?

Je sais que nous pouvons automatiser les applications AngularJs avec Selenium. Mais nous avons un cadre de test E2E distinct qui est le rapporteur pour l'automatisation des applications AngularJs.

Quelqu'un peut-il m'aider à comprendre pourquoi nous devrions utiliser Protractor? Pourquoi pas le sélénium?

18
Suresh Salloju

Je ne suis pas sûr de comprendre votre question. Ai-je raison de supposer que vous préférez utiliser le sélénium - mais que vous voulez comprendre ce qui vous manque?

Eh bien - Selenium fournit des moyens d'automatiser les navigateurs Web - et donc utilisé pour les tests automatisés e2e. L'API Selenium a des implémentations dans plusieurs langages de programmation majeurs - vous permettant d'écrire vos tests en Java, C #, python, Ruby, JavaScript et plus encore.

Si vous disposez déjà d'un cadre de test e2e basé sur Selenium - vous pouvez également l'utiliser pour les applications Web AngularJS. Vous pouvez également écrire les scripts JavaScript nécessaires qui, une fois exécutés à l'aide du pilote Web, vous permettront de faire tout ce que fait Protractor, mais vous devrez le faire vous-même (emprunter simplement le code source de Protractor).

Pourquoi est-ce faisable? Parce que Protractor a essentiellement pris en charge l'implémentation JavaScript de Selenium Webdriver et l'a enveloppé d'une manière qui vous facilite la vie lors des tests Angular Applications Web JS).

Vous pouvez voir des explications spécifiques dans ce vieux message: http://testautomation.applitools.com/post/94994807787/protractor-vs-Selenium-which-is-easier

Je dirais que si vous: 1. voulez écrire votre code de test en JavaScript 2. vous concentrez principalement sur Angular JS apps

Vous voudrez peut-être envisager d'utiliser Protractor. Encore une fois - pas de magie là-bas. Tout ce qu'ils ont fait est là dans leur code source - vous pouvez donc faire votre choix si vous préférez rester avec Selenium.

19
Doron Zavelevsky

protractor est un framework de test d'automatisation de navigateur de bout en bout qui fonctionne via WebDriverJs qui est un pilote Web Selenium javascript.

Citation de Comment ça marche? page de documentation:

Selenium est un framework d'automatisation de navigateur. Selenium comprend le serveur Selenium, les API WebDriver et les pilotes de navigateur WebDriver.

Protractor fonctionne en collaboration avec Selenium pour fournir une infrastructure de test automatisée qui peut simuler l'interaction d'un utilisateur avec une application Angular exécutée dans un navigateur ou un appareil mobile.

Protractor est un wrapper autour de WebDriverJS, les liaisons JavaScript pour l'API Selenium WebDriver.

enter image description here

Regarde aussi:

7
alecxe

Avec rapporteur, vous pouvez écrire des tests e2e avec JavaScript, la langue que vous écrivez avec l'application Angular.

En outre, il possède des fonctionnalités spécifiques à Angular.

  • Ses chercheurs d'éléments attendent la boucle $ digest d'Angular et $ http pour terminer. Vous aurez donc moins de chance de lutter contre les problèmes de sommeil et de synchronisation.
  • Vous pouvez sélectionner des éléments avec certaines des directives courantes telles que ng-model, ng-repeat, ng-bind, etc. Ceci est quelque peu pratique car vous pouvez avoir relativement moins d'identifiants et de classes dans les applications Angular car vous en avez besoin uniquement pour CSS.
2
Shuhei Kagawa