Premiers pas avec le rapporteur
Installation et configuration du rapporteur (sous Windows)
Exigences : Protractor nécessite l’installation des dépendances suivantes avant l’installation :
-Java JDK 1.7 ou supérieur
- Node.js v4 ou supérieur
Installation:
Téléchargez et installez Node.js à partir de cette URL : https://nodejs.org/en/
Pour voir si l’installation de Node.js est réussie, vous pouvez aller vérifier les variables d’environnement. Le ‘Chemin’ sous Variables système sera automatiquement mis à jour.
[![Variable de chemin pour vérifier l’installation de Node.js][1]][1]
Vous pouvez également vérifier la même chose en tapant la commande npm -version
dans l’invite de commande qui vous donnera la version installée.
[![commande pour vérifier l’installation de Node.js][2]][2]
Maintenant, Protractor peut être installé de deux manières : localement ou globalement.
Nous pouvons installer le rapporteur dans un dossier ou un emplacement de répertoire de projet spécifié. Si nous installons dans un répertoire de projet, chaque fois que nous exécutons, nous devrions exécuter à partir de cet emplacement uniquement.
Pour installer localement dans le répertoire du projet, accédez au dossier du projet et tapez la commande
npm install rapporteur
Pour installer Protractor globalement, exécutez la commande :
$ npm install -g protractor
Cela installera deux outils de ligne de commande, protractor
et webdriver-manager
.
Exécutez protractor --version
pour vous assurer que le rapporteur a été installé avec succès.
webdriver-manager
est utilisé pour télécharger les binaires du pilote du navigateur et démarrer le serveur Selenium.
Download the browser driver binaries with:
$ webdriver-manager update
Démarrez le serveur Selenium avec :
$ webdriver-manager start
Pour télécharger le pilote Internet Explorer, exécutez la commande webdriver-manager update --ie
dans l’invite de commande.
Cela téléchargera IEDriverServer.exe dans votre dossier sélénium
[1] : http://i.stack.imgur.com/BZCwx.png [2] : http://i.stack.imgur.com/yt5d7.png
Premier test avec Protractor
Protractor n’a besoin que de deux fichiers pour exécuter le premier test, le fichier spec (code de test) et le fichier de configuration. Le fichier de spécification contient le code de test et l’autre contient des détails de configuration tels que le chemin du fichier de spécification, les détails du navigateur, l’URL de test, les paramètres du cadre, etc. Pour écrire le premier test, nous fournirons uniquement l’adresse du serveur de sélénium et le chemin du fichier de spécification. , timeout, framework sera repris aux valeurs par défaut.
Le navigateur par défaut pour Protractor est Chrome.
conf.js - Fichier de configuration
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js']
};
spec.js - Fichier de spécification (code de test)
describe('first test in protractor', function() {
it('should verify title', function() {
browser.get('https://angularjs.org');
expect(browser.getTitle()).toEqual('AngularJS — Superheroic JavaScript MVW Framework');
});
});
seleniumAddress - Chemin d’accès au serveur sur lequel le serveur webdriver est en cours d’exécution.
specs - Un élément de tableau qui contient le chemin des fichiers de test. Les chemins multiples peuvent être spécifiés par des valeurs séparées par des virgules.
describe - Syntaxe du framework [Jasmine][1]. describe
syntaxe sta
[1] : http://jasmine.github.io/2.0/introduction.html
Écrivez un test de rapporteur
Ouvrez une nouvelle ligne de commande ou une nouvelle fenêtre de terminal et créez un dossier propre pour les tests.
Protractor a besoin de deux fichiers pour fonctionner, un fichier de spécifications et un fichier de configuration.
Commençons par un test simple qui navigue vers l’exemple de liste de tâches sur le site Web AngularJS et ajoute un nouvel élément de tâche à la liste.
Copiez ce qui suit dans spec.js
décrire (’liste de tâches de la page d’accueil d’angularjs’, fonction () { it(‘devrait ajouter une tâche’, function() { browser.get(‘https://angularjs.org’);
element(by.model('todoList.todoText')).sendKeys('write first protractor test');
element(by.css('[value="add"]')).click();
var todoList = element.all(by.repeater('todo in todoList.todos'));
expect(todoList.count()).toEqual(3);
expect(todoList.get(2).getText()).toEqual('write first protractor test');
// You wrote your first test, cross it off the list
todoList.get(2).element(by.css('input')).click();
var completedAmount = element.all(by.css('.done-true'));
expect(completedAmount.count()).toEqual(2);});});
Tests de fonctionnement sélectifs
Protractor peut exécuter de manière sélective des groupes de tests en utilisant fdescribe() au lieu de describe().
fdescribe('first group',()=>{
it('only this test will run',()=>{
//code that will run
});
});
describe('second group',()=>{
it('this code will not run',()=>{
//code that won't run
});
});
Protractor peut exécuter des tests de manière sélective au sein de groupes en utilisant fit() au lieu de it().
describe('first group',()=>{
fit('only this test will run',()=>{
//code that will run
});
it('this code will not run',()=>{
//code that won't run
});
});
S’il n’y a pas de fit() dans un fdescribe(), alors chaque it() s’exécutera. Cependant, un fit() bloquera les appels it() dans le même describe() ou fdescribe().
fdescribe('first group',()=>{
fit('only this test will run',()=>{
//code that will run
});
it('this code will not run',()=>{
//code that won't run
});
});
Même si un fit() est dans un describe() au lieu d’un fdescribe(), il fonctionnera. De plus, tout it() dans un fdescribe() qui ne contient pas de fit() s’exécutera.
fdescribe('first group',()=>{
it('this test will run',()=>{
//code that will run
});
it('this test will also run',()=>{
//code that will also run
});
});
describe('second group',()=>{
it('this code will not run',()=>{
//code that won't run
});
fit('this code will run',(){
//code that will run
});
});
Tests en attente
Le rapporteur permet de définir les tests comme étant en attente. Cela signifie que le rapporteur n’exécutera pas le test, mais affichera à la place :
Pending:
1) Test Name
Temporarily disabled with xit
Ou, si désactivé avec xdescribe() :
Pending:
1) Test Name
No reason given
Combinaisons
- Un xit() dans un xdescribe() affichera la réponse xit().
- Un xit() dans un fdescribe() sera toujours traité comme en attente.
- Un fit() dans un xdescribe() fonctionnera toujours et aucun test en attente ne produira quoi que ce soit.
## Protractor : tests E2E pour les applications angulaires d’entreprise Installation et configuration du rapporteur
Étape 1 : Téléchargez et installez NodeJS à partir d’ici. Assurez-vous d’avoir la dernière version de node. Ici, j’utilise le nœud v7.8.0. Vous aurez besoin d’avoir installé le kit de développement Java (JDK) pour exécuter Selenium.
Étape 2 : Ouvrez votre terminal et saisissez la commande suivante pour installer le rapporteur globalement.
npm install -g protractor
Cela installera deux outils tels que le rapporteur et le gestionnaire de pilotes Web.
Vous pouvez vérifier votre installation de rapporteur en suivant la commande :protractor –version.
Si Protractor est installé avec succès, le système affichera la version installée (c’est-à-dire la version 5.1.1). Sinon, vous devrez revérifier l’installation.
Étape 3 : Mettez à jour le gestionnaire de pilotes Web pour télécharger les fichiers binaires nécessaires.
webdriver-manager update
Étape 4 : La commande suivante démarrera un serveur Selenium. Cette étape exécutera le gestionnaire de pilotes Web en arrière-plan et écoutera tous les tests exécutés via le rapporteur.
démarrage du gestionnaire de pilotes Web
Vous pouvez voir des informations sur l’état du serveur à
http://localhost:4444/wd/hub/static/resource/hub.html.
Écriture du premier cas de test à l’aide de Protractor :
Avant de passer à l’écriture du cas de test, nous devons préparer deux fichiers, à savoir le fichier de configuration et le fichier de spécification.
Dans le fichier de configuration :
//In conf.js
exports.config = {
baseUrl: ‘http://localhost:8800/adminapp’,
seleniumAddress: ‘http://localhost:4444/wd/hub',
specs: [‘product/product_test.js’],
directConnect : true,
capabilities :{
browserName: ‘chrome’
}
}
Compréhension de base des terminologies utilisées dans le fichier de configuration :
baseUrl – Une URL de base pour votre application en cours de test.
seleniumAddress – Pour se connecter à un serveur Selenium déjà en cours d’exécution.
specs – Emplacement de votre fichier de spécifications
directConnect : true – Pour se connecter directement aux pilotes du navigateur.
capacités – Si vous testez sur un seul navigateur, utilisez l’option de capacités. Si vous testez sur plusieurs navigateurs, utilisez le tableau multiCapabilities.
Vous pouvez trouver plus d’options de configuration à partir de [ici][1]. Ils ont décrit toute la terminologie possible avec sa définition.
Dans le fichier Spec :
//In product_test.js
describe(‘Angular Enterprise Boilerplate’, function() {
it('should have a title', function() {
browser.get('http://localhost:8800/adminapp’);
expect(browser.getTitle()).toEqual(‘Angular Enterprise Boilerplate’);
});
});
Compréhension de base des terminologies utilisées dans le fichier de spécifications :
Par défaut, Protractor utilise le framework Jasmine pour son interface de test. La syntaxe ‘describe’ et ‘it’ provient du framework jasmine. Vous pouvez en savoir plus ici. Exécution du premier scénario de test :
Avant d’exécuter le scénario de test, assurez-vous que votre gestionnaire de pilotes Web et votre application s’exécutent dans différents onglets de votre terminal.
Maintenant, lancez le test avec :
Protractor app/conf.js
Vous devriez voir le navigateur Chrome s’ouvrir avec l’URL de votre application et se fermer. La sortie du test doit être 1 test, 1 assertion, 0 échec.
Bravo! Vous avez exécuté avec succès votre premier scénario de test.
[1] : https://github.com/angular/protractor/blob/master/lib/config.ts