Primeros pasos con el transportador

Instalación y configuración del transportador (en Windows)

Requisitos: Transportador requiere que se instalen las siguientes dependencias antes de la instalación:

  • Java JDK 1.7 o superior
  • Node.js v4 o superior

Instalación:
Descargue e instale Node.js desde esta URL: https://nodejs.org/en/

Para ver si la instalación de Node.js es exitosa, puede ir y verificar las variables de entorno. La ‘Ruta’ en Variables del sistema se actualizará automáticamente.

Variable de ruta para comprobar la instalación de Node.js


También puede verificar lo mismo escribiendo el comando npm -version en el símbolo del sistema que le dará la versión instalada.

comando para comprobar la instalación de Node.js


Now Protractor se puede instalar de dos maneras: localmente o globalmente.

Podemos instalar el transportador en una carpeta específica o en una ubicación del directorio del proyecto. Si instalamos en un directorio de proyecto, cada vez que lo ejecutemos, deberíamos ejecutarlo solo desde esa ubicación.

Para instalar localmente en el directorio del proyecto, navegue a la carpeta del proyecto y escriba el comando

npm instalar transportador


Para instalar Protractor globalmente ejecute el comando:

$ npm install -g protractor

Esto instalará dos herramientas de línea de comandos, protractor y webdriver-manager. Ejecute protractor --version para asegurarse de que el transportador se instaló correctamente.

webdriver-manager se usa para descargar los archivos binarios del controlador del navegador e iniciar el servidor Selenium. Download the browser driver binaries with:

$ webdriver-manager update

Inicie el servidor de selenio con:

$ webdriver-manager start

Para descargar el controlador de Internet Explorer, ejecute el comando webdriver-manager update --ie en el símbolo del sistema. Esto descargará IEDriverServer.exe en su carpeta de selenio

Primera prueba usando Transportador

El transportador necesita solo dos archivos para ejecutar la primera prueba, el archivo de especificación (código de prueba) y el archivo de configuración. El archivo de especificaciones contiene el código de prueba y el otro contiene detalles de configuración como la ruta del archivo de especificaciones, los detalles del navegador, la URL de prueba, los parámetros del marco, etc. Para escribir la primera prueba, proporcionaremos solo la dirección del servidor Selenium y la ruta del archivo de especificaciones. Los otros parámetros como el navegador , tiempo de espera, el marco se recuperará con los valores predeterminados.

El navegador predeterminado para Transportador es Chrome.

conf.js - Archivo de configuración

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

spec.js: archivo de especificaciones (código de prueba)

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: ruta al servidor donde se ejecuta el servidor webdriver.

especificaciones: un elemento de matriz que contiene la ruta de los archivos de prueba. Las rutas múltiples se pueden especificar mediante valores separados por comas.

describir: sintaxis del marco Jasmine. sta de sintaxis describe

Escribir una prueba de transportador

Abra una nueva línea de comando o ventana de terminal y cree una carpeta limpia para probar.

Transportador necesita dos archivos para ejecutarse, un archivo de especificaciones y un archivo de configuración.

Comencemos con una prueba simple que navega al ejemplo de la lista de tareas pendientes en el sitio web de AngularJS y agrega un nuevo elemento de tareas pendientes a la lista.

Copie lo siguiente en spec.js

describe(’lista de tareas de la página de inicio de angularjs’, function() { it(‘debería agregar una tarea pendiente’, 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);});});

Pruebas de funcionamiento selectivo

El transportador puede ejecutar selectivamente grupos de pruebas utilizando fdescribe() en lugar 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
    });
});

El transportador puede ejecutar pruebas selectivamente dentro de grupos usando fit() en lugar 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
    });
});

Si no hay fit() dentro de fdescribe(), entonces se ejecutará cada it(). Sin embargo, fit() bloqueará las llamadas it() dentro del mismo describe() o 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
    });
});

Incluso si fit() está en describe() en lugar de fdescribe(), se ejecutará. Además, se ejecutará cualquier it() dentro de un fdescribe() que no contenga un fit().

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
    });
});

Pruebas pendientes

El transportador permite que las pruebas se establezcan como pendientes. Esto significa que el transportador no ejecutará la prueba, sino que generará:

Pending:
1) Test Name
Temporarily disabled with xit

O, si está deshabilitado con xdescribe():

Pending:
1) Test Name
No reason given

Combinaciones

  • Un xit() dentro de un xdescribe() generará la respuesta xit().
  • Un xit() dentro de un fdescribe() seguirá siendo tratado como pendiente.
  • Un ajuste () dentro de un xdescribe () aún se ejecutará, y ninguna prueba pendiente generará nada.

Transportador: pruebas E2E para aplicaciones angulares empresariales

Instalación y configuración del transportador

Paso 1: Descargue e instale NodeJS desde aquí. Asegúrese de tener la última versión de node. Aquí, estoy usando el nodo v7.8.0. Deberá tener instalado el Kit de desarrollo de Java (JDK) para ejecutar Selenium.

Paso 2: Abre tu terminal y escribe el siguiente comando para instalar el transportador globalmente.

npm install -g protractor

Esto instalará dos herramientas, como el transportador y el administrador de controladores web. Puede verificar la instalación de su transportador con el siguiente comando: protractor –version. Si Protractor se instaló correctamente, el sistema mostrará la versión instalada (es decir, la versión 5.1.1). De lo contrario, deberá volver a verificar la instalación. Paso 3: actualice el administrador de controladores web para descargar los archivos binarios necesarios.

webdriver-manager update

Paso 4: El siguiente comando iniciará un servidor Selenium. Este paso ejecutará el administrador de controladores web en segundo plano y escuchará cualquier prueba que se ejecute a través del transportador.

inicio de webdriver-manager Puede ver información sobre el estado del servidor en http://localhost:4444/wd/hub/static/resource/hub.html.

Escribiendo el primer caso de prueba usando Transportador:

Antes de comenzar a escribir el caso de prueba, debemos preparar dos archivos: el archivo de configuración y el archivo de especificaciones.

En el archivo de configuración:

//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’
    }
}

Comprensión básica de las terminologías utilizadas en el archivo de configuración:

baseUrl: una URL base para su aplicación bajo prueba.

seleniumAddress: para conectarse a un servidor Selenium que ya se está ejecutando.

especificaciones: ubicación de su archivo de especificaciones

directConnect: verdadero: para conectarse directamente a los controladores del navegador.

capacidades: si está probando en un solo navegador, use la opción de capacidades. Si está probando en varios navegadores, use la matriz multiCapabilities.

Puede encontrar más opciones de configuración desde aquí. Han descrito toda la terminología posible con su definición.

En el archivo de especificaciones:

//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’);
      });
    });

Comprensión básica de las terminologías utilizadas en el archivo de especificaciones:

De forma predeterminada, Transportador utiliza el marco de jazmín para su interfaz de prueba. La sintaxis de ‘describe’ y ‘it’ es de jasmine framework. Puedes aprender más desde aquí. Ejecutando el primer caso de prueba:

Antes de ejecutar el caso de prueba, asegúrese de que su administrador de controladores web y su aplicación se ejecuten en diferentes pestañas de su terminal.

Ahora, ejecuta la prueba con:

Protractor app/conf.js

Debería ver que el navegador Chrome se abre con la URL de su aplicación y se cierra solo. La salida de la prueba debe ser 1 prueba, 1 aserción, 0 fallas.

¡Bravo! Ejecutas con éxito tu primer caso de prueba.