ProtracTutoriel de test Tor : Cadre d’outil d’automatisation

⚡ Résumé intelligent

ProtracTor est un framework de test comportemental de bout en bout conçu pour les applications AngularJS, combinant Selenium WebDriver avec Jasmine permet aux testeurs de piloter de véritables navigateurs et de vérifier les éléments spécifiques à Angular qui sont standard. Selenium Les localisateurs ne peuvent pas atteindre.

  • (I.e. Situation actuelle: ProtracLe système a atteint sa fin de vie en août 2023, les nouvelles suites doivent donc être installées. Cypress, Playwright ou WebdriverIO.
  • ☑️ Pré-requis : Installez Node.js et Selenium WebDriver avant d'exécuter npm install -g protractor.
  • ✅ Deux fichiers : Chaque exécution nécessite le fichier conf.js pour la configuration et le fichier spec.js pour la logique de test.
  • 🧪 Localisateurs angulaires : by.model et by.binding atteignent les éléments ng-model et ng-bind qui Selenium seul manque.
  • ️ Gestionnaire de chauffeurs : webdriver-manager update puis webdriver-manager start services Selenium sur le port 4444.
  • (I.e. Reporting: Jasmine-reporters JUnitXmlReporter génère le fichier junitresults.xml à titre de preuve d'audit.

ProtracTutoriel de test Tor

Qu'est-ce que ProtracTests tor ?

Rapporteur d'angle est un outil d'automatisation et de test comportemental de bout en bout qui joue un rôle important dans le Tests des applications AngularJS et fonctionne comme un intégrateur de solutions combinant des technologies puissantes comme Selenium, Jasmine, WebDriver, etc. L'objectif de ProtracLes tests d'applications ne servent pas uniquement à tester les applications AngularJS, mais aussi à écrire des tests automatisés. tests de régression également pour les applications Web classiques.

⚠️ Avis de dépréciation : Protractor est obsolète et archivéLe support a pris fin en août 2023 et l'interface de ligne de commande Angular (Angular CLI) a abandonné sa version Pro.tracConstructeur Tor après Angular 15. Choisissez Dramaturge, Cypress, WebdriverIO ou TestCafe pour les nouveaux tests de bout en boutLa procédure décrite ci-dessous reste valable pour les suites classiques.

Pourquoi avons-nous besoin de professionnels ?tracTor Framework ?

JavaLes scripts sont utilisés dans presque toutes les applications web. À mesure que les applications se développent, Javascénario La taille et la complexité augmentent également. Dans ce cas, il devient difficile pour les testeurs de tester l'application web dans différents scénarios.

Il est parfois difficile de capturer les éléments Web dans les applications AngularJS à l'aide de JUnit or Selenium Pilote Web.

ProtracTor est un programme Node.js écrit en JavaLe script s'exécute avec Node pour identifier les éléments Web dans les applications AngularJS, et il utilise également WebDriver pour contrôler le navigateur avec les actions de l'utilisateur.

Qu'est-ce qu'une application AngularJS exactement ?

AngularJS Les applications AngularJS sont des applications web qui utilisent une syntaxe HTML étendue pour exprimer les composants d'une application web. Elles sont principalement utilisées pour les applications web dynamiques. Ces applications utilisent un code plus concis et plus flexible que les applications web classiques. Veuillez noter que le support à long terme d'AngularJS 1.x a pris fin le 31 décembre 2021 ; ces applications sont donc aujourd'hui considérées comme obsolètes.

Pourquoi ne pouvons-nous pas trouver les éléments web AngularJS en utilisant Normal Selenium Pilote Web ?

Les applications AngularJS possèdent des attributs HTML supplémentaires tels que ng-repeater, ng-controller, ng-model, etc., qui ne sont pas inclus dans Selenium localisateurs. Selenium n'est pas en mesure d'identifier ces éléments Web à l'aide Selenium code. Donc, Protractor au sommet de Selenium peut gérer et contrôler ces attributs dans les applications Web.

ProtracTor est un framework de test de bout en bout pour les applications basées sur AngularJS. Alors que la plupart des frameworks se concentrent sur la réalisation de tests, Tor se distingue par sa capacité à effectuer des tests de bout en bout. tests unitaires pour les applications AngularJS, Protractor se concentre sur le test des fonctionnalités réelles d'une application.

Avant de commencer ProtracPour installer Tor, nous devons installer les éléments suivants :

  1. Selenium: vous pouvez trouver le Selenium étapes d'installation dans le Selenium Guide d'installation de WebDriver.
  2. NPM (Node.js) : Pour installer la version Pro, il faut installer Node.js.tractor. Vous trouverez ces étapes d'installation dans le Guide de téléchargement et d'installation de Node.js.

ProtracInstallation du tor

Étape 1) Ouvrez l'invite de commande et tapez « npm install -g pro »tractor" et appuyez sur Entrée.

La commande ci-dessus téléchargera les fichiers nécessaires et installera la version Pro.tractor sur le système client, comme indiqué ci-dessous.

Sortie de l'invite de commandes après l'exécution de npm install -g protractor

Étape 2) Vérifiez l'installation et la version en utilisant "partractor –version. » En cas de succès, la version sera affichée comme dans la capture d'écran ci-dessous. Sinon, répétez l’étape 1.

PROtractor --version affichant la version Pro installéetracnuméro de version de Tor

(Les étapes 3 et 4 sont facultatives mais recommandées pour une meilleure pratique)

Étape 3) Mettez à jour le gestionnaire WebDriver. Ce gestionnaire permet d'exécuter les tests de l'application web Angular dans un navigateur spécifique. Après ProtracSi Tor est installé, le gestionnaire WebDriver doit être mis à jour vers la dernière version. Pour ce faire, exécutez la commande suivante dans l'invite de commandes.

webdriver-manager update

Les fichiers binaires du pilote se téléchargent comme indiqué ci-dessous.

Mise à jour de webdriver-manager : téléchargement des derniers fichiers binaires du pilote de navigateur

Étape 4) Démarrez le gestionnaire WebDriver. Cette étape exécutera le gestionnaire WebDriver en arrière-plan et écoutera tous les tests exécutés via protractor.

Une fois le test exécuté, WebDriver le charge automatiquement dans le navigateur approprié. Démarrez le gestionnaire avec la commande ci-dessous.

webdriver-manager start

La console affiche l'adresse d'écoute.

webdriver-manager commence à lancer le Selenium Serveur autonome en arrière-plan

Maintenant, si vous allez à la suite URL (http://localhost:4444/wd/hub/static/resource/hub.htmlDans votre navigateur, vous verrez effectivement le gestionnaire WebDriver s'exécuter en arrière-plan.

Selenium Page du hub WebDriver servie sur localhost port 4444

Exemple de test d'application AngularJS avec Protractor

Avec le gestionnaire de pilotes en cours d'exécution, ProtracTor a besoin de deux fichiers pour fonctionner, un spec déposer et paramétrage fichier.

  1. Fichier de configurationCe fichier aide les professionnelstracpour accéder à l'emplacement des fichiers de test (specs.js) et pour communiquer avec Selenium serveur (Selenium Adresse). Chrome est le navigateur par défaut pour Protractor.
  2. Fichier de spécifications : Ce fichier contient la logique et les localisateurs pour interagir avec l'application.

Étape 1) Nous devons ouvrir https://angularjs.org et entrez le texte comme « GURU99 » dans la zone de texte « Entrez un nom ici ».

Zone de texte de la page d'accueil AngularJS où le nom GURU99 est saisi

Étape 2) Dans cette étape,

  1. J'ai saisi le nom «Guru99 "
  2. Dans le texte de sortie « Bonjour » Guru99″ est visible.

Page AngularJS affichant le texte de sortie « Hello GURU99 ».

Étape 3) Nous devons maintenant capturer le texte de la page Web après avoir entré le nom et vérifier avec le texte attendu.

Code:

Nous devons préparer le fichier de configuration (conf.js) et fichier de spécifications (spec.js) comme mentionné ci-dessus.

Logique de spec.js :

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello GURU99!');
  });
});

Code Explication du fichier spec.js :

  1. décrire(« Entrez le nom GURU99 », fonction() La syntaxe de description provient de Cadre JasmineIci, « describe » (« Enter GURU99 Name ») définit généralement les composants d'une application, qui peuvent être une classe ou une fonction, etc. Dans la suite de code appelée « Enter GURU99 », il s'agit simplement d'une chaîne de caractères et non d'un code.
  2. it('devrait ajouter un nom comme GURU99', fonction()
  3. navigateur.get('https://angularjs.org')Comme dans Selenium WebDriver browser.get ouvrira une nouvelle instance de navigateur avec les informations mentionnées URL.
  4. un élément(par.model('votreNom')).envoyer des clés(« GURU99 ») Ici, nous recherchons l'élément Web en utilisant le nom du modèle comme « votreNom », qui est la valeur de «ng-modèle« » sur la page web. Consultez la capture d’écran ci-dessous.

Code source de la page affichant la valeur de l'attribut ng-model yourName utilisée par by.model

  1. var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1')) Ici, nous trouvons l'élément Web en utilisant XPath et stocker sa valeur dans une variable « gourou ».
  2. attendons.(gourou.getText()).égaler("Bonjour GURU99 !") Enfin, nous vérifions le texte que nous avons obtenu de la page Web (en utilisant gettext() ) avec le texte attendu.

Logique de conf.js :

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
};

Code Explication du fichier conf.js

  1. Adresse Selenium : « http://localhost:4444/wd/hub ». Le fichier de configuration indique à Protracpour l'emplacement de Selenium Adresse avec qui parler Selenium Pilote Web.
  2. spécifications : ['spec.js']Cette ligne indique à Protracpour l'emplacement des fichiers de test spec.js

Exécution de la Code

Commencez par accéder au dossier contenant les fichiers conf.js et spec.js, puis suivez les étapes ci-dessous..

Étape 1) Ouvrez l'invite de commande.

Étape 2) Assure-toi Selenium Le gestionnaire WebDriver est opérationnel. Pour cela, saisissez la commande « webdriver-manager start » et appuyez sur Entrée..

Invite de commandes confirmant le Selenium Le gestionnaire WebDriver est opérationnel.

(Si Selenium WebDriver n'étant pas opérationnel, nous ne pouvons pas procéder au test en tant que Pro.tractor ne trouve pas le WebDriver pour gérer l'application web)

Étape 3) Ouvrez une nouvelle invite de commande et donnez la commande comme "partractor conf.js” Pour exécuter le fichier de configuration, l'exécution se termine comme indiqué ci-dessous.

ProtracSortie de la console Tor pour une spécification réussie commençant par protractor conf.js

Explication:

  • Ici ProtracTor exécutera le fichier de configuration contenant le fichier de spécifications donné.
  • On peut voir le Selenium serveur fonctionnant à «http://localhost:4444/wd/hub» que nous avons donné dans le fichier conf.js.
  • En outre, vous pouvez voir ici le résultat, le nombre de réussites et les échecs, comme dans la capture d'écran ci-dessus..

Un résultat positif a été vérifié. Voyons maintenant un résultat négatif.

Étape 1) Ouvrez et modifiez le fichier spec.js pour obtenir « Hello change GURU99 », comme ci-dessous.

Après changement dans spec.js :

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello change GURU99!');
  });
});

Étape 2) Enregistrez le fichier spec.js et répétez les étapes ci-dessus de « Exécution de Code" section

Maintenant, exécutez les étapes ci-dessus.

Résultat:

ProtracSortie de la console Tor affichant la spécification défaillante marquée par la lettre F

Nous pouvons voir le résultat comme un échec indiqué par « F » dans la capture d'écran avec la raison suivante : « Attendu 'Bonjour GURU99 !' pour être égal à « Bonjour, change GURU99 ! ». Il indique également le nombre d'échecs rencontrés lors de l'exécution du code.

Pouvons-nous réaliser la même chose avec Selenium Pilote Web ?

Il est parfois possible de localiser des éléments AngularJS à l'aide de sélecteurs XPath ou CSS. Selenium WebDriver. Cependant, ces éléments sont générés et rebondissent dynamiquement, donc ProtracTor était l'option la plus sûre pour les suites AngularJS.

Générer des rapports à l'aide de Jasmine Reporters

ProtracTor prend en charge les journalistes Jasmine. Cette section utilise JUnitXmlReporter permet de générer automatiquement des rapports d'exécution de tests au format XML, en suivant les étapes ci-dessous.

Installation de Jasmine Reporter

Il existe deux options : locale ou globale

  1. Ouvrez l'invite de commande, exécutez la commande suivante pour installer localement
npm install --save-dev jasmine-reporters@^2.0.0

La commande ci-dessus installe jasmine-reporters localement, dans le répertoire où elle est exécutée.

  1. Ouvrez l'invite de commande, exécutez la commande suivante pour une installation globale
npm install –g jasmine-reporters@^2.0.0

Ici, les rapporteurs sont installés localement.

Étape 1) Exécutez la commande.

npm install --save-dev jasmine-reporters@^2.0.0

à partir de l'invite de commande comme ci-dessous.

Installation locale de jasmine-reporters avec npm dans le dossier du projet

Étape 2) Vérifiez les dossiers d'installation dans le répertoire. « Node_modules » devrait être disponible s'il est installé avec succès comme dans l'instantané ci-dessous.

Liste des dossiers Node_modules confirmant l'installation de jasmine-reporters

Étape 3) Ajoutez le code coloré suivant à un fichier conf.js existant

exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      capabilities: {
          'browserName': 'firefox'
      },
      specs: ['spec.js'],
     framework: 'jasmine2' ,
      onPrepare: function() {
          var jasmineReporters = require('C:/Users/RE041943/Desktop/guru/node_modules/jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter(null, true, true)
          );
     }
   };

Explication du code:

Dans le code, nous générons le rapport «JUnitXMLReporter" et en donnant le chemin où stocker le rapport.

Étape 4) Ouvrez l'invite de commande et exécutez la commande PROtractor conf.js.

Protracpour exécuter qui génère le JUnit Rapport XML après la mise à jour de conf.js

Étape 5) Lorsque vous exécutez le code ci-dessus, junitresults.xml sera généré dans le chemin mentionné.

Le fichier de rapport junitresults.xml a été créé dans le chemin de sortie configuré.

Étape 6) Ouvrez le XML et vérifiez le résultat. Le message d'échec est affiché dans le fichier de résultats comme notre Cas de test Le test a échoué. L'échec est dû au fait que le résultat attendu de « spec.js » ne correspond pas au résultat réel obtenu sur la page Web.

Contenu du fichier junitresults.xml affichant le message d'échec du cas de test ayant échoué

Étape 7) Utilisez le fichier junitresult.xml pour les preuves ou les fichiers de résultats.

ProtracTor contre les alternatives modernes à l'automatisation des tests

Depuis ProtracTor ne reçoit plus de mises à jour ; les équipes qui planifient de nouvelles suites doivent savoir comment il se compare aux frameworks vers lesquels les projets Angular migrent désormais. Le tableau ci-dessous compare la version Pro.tractor avec les trois alternatives qui reviennent le plus souvent dans la FAQ ci-dessous.

FrameworkTA Statut Support linguistique Moteurs de navigateur Localisateurs spécifiques à Angular
Rapporteur d'angle Déprécié, fin de vie prévue en août 2023 JavaScénario, TypeScript Chrome, Firefox, IE via Selenium pilote web par.modèle, par.liaison, par.répéteur
Cypress Maintenu activement JavaScénario, TypeScript Chrome, Firefox, Bord Aucun ; repose sur des attributs CSS ou de données
Dramaturge Maintenu activement JavaScénario, TypeScript, Python, Java, .FILET Chrome, Firefox, WebKit Aucun ; repose sur des sélecteurs CSS, de texte ou de rôle
WebdriverIO Maintenu activement JavaScénario, TypeScript Chrome, Firefox, WebKit via WebDriver ou DevTools Aucun ; repose sur des attributs CSS ou de données

Équipes avec un Pro existanttracLes suites de Tor migrent généralement le plus rapidement vers WebdriverIO, étant donné son style de commande et Selenium- La gestion des conducteurs basée sur les données reste proche de ce que ProtracLes testeurs de test le savent déjà. Les équipes qui partent de zéro ou qui ont besoin d'exécutions de tests très rapides choisissent plus souvent cette option. Cypress ou plutôt dramaturge.

FAQ

Non. ProtracTor a atteint sa fin de vie en août 2023 et ne reçoit plus de mises à jour ni de correctifs de sécurité. Angular a supprimé son générateur en ligne de commande après la version 15 ; par conséquent, toute suite restante doit être considérée comme du code hérité.

Angular a ajouté des constructeurs pour Cypress, Nightwatch et WebdriverIO à partir de la version 12. Dramaturge TestCafe est également populaire, et Amadeus publie un guide professionnel.tracConvertisseur de dramaturges en auteurs dramatiques qui automatise la majeure partie de la réécriture.

Les méthodes `by.model`, `by.binding`, `by.repeater`, `by.exactBinding` et `by.options` lisent directement les données des directives AngularJS. Standard Selenium Les localisateurs tels que by.css, by.id et by.xpath restent disponibles dans la même spécification.

L'auto-réparation assistée par l'IA compare un localisateur défaillant avec le DOM en direct et le répare automatiquement, tandis que l'apprentissage automatique regroupe les défaillances répétées afin de distinguer les véritables défauts du bruit temporel. tests d'automatisation.

Copilot et les assistants similaires réécrivent rapidement les blocs describe, les appels element() et les assertions expect en localisateurs Playwright, mais chaque spécification générée nécessite toujours une vérification humaine des attentes, des assertions et cas de test couverture.

Résumez cet article avec :