Pregunta

Soy nuevo en AngularJS.Estoy intentando aprender y hacer algunas pruebas de un extremo a otro con Protractor.He estado revisando la información proporcionada. aquí.Me quedo atascado cuando llego a la parte que dice "Corre con protractor myConf.js".

¿Es el transportador un programa de línea de comandos?¿O que?Lo que estoy tratando de identificar es en qué entorno necesito ejecutar "transportador myConf.js".NO quiero instalar transportador globalmente.Me gustaría ejecutar el módulo en un contexto local.¿Es esa una opción?

Gracias,

¿Fue útil?

Solución

Estos son los documentos iniciales:

https://github.com/angular/protractor/Blob / Master / Docs / Getting-started.md

Debe tener node.js instalado en su máquina, así como la paquete de nodos NPM .Una vez que tenga que instalar esas dos cosas, puede seguir el resto de las instrucciones en los documentos anteriores.

Solo debe tomar unos 5-10 minutos de instalación antes de tenerlo protractor en funcionamiento.Déjame saber si todavía estás atrapado.

Otros consejos

Necesitas ejecutarlo a través del nodo.

de la base de su proyecto;

node node_modules\protractor\bin\protractor test\myConf.js

Puede instalar el transportador a nivel mundial a través de:

$ npm install -g protractor

Posteriormente, debe estar disponible en la línea de comandos (Windows / Linux)

$ protractor protractor.conf.js

Para instalar solo para el proyecto actual:

$ npm install protractor --save-dev

Se puede ejecutar a través del node_modules como este (Windows / Linux):

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

Puede agregarlo a su package.json para facilitar la ejecución:

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

luego más tarde:

$ npm test

Deberías usar npm-ejecutar-todo (o concurrently, parallelshell), porque tiene más control sobre los comandos de inicio y finalización.

Una vez npm-run-once, protractor, http-server instalado localmente, puedes modificar package.json así:

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 = Ejecutar comandos en paralelo.

-r = Elimina todos los comandos cuando uno de ellos termina en cero.

Correr npm run test1 Iniciará el controlador Selenium, iniciará el servidor http (para entregarle archivos) y ejecutará pruebas de transportador.Una vez finalizadas todas las pruebas, cerrará el servidor http y el controlador de selenio.

A continuación se muestra un ejemplo de uso de Typecript, pero si no es su caso, simplemente puede eliminar todo el material 'tsc'.Configura tu paquete.json guiones sección para verse así:

  "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"
  }

y correr npm start en una terminal y npm test en otro.

Tengo un generador de código que crea un proyecto de protractor vacío.Las instrucciones deben ser fáciles de seguir:

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

Creo que la mejor manera de ejecutar transportador es instalarlo localmente en su proyecto y luego ejecutarlo con scripts npm.

Al realizar una copia de seguridad de un paso, el propio npm utiliza una jerarquía basada en el sistema de archivos para encontrar módulos ejecutables.si escribes npm bin npm le dirá el primer lugar donde buscará algo ejecutable (p. ej. [project]/node_modules/.bin).Si incluye transportador en su paquete.json, cuando realice una instalación de npm, transportador agregará un enlace simbólico en su directorio .bin tanto para transportador como para webdriver-manager.

Hay varias formas de utilizar esta información para ejecutar el transportador.Creo que la mejor manera ~~correcta~~ es utilizar scripts npm.Cuando utilice scripts npm, npm cargará automáticamente el transportador desde el directorio .bin local.

Aquí hay un ejemplo

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

Ahora puedes ejecutar tu servidor Selenium con npm run selenium luego ejecuta tus pruebas de transportador con npm run test-e2e.

Esto también es multiplataforma, por lo que si usas Mac o Windows, estarás cubierto de cualquier manera.

NOTA: Puedes hacer cosas en estos scripts que no son multiplataforma (documentos npm) así que si ser multiplataforma es importante para ti y quieres hacer algo sofisticado, te recomendaría usar shelljs.

PPSNo quería saturar el punto anterior, pero npm también tiene enlaces previos y posteriores para que pueda actualizar y ejecutar selenium con un solo comando.

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

En teoría, Windows debería admitir && entonces también podrías hacer esto pero mmv...

"scripts": {
  "selenium":    "webdriver-manager update && webdriver-manager start"
}

Si tiene alguna suite en config.js, intente este

suites: {

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

},

Las pruebas se pueden ejecutar desde línea de comandos a continuación:

<path>protractor config.js --suite TESTCASES_RELATED_TO_SUITE1

Esto solo ejecutará una suite de prueba.

Sí, es posible ejecutar el transportador usando el siguiente comando:

npm install protractor

y luego puede acceder a ella por:

./node_modules/.bin/protractor conf.js

Para obtener más información, visite: protractor - Pruebas de extremo a extremo para AngularJS .Este es un muy buen lugar para comenzar.

Estoy usando IntelliJ para pruebas de protractor.También tenga en cuenta que para esto, se requiere IntelliJ Ultimate Edition junto con las instalaciones de Nodo.js y Protractor.

Puede encontrar los detalles aquí CONFIGURACIÓN DE PROTRACTOR EN INTELLIJ

Primero debe instalar el nodo.js de https://nodejs.org/en/download/ y luego instale el protractor usando "NPM install -g protractor". Esto instalará el transportador a nivel mundial. Me enfrenté a problemas cuando instalé el transportador localmente. Mejor intento de instalarlo a nivel mundial. O puede proporcionar todas sus dependencias en el archivo Package.json como a continuación:

{
  "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"
  }
}

Hay dependencias para los resultados de los resultados de la prueba también en el archivo Package.json anterior. Y necesita ejecutar la actualización de WebDriver-Manager. Es una herramienta auxiliar para obtener una instancia de un servidor de Selenium.

Puede poner todo en el archivo Package.json y ejecutar "NPM install" para instalar todas las dependencias. Esto creará una carpeta "Node_modules" para usted.

Ahora cree un archivo de configuración ex: CONF.JS. Esto puede ser algo así.

// 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.
};

Una vez que haya terminado con la configuración, cree un archivo de prueba. Las pruebas se escriben utilizando el marco de jazmín que contiene "describir" y "IT". "Describirse" lo mantendrá ", lo que tiene las pruebas en ella. Puede pasar por esto: http://www.protractortest.org/#/

Ahora ejecute la prueba con "protractor conf.js". Esto ejecutará las pruebas y también generará los informes en la carpeta TestOutput que hemos configurado en el archivo de configuración.

Aquí tenemos un tutorial completo de principiantes: protractor para los principiantes video

Primeros pasos

Miramos al transportador con cromo sin cabeza, múltiples navegadores que se integran con los laboratorios de salsa. Veamos los informes de ejecución de la automatización de pruebas, cómo podemos integrarlo.

impresionante QA

Pre Requisito

npm se distribuye con nodo.js-, lo que significa que cuando descarga NOde.js, automáticamente obtiene NPM instalado en su computadora.

1. Install nodejs

Primero, instale el transportador a nivel mundial en su sistema: Instale el transportador como dependencia de desarrollo:

2. run npm install -g Protractor

3. run npm install protractor --save-dev

Para instalar e iniciar el servidor de selenio independiente manualmente, use la herramienta de línea de comandos de WebDriver-Manager, que viene con el protractor. Esto instalará el servidor y el cromédriver.

4. run npm install -g webdriver-manager

5. run updated webdriver-manager

Esto iniciará el servidor. Verá muchos registros de salida, comenzando con información. La última línea será 'Info - comenzó org.openqa.Jetty.Jetty.Server'.

5. run start webdriver-manager

Deje el servidor que se ejecuta mientras realiza sus sesiones de prueba. En su archivo de configuración, configure SeleniumAddress a la dirección del servidor de ejecución. Esto se por defecto a http:// localhost: 4444 / wd / hub .

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

construir y probar

PAGO GITHUB: https://github.com/shahing/protractor-web-automation < / a>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top