Transportador - Introducción

Este capítulo le brinda una introducción a Transportador, donde aprenderá sobre el origen de este marco de prueba y por qué tiene que elegirlo, el funcionamiento y las limitaciones de esta herramienta.

¿Qué es transportador?

Protractor es un marco de prueba de código abierto de extremo a extremo para aplicaciones Angular y AngularJS. Fue construido por Google sobre WebDriver. También sirve como un reemplazo para el marco de pruebas AngularJS E2E existente llamado "Angular Scenario Runner".

También funciona como un integrador de soluciones que combina tecnologías potentes como NodeJS, Selenium, Jasmine, WebDriver, Cucumber, Mocha, etc. Junto con las pruebas de la aplicación AngularJS, también escribe pruebas de regresión automatizadas para aplicaciones web normales. Nos permite probar nuestra aplicación como un usuario real porque ejecuta la prueba usando un navegador real.

El siguiente diagrama le dará una breve descripción de Transportador -

Observe que en el diagrama anterior, tenemos:

  • Protractor - Como se discutió anteriormente, es un contenedor sobre WebDriver JS especialmente diseñado para aplicaciones angulares.

  • Jasmine- Es básicamente un marco de desarrollo basado en el comportamiento para probar el código JavaScript. Podemos escribir las pruebas fácilmente con Jasmine.

  • WebDriver JS - Es una implementación de enlaces Node JS para selenium 2.0 / WebDriver.

  • Selenium - Simplemente automatiza el navegador.

Origen

Como se dijo anteriormente, Protractor es un reemplazo del marco de prueba AngularJS E2E existente llamado "Angular Scenario Runner". Básicamente, el origen de Protractor comienza con el final de Scenario Runner. Una pregunta que surge aquí es ¿por qué necesitamos construir un transportador? Para entender esto, primero debemos verificar acerca de su predecesor: Scenario Runner.

Origen del transportador

Julie Ralph, la principal colaboradora del desarrollo de Transportador, tuvo la siguiente experiencia con Angular Scenario Runner en otro proyecto dentro de Google. Esto se convirtió en la motivación para construir Transportador, especialmente para llenar los vacíos:

“Intentamos usar Scenario Runner y descubrimos que realmente no podía hacer las cosas que necesitábamos probar. Necesitábamos probar cosas como iniciar sesión. Su página de inicio de sesión no es una página angular, y el Scenario Runner no pudo lidiar con eso. Y no podía lidiar con cosas como ventanas emergentes y múltiples ventanas, navegar por el historial del navegador, cosas así ".

La mayor ventaja del transportador fue la madurez del proyecto Selenium y resume sus métodos para que pueda usarse fácilmente para proyectos angulares. El diseño de Protractor está construido de tal manera que prueba todas las capas, como la interfaz de usuario web, los servicios de backend, la capa de persistencia, etc. de una aplicación.

¿Por qué transportador?

Como sabemos, casi todas las aplicaciones utilizan JavaScript para el desarrollo. La tarea de los probadores se vuelve difícil cuando JavaScript aumenta de tamaño y se vuelve complejo para las aplicaciones debido al creciente número de aplicaciones en sí. La mayoría de las veces se vuelve muy difícil capturar los elementos web en las aplicaciones AngularJS, utiliza una sintaxis HTML extendida para expresar los componentes de la aplicación web, usando JUnit o Selenium WebDriver.

La pregunta aquí es ¿por qué Selenium Web Driver no puede encontrar elementos web de AngularJS? La razón es que las aplicaciones AngularJS tienen algunos atributos HTML extendidos como ng-repetater, ng-controller y ng-model, etc., que no están incluidos en los localizadores de Selenium.

Aquí, la importancia de Transportador surge porque Transportador en la parte superior de Selenium puede manejar y controlar esos elementos HTML extendidos en las aplicaciones web AngularJS. Es por eso que podemos decir que la mayoría de los marcos se enfocan en realizar pruebas unitarias para aplicaciones AngularJS, Protractor solía hacer pruebas de la funcionalidad real de una aplicación.

Trabajo de transportador

Protractor, el marco de prueba, trabaja en conjunto con Selenium para proporcionar una infraestructura de prueba automatizada para simular la interacción de un usuario con una aplicación AngularJS que se ejecuta en un navegador o dispositivo móvil.

El funcionamiento del transportador se puede entender con la ayuda de los siguientes pasos:

  • Step 1- En el primer paso, necesitamos escribir las pruebas. Se puede hacer con la ayuda de Jazmín o Moca o Pepino.

  • Step 2- Ahora, necesitamos ejecutar la prueba que se puede hacer con la ayuda de Transportador. También se le llama corredor de prueba.

  • Step 3 - En este paso, el servidor Selenium ayudará a administrar los navegadores.

  • Step 4 - Por fin, las API del navegador se invocan con la ayuda de Selenium WebDriver.

Ventajas

Este marco de pruebas de código abierto de extremo a extremo ofrece las siguientes ventajas:

  • Protractor, una herramienta de código abierto, es muy fácil de instalar y configurar.

  • Funciona bien con el framework Jasmine para crear la prueba.

  • Admite el desarrollo basado en pruebas (TDD).

  • Contiene esperas automáticas, lo que significa que no necesitamos agregar explícitamente esperas y suspensiones a nuestra prueba.

  • Ofrece todas las ventajas de Selenium WebDriver.

  • Admite pruebas paralelas a través de varios navegadores.

  • Proporciona el beneficio de la sincronización automática.

  • Tiene una excelente velocidad de prueba.

Limitaciones

Este marco de prueba de código abierto de un extremo a otro posee las siguientes limitaciones:

  • No descubre ninguna vertical en la automatización del navegador porque es un contenedor para WebDriver JS.

  • El conocimiento de JavaScript es esencial para el usuario, ya que solo está disponible para JavaScript.

  • Solo proporciona pruebas de front-end porque es una herramienta de prueba impulsada por la interfaz de usuario.