wake-up-neo.com

Wie läuft der Winkelmesser?

Ich bin neu bei AngularJS. Ich versuche zu lernen und einige umfassende Tests mit Protractor durchzuführen. Ich habe die Informationen durchgegangen hier . Ich bin festgefahren, wenn ich zu dem Teil komme, der "Run with protractor myConf.js" sagt.

Ist der Winkelmesser ein Befehlszeilenprogramm? Oder was? Was ich versuche zu identifizieren, ist, in welcher Umgebung muss ich "Winkelmesser myConf.js" ausführen. Ich möchte NICHT, dass der Winkelmesser global installiert wird. Ich möchte das Modul in einem lokalen Kontext ausführen. Ist das eine Option?

Vielen Dank,

15
user2871401

Dies sind die Erste-Hilfe-Dokumente:

https://github.com/angular/protractor/blob/master/docs/getting-started.md

Sie müssen node.js auf Ihrem Rechner sowie das Paket npm node installiert haben. Nachdem Sie diese beiden Dinge installiert haben, können Sie den restlichen Anweisungen in den oben genannten Dokumenten folgen. 

Es sollte nur ca. 5-10 Minuten dauern, bis der Winkelmesser in Betrieb ist. Lassen Sie mich wissen, wenn Sie immer noch festsitzen.

10
tennisgent

Sie müssen es durch den Knoten laufen lassen.

Also von der Basis Ihres Projekts;

node node_modules\protractor\bin\protractor test\myConf.js
15
Brian F

Sie können Protractor global installieren über:

$ npm install -g protractor

Danach sollte es in der Befehlszeile verfügbar sein (Windows/Linux)

$ protractor protractor.conf.js

So installieren Sie nur für das aktuelle Projekt:

$ npm install protractor --save-dev

Es kann wie folgt über den node_modules (Windows/Linux) ausgeführt werden:

$ ./node_modules/.bin/protractor protractor.conf.js

Sie können es zu Ihrem package.json hinzufügen, um die Ausführung zu vereinfachen:

"scripts": {
    "test": "./node_modules/.bin/protractor protractor.conf.js"
}

Dann später:

$ npm test
10
cgTag

Sie sollten npm-run-all (oder concurrently, parallelshell) verwenden, da sie mehr Kontrolle über Start- und Beendigungsbefehle hat.

Sobald npm-run-once, protractor, http-server lokal installiert ist, können Sie package.json wie folgt ändern:

scripts: {
  "webdriver-start": "./node_modules/protractor/bin/webdriver-manager update && ./node_modules/protractor/bin/webdriver-manager start",
  "protractor": "./node_modules/protractor/bin/protractor ./tests/protractor.conf.js",
  "http-server": "./node_modules/http-server/bin/http-server -a localhost -p 8000",
  "python-example": "python -m SimpleHTTPServer",
  "test1": "npm-run-all -p -r webdriver-start http-server protractor",
  "test2": "npm-run-all -p -r webdriver-start python-example protractor"
}

-p = Befehle parallel ausführen.

-r = Töte alle Befehle, wenn einer von ihnen mit Null endet.

Wenn Sie npm run test1 ausführen, wird der Selenium-Treiber gestartet, der HTTP-Server (für die Bereitstellung Ihrer Dateien) und der Winkelmesser-Test gestartet. Sobald alle Tests abgeschlossen sind, werden der http-Server und der Selenium-Treiber geschlossen.

9
nir

Hier ist ein Beispiel, in dem TypeScript verwendet wird. Wenn dies nicht der Fall ist, können Sie einfach alle 'tsc'-Elemente entfernen. Konfigurieren Sie Ihren package.json scripts Abschnitt so, dass er wie folgt aussieht:

  "scripts": {
    "postinstall": "node node_modules/protractor/bin/webdriver-manager update",
    "pretest": "npm run tsc",
    "test": "npm run eslint && npm run protractor",
    "eslint": "node node_modules/eslint/bin/eslint.js '*.js' 'test/**/*.js' 'test/**/*.ts'",
    "protractor": "node node_modules/protractor/bin/protractor",
    "start": "node node_modules/protractor/bin/webdriver-manager start",
    "tsc": "node node_modules/TypeScript/bin/tsc"
  }

und npm start in einem Terminal und npm test in einem anderen Terminal ausführen.

2
andriyze

Ich denke, der beste Weg, Protractor auszuführen, ist, ihn lokal für Ihr Projekt zu installieren und dann mit npm-Skripts auszuführen.

Um einen Schritt zu sichern, verwendet npm selbst eine Hierarchie, die auf dem Dateisystem basiert, um ausführbare Module zu finden. Wenn Sie npm bin eingeben, wird npm Ihnen den ersten Ort mitteilen, an dem nach einer ausführbaren Datei gesucht wird (z. B. [project]/node_modules/.bin). Wenn Sie protractor in Ihre package.json aufnehmen, wenn Sie eine npm-Installation durchführen, fügt protractor in Ihrem .bin-Verzeichnis einen Symlink für protractor und webdriver-manager hinzu.

Es gibt verschiedene Möglichkeiten, diese Informationen zur Ausführung des Winkelmessers zu verwenden. Die beste Methode, die ich denke, ist die Verwendung von npm-Skripten. Wenn Sie npm-Skripts verwenden, lädt npm automatisch den Winkelmesser aus dem lokalen Verzeichnis .bin.

Hier ist ein Beispiel

package.json
{
  "name": "awesomeapp",
  "version": "1.0.0",
  "devDependencies": {
    "protractor": "latest"
  },
  "scripts": {
    "test-e2e": "protractor protractor.conf",
    "Selenium": "webdriver-manager start"
  }
}

Jetzt können Sie Ihren Selenium-Server mit npm run Selenium ausführen und dann die Winkelmessertests mit npm run test-e2e ausführen.

Dies ist auch plattformübergreifend. Wenn Sie also Mac oder Windows verwenden, werden Sie so oder so behandelt.

ANMERKUNG: In diesen Skripten können Sie Sachen ausführen, die nicht plattformübergreifend sind ( npm docs ). Wenn Sie also plattformübergreifend sind, sollten Sie alles tun, was ich möchte. Ich würde empfehlen, shelljs .

P.P.S. Ich wollte den oben genannten Punkt nicht durcheinander bringen, aber npm hat auch Pre- und Post-Hooks, sodass Sie Selenium mit einem einzigen Befehl aktualisieren und ausführen können.

"scripts": {
    "preselenium": "webdriver-manager update",
    "Selenium":    "webdriver-manager start"
}

Theoretisch sollte Windows && unterstützen, damit Sie dies auch tun könnten, aber ymmv ...

"scripts": {
  "Selenium":    "webdriver-manager update && webdriver-manager start"
}
1
Ynot

Ich habe einen Codegenerator, der ein leeres Winkelprojekt erstellt. Die Anweisungen sollten leicht zu befolgen sein:

https://npmjs.org/package/generator-protractor

1
Andres D

Ja, es ist möglich, den Winkelmesser mit dem folgenden Befehl auszuführen:

npm install protractor

und Sie können dann darauf zugreifen:

./node_modules/.bin/protractor conf.js

Weitere Informationen finden Sie unter: Winkelmesser - End-to-End-Test für AngularJS . Dies ist ein sehr guter Anfang.

0
Jagannath

Hier haben wir ein komplettes Einsteiger-Tutorial: Winkelmesser für Anfänger Video

0
Pankaj Dubey

Fertig machen

Wir haben uns Protractor mit Chrome ohne Kopf angesehen, mehrere Browser, die in Sauce Labs integriert sind .. _. Schauen wir uns die Ausführungsberichte zur Testautomatisierung an, wie wir sie integrieren können.

super QA

Voraussetzung

npm wird mit Node.js- verteilt, was bedeutet, dass beim Herunterladen von Node.js automatisch npm auf Ihrem Computer installiert wird.

1. Install nodejs

Installieren Sie zunächst den Winkelmesser global auf Ihrem System: Installieren Sie den Winkelmesser als Entwicklungsabhängigkeit:

2. run npm install -g Protractor

3. run npm install protractor --save-dev

Um den Standalone Selenium Server manuell zu installieren und zu starten, verwenden Sie das Befehlszeilentool webdriver-manager, das mit Protractor ..__ geliefert wird. Dadurch werden der Server und ChromeDriver installiert.

4. run npm install -g webdriver-manager

5. run updated webdriver-manager

Dadurch wird der Server gestartet. Sie werden viele Ausgabeprotokolle sehen, beginnend mit INFO. Die letzte Zeile lautet 'Info - Started org.openqa.jetty.jetty.Server'.

5. run start webdriver-manager

Lassen Sie den Server aktiv, während Sie Ihre Testsitzungen durchführen. Legen Sie in Ihrer Konfigurationsdatei seleniumAddress auf die Adresse des laufenden Servers fest. Der Standardwert ist http: // localhost: 4444/wd/hub .

6. Finally run your script - Protractor<location of your config file>conf.js

Bauen und testen

Kasse github: https://github.com/shahing/Protractor-Web-Automation

0
Shahin

Zuerst müssen Sie die node.js von https://nodejs.org/de/download/ - installieren und dann den Winkelmesser mit "npm install -g protractor" installieren. Dadurch wird der Winkelmesser global installiert. Ich hatte Probleme, als ich den Winkelmesser lokal installierte. Versuchen Sie besser, es global zu installieren. Oder Sie können alle Ihre Abhängigkeiten in der package.json-Datei wie folgt angeben:

{
  "dependencies": {
    "protractor": "4.0.3",//any latest versions of these.
    "protractor-jasmine2-screenshot-reporter": "0.3.2",
    "jasmine-terminal-reporter": "1.0.3"
  },
  "scripts": {
    "postinstall": "node node_modules\\protractor\\bin\\webdriver-manager update"
  }
}

In der obigen package.json-Datei gibt es auch Abhängigkeiten für die Berichterstellung der Testergebnisse. Und Sie müssen das Update des Webtreiber-Managers ausführen. Es ist ein Hilfswerkzeug, um eine Instanz eines Selenium-Servers zum Laufen zu bringen. 

Sie können alles in die package.json-Datei einfügen und "npm install" ausführen, um alle Abhängigkeiten zu installieren. Dadurch wird ein Ordner "node_modules" für Sie erstellt.

Erstellen Sie nun eine Konfigurationsdatei, zB: conf.js. Das kann so etwas sein.

// An example configuration file. There are the reporters which are used to give the test results. There are many reporters. You can use which ever is convenient. The below reporters are for example to show how to configure them.
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var JasmineTerminalReporter = require('jasmine-terminal-reporter');

//To get the Current Date and Time. To make the test output more clear, you can give date.
var currentDate = new Date(),
    currentHoursIn24Hour = currentDate.getHours(),
    month = currentDate.getMonth() + 1,
    totalDateString = currentDate.getDate() + '-' + month + '-' + currentDate.getFullYear() +
        '-' + currentHoursIn24Hour + 'h-' + currentDate.getMinutes() + 'm';

var htmlReporter = new HtmlScreenshotReporter({
    pathBuilder: function (currentSpec, suites, browserCapabilities) {
        'use strict';
        return currentSpec._suite.description + totalDateString + '/' + browserCapabilities.get('browserName') + '/' + currentSpec.description;
    },
    dest: 'TestOutput',
    cleanDestination: false,
    showSummary: true,
    showQuickLinks: true
});


exports.config = {

    directConnect: true,//If you make this flag true, it connects the browser directly.
    capabilities: {
        'browserName': 'chrome'
    },

    //this is to bring up the test dependencies. Some kind of setup. run once
    beforeLaunch: function () {
        'use strict';
        return new Promise(function (resolve) {
            htmlReporter.beforeLaunch(resolve);
        });
    },

    //once per capabilities.
    onPrepare: function () {
        jasmine.getEnv().addReporter(htmlReporter);
        jasmine.getEnv().addReporter(new JasmineTerminalReporter({
            isVerbose: true,
            showColors: true
        }));
    },

    //A callback function called once all tests have finished running and
    // the WebDriver instance has been shut down.
    afterLaunch: function (exitCode){
        return new Promise(function(resolve){
            htmlReporter.afterLaunch(resolve.bind(this, exitCode));
        });
    },

    getPageTimeout: 120000,
    allScriptsTimeout: 120000,
    specs: ['../TestScripts/*.js']//This contains the test files.
};

Wenn Sie mit dem Setup fertig sind, erstellen Sie eine Testdatei. Die Tests werden unter Verwendung von Jasmin-Framework geschrieben, das "beschreiben" und "es" enthält. "beschreiben" hält "es", was die Tests drin hat. Sie können dies durchgehen: http://www.protractortest.org/#/

Führen Sie nun den Test mit "Winkelmesser conf.js" durch. Dadurch werden die Tests ausgeführt und die Berichte werden auch in dem TestOutput-Ordner generiert, den wir in der Konfigurationsdatei eingerichtet haben.

0
sandhya

Wenn Sie eine Suite in config.js haben, versuchen Sie dies

suites: {

  TESTCASES_RELATED_TO_SUITE1: ['TEST_CASES/Suite1/**/*spec.js'],
  TESTCASES_RELATED_TO_SUITE2: ['TEST_CASES/Suite2/**/*spec.js']

},

Die Tests können von der Befehlszeile aus wie folgt ausgeführt werden:

<path>protractor config.js --suite TESTCASES_RELATED_TO_SUITE1

Dadurch wird nur eine Testsuite ausgeführt.

0
Madhu S N

Ich benutze IntelliJ für Winkelmesser-Tests. Beachten Sie auch, dass dazu die IntelliJ Ultimate Edition zusammen mit node.js und Winkelstückinstallationen erforderlich ist.

Die Details finden Sie hier Winkelmesser-Setup auf IntelliJ

0
Ashish Deshmukh