Articles

Qu’est-ce que le rapporteur?

Protractor

Selon la toute première architecture d’application web de base, un serveur en raison du rechargement constant du contenu et de l’énorme échange de données, il est plus courant pour les sites Web statiques que les applications Web réelles composées d’une logique de construction de page Web et d’une logique métier interagit avec un client en envoyant une page HTML complète. Pour voir une mise à jour, l’utilisateur doit recharger complètement la page ou, en d’autres termes, demander au client d’envoyer une demande de page HTML au serveur et de charger à nouveau tout son code. Regardez le diagramme d’architecture d’application Web de ce type.

CSA hérité

De nos jours, de nombreuses entreprises passent d’une architecture Client-serveur traditionnelle à une architecture moderne, où après le chargement de la première page, toute interaction avec le serveur se fait via des appels AJAX. Ces appels AJAX renvoient des données — et non des balises — généralement au format JSON. L’application utilise les données JSON pour mettre à jour la page de manière dynamique, sans recharger la page.

Dans ce type, la logique de construction de page Web est remplacée par des services Web et chaque page du client a des entités distinctes appelées widgets. En envoyant des requêtes AJAX aux services Web, les widgets peuvent recevoir des morceaux de données en HTML ou JSON et les afficher sans recharger la page entière. Avec les mises à jour des widgets en temps réel, ce type est plus dynamique, adapté aux mobiles et presque aussi populaire que le type suivant.

La dernière CSA

Angular est l’un des frameworks qui permet de créer de telles applications. Angular est livré avec son propre ensemble de fonctionnalités, de sorte que la stratégie de localisation traditionnelle pour les tests d’automatisation prendra du temps.

Qu’est-ce que le rapporteur?

Protractor est un framework de test de bout en bout pour les applications AngularJS et fonctionne comme un intégrateur de solutions combinant des outils et des technologies puissants tels que NodeJS, Selenium WebDriver, Jasmine, Cucumber et Moka. Il a été initialement développé par les développeurs de Google pour prendre en charge les applications Angular et plus tard, il est publié en tant que framework open source. Maintenant, protractor prend en charge les applications angulaires et Non angulaires. Le rapporteur est un wrapper écrit au-dessus de Webdriver.js, toutes les fonctionnalités prises en charge dans Selenium Webdriver le sont, en plus des fonctionnalités spécifiques angulaires.

WebDriverJs est l’implémentation javascript officielle de selenium. Il utilise le protocole Selenium JSON-Wire pour interagir avec le navigateur comme le fait selenium java. Le rapporteur dépend de WebdriverJs pour interagir avec le navigateur.

Pourquoi les éléments web JS Angulaires sont-ils difficiles à identifier ?

Les applications JS Angulaires ont des attributs HTML supplémentaires tels que ng-repeater, ng-controller, ng-model.., etc. qui ne sont pas inclus dans les localisateurs de sélénium. Selenium n’est pas en mesure d’identifier ces éléments Web à l’aide du code Selenium. Ainsi, le rapporteur sur le dessus de Selenium peut gérer et contrôler ces attributs dans les applications Web.

Qu'est-ce que le rapporteur?

Caractéristiques du rapporteur

Prend en charge les localisateurs angulaires spécifiques: L’application angular est livrée avec des localisateurs spécifiques angulaires tels que ng-model, ng-bind, ng-repeat, etc. protractor a donc pris en charge ces localisateurs. Vous n’avez pas à créer de XPath complexe pour les localisateurs angulaires, dans Protractor, ces localisateurs sont prêts pour vous, vous pouvez donc simplement les utiliser.modèle, par.répéteur, etc.

Prend en charge les applications Non angulaires et angulaires: Protractor prend en charge les applications angulaires, mais il prend également en charge les applications non angulaires. Cela signifie que si votre partie de l’application n’est pas angulaire et qu’une partie de celle-ci est angulaire, vous pouvez toujours choisir le framework protractor et vous pouvez effectuer une automatisation complète des tests d’automatisation de bout en bout.

Prend en charge les tests inter-navigateurs: Nous pouvons exécuter nos scripts dans plusieurs navigateurs tels que Chrome, Firefox, Safari, IE11, Edge. La configuration pour les tests inter-navigateurs est facile et ne prend pas beaucoup de temps. Nous aborderons ce sujet en détail dans nos prochains tutoriels.

Prend en charge l’exécution parallèle: Considérons que nous avons un grand nombre de cas de test, Si tous les cas de test doivent s’exécuter séquentiellement i.e l’un après l’autre, cela prend beaucoup de temps. L’exécution parallèle aide dans ce cas. L’exécution parallèle exécute des cas de test dans plusieurs instances du navigateur, par exemple si vous avez 4 cas de test, lors d’une exécution dans deux instances du navigateur, chacune exécute deux -deux cas de test à un seul moment, Donc en moins de temps, plus de cas de test seront exécutés.

Prend en charge le navigateur sans tête: Un navigateur sans tête est un navigateur sans interface utilisateur. Protractor prend également en charge le navigateur sans tête.

Prend en charge l’extensibilité : Puisque le rapporteur est un nœud.l’application js, peut utiliser la grande variété de paquets disponibles dans le nœud. Ainsi, on peut étendre son framework ou ajouter des fonctionnalités supplémentaires en installant des packages de nœuds. Par exemple, si vous avez besoin d’un rapport HTML, vous pouvez simplement utiliser Jasmine HTML Reporter, pour le code propre, vous pouvez installer eslint ou tslint. De même, vous pouvez installer des paquets de nœuds de votre choix.

Prend en charge les plugins de reporting : Par rapport aux non-nœuds.cadre d’automatisation open source basé sur js il est facile de configurer le rapport dans protractor. Jasmine HTML Reporter est l’un des frameworks de génération de rapports. Qui produit des rapports HTML pour vos spécifications. Ci-dessous, l’exemple de rapport

Prend en charge les plates-formes de test Cloud: Les plates-formes de test basées sur le cloud nous permettent d’exécuter nos spécifications sur plusieurs navigateurs (Chrome, Firefox, Safari, etc.), de multiples plateformes (Windows, Mac, Linux, Mobile, etc.). Protractor est pris en charge par les principales plates-formes de test cloud telles que SauceLabs et CrossBrowserTesting.com .

Prend en charge plusieurs bibliothèques d’assertions: Protractor prend en charge plusieurs bibliothèques d’assertions comme Jasmine, Mocha ou vous pouvez même utiliser vos bibliothèques personnalisées. Par défaut, protractor utilise le framework Jasmine pour les assertions.

Supporte le flux de contrôle : L’API est basée sur des promesses, qui sont gérées par un flux de contrôle et adaptées à Jasmine. Les API Protractor sont entièrement asynchrones. Toutes les fonctions renvoient des promesses. Il maintient une file d’attente de promesses en attente, appelée flux de contrôle, pour organiser l’exécution. (Nous aborderons plus en détail les promesses dans les prochaines sections du tutoriel).

Prend en charge divers éditeurs d’Es &: Il existe des tonnes d’Es sur le marché parmi lesquelles vous pouvez choisir. Les éditeurs les plus populaires sont Visual Studio Code, WebStorm, Visual Studio Professional, Atom et sublime. (Nous couvrirons en détail nos prochains tutoriels)

Prend en charge CI/CD: Une fois les scripts d’automatisation en place, nous n’avons pas besoin de les exécuter manuellement et de les surveiller. Chaque fois qu’un nouveau code arrive dans le référentiel, les tests du rapporteur doivent s’exécuter automatiquement et vous obtenir le rapport. Cela signifie que nous devons automatiser le processus, nous pouvons y parvenir en intégrant le test du rapporteur pour créer des outils tels que Jenkins, TFS ou Azure DevOps. Protractor prend en charge l’intégration des outils de construction. (Nous couvrirons les détails de configuration étape par étape dans nos prochains tutoriels).

Comment fonctionne le rapporteur?

framework

Protractor est un framework de test de bout en bout, Protractor est construit sur WebdriverJS, WebdriverJS est des liaisons javascript Selenium webdriver API. Cela signifie que l’API WebdriverJS fournit des API pour les tests écrits en javascript. Le rapporteur est un framework de test basé sur le sélénium, ce qui signifie que le rapporteur interagit avec le serveur selenium et les WebDrivers tels que ChromeDriver, GeckoDriver, SafariDriver, etc. pour simuler les actions de l’utilisateur.

Lorsque vos scripts de test envoient des commandes à Selenium server qui à son tour communique avec le pilote du navigateur et exécute les commandes (effectuer des actions). Vient ensuite le framework d’assertion, Protractor prend en charge divers frameworks d’assertions tels que Jasmine, Moka, etc. Ce cadre d’assertion nous aide à valider ou à vérifier les valeurs, à son tour, votre test sera marqué comme réussi ou échoué. En bref, Protractor, WebdriverJS, Serveur Selenium, Pilote de navigateur et Cadre d’assertion fournissent l’infrastructure nécessaire à l’écriture et à l’exécution de nos tests de bout en bout.