Articles

¿Qué es el transportador?

Transportador

De acuerdo con la primera y básica arquitectura de aplicaciones web, un servidor debido a la recarga constante de contenido y el enorme intercambio de datos, es más común para sitios web estáticos que las aplicaciones web reales que consisten en lógica de construcción de páginas web y lógica de negocios que interactúa con un cliente enviando una página HTML completa. Para ver una actualización, el usuario necesita recargar completamente la página o, en otras palabras, que el cliente envíe una solicitud de una página HTML al servidor y cargue todo su código una vez más. Mire el diagrama de arquitectura de aplicaciones web de este tipo.

CSA heredada

Hoy en día, muchas empresas cambian de la Arquitectura Cliente-Servidor tradicional a la Moderna, donde después de cargar la primera página, toda la interacción con el servidor ocurre a través de llamadas AJAX. Estas llamadas AJAX devuelven datos, no marcas, generalmente en formato JSON. La aplicación utiliza los datos JSON para actualizar la página de forma dinámica, sin recargarla.

En este tipo, la lógica de construcción de la página web se reemplaza por servicios web y cada página del cliente tiene entidades separadas llamadas widgets. Al enviar consultas AJAX a servicios web, los widgets pueden recibir fragmentos de datos en HTML o JSON y mostrarlos sin recargar toda la página. Con actualizaciones de widgets en tiempo real, este tipo es más dinámico, compatible con dispositivos móviles y casi tan popular como el siguiente tipo.

La última CSA

Angular es uno de los frameworks que permite crear tales aplicaciones. Angular viene con su propio conjunto de características, por lo que la estrategia de localización tradicional para las pruebas de automatización consumirá mucho tiempo.

¿Qué es el transportador?

Protractor es un marco de pruebas de extremo a extremo para aplicaciones AngularJS y funciona como integrador de soluciones que combina herramientas y tecnologías potentes como NodeJS, Selenium WebDriver, Jasmine, Cucumber y Mocha. Fue desarrollado inicialmente por desarrolladores de Google para soportar aplicaciones angulares y más tarde se lanzó como un marco de código abierto. Ahora el transportador admite aplicaciones angulares y no angulares. El transportador es un envoltorio escrito en la parte superior de Webdriver.js, todas las características que son compatibles con Selenium Webdriver son compatibles con él, además de las características específicas de angular.

WebdriverJS es la implementación oficial de javascript de selenium. Utiliza el protocolo Selenium JSON-Wire para interactuar con el navegador como lo hace selenium java. El transportador depende de WebdriverJS para interactuar con el navegador.

¿Por qué los elementos de web Angular JS son difíciles de identificar?

Las aplicaciones JS angulares tienen algunos atributos HTML adicionales como repetidor ng, controlador ng, modelo ng.., sucesivamente. que no están incluidos en los localizadores de selenio. Selenium no es capaz de identificar esos elementos web usando código Selenium. Por lo tanto, el Transportador en la parte superior del Selenio puede manejar y controlar esos atributos en aplicaciones Web.

¿Qué es el Transportador?

Características del transportador

Admite localizadores angulares específicos: La aplicación angular viene con localizadores angulares específicos como ng-model, ng-bind, ng-repeat, etc. por lo tanto, el transportador ha ampliado el soporte para estos localizadores. No tiene que crear XPath complejos para localizadores angulares, en Protractor, esos localizadores están listos para que pueda usarlos por.modelo, por.repetidor, etc.

Admite aplicaciones no angulares y Angulares: El transportador tiene soporte extendido para aplicaciones angulares, pero también admite aplicaciones no angulares. Eso significa que si su parte de la aplicación no es angular y parte de ella es angular, aún puede elegir el marco de transportador y puede realizar una automatización de prueba de automatización completa de extremo a extremo.

Admite pruebas entre navegadores: Podemos ejecutar nuestros scripts en varios navegadores, como Chrome, Firefox, Safari, IE11, Edge. La configuración para las pruebas entre navegadores es fácil y no consume mucho tiempo. Cubriremos este tema en detalle en nuestros próximos tutoriales.

Soporta ejecución en paralelo: Considere que tenemos un gran número de casos de prueba, Si todos los casos de prueba necesitan ejecutarse secuencialmente i.e uno tras otro consume mucho tiempo. La ejecución en paralelo ayuda en este caso. Ejecución paralela ejecuta casos de prueba en varias instancias del navegador por ejemplo, si tiene 4 casos de prueba, en una ejecución en dos instancias del navegador, cada uno ejecuta dos casos de prueba en un solo punto de tiempo, por lo que en menos tiempo, se ejecutarán más casos de prueba.

Soporta Navegador sin cabeza: Un navegador sin cabeza es un navegador sin interfaz de usuario. El transportador también es compatible con el navegador sin cabeza.

Soporta extensibilidad: Ya que el transportador es un nodo.la aplicación js, puede utilizar la amplia variedad de paquetes que están disponibles en el nodo. Por lo tanto, uno puede extender su marco o agregar características adicionales instalando paquetes de nodos. Por ejemplo, si necesita un informe HTML, puede usar Jasmine HTML Reporter, para el código limpio puede instalar eslint o tslint . Del mismo modo, puede instalar paquetes de nodos de su elección.

Admite complementos de informes: En comparación con los que no son nodos.marco de automatización de código abierto basado en js es fácil configurar el informe en protractor. Jasmine HTML Reporter es uno de los marcos de generación de informes. Que produce informes HTML para sus especificaciones. A continuación se muestra el informe de ejemplo

Compatible con plataformas de prueba en la nube: Las plataformas de prueba basadas en la nube nos permiten ejecutar nuestras especificaciones en varios navegadores (Chrome, Firefox, Safari, etc.).), múltiples plataformas (Windows, Mac, Linux, Móvil, etc.). Protractor es compatible con las principales plataformas de pruebas en la nube, como SauceLabs y CrossBrowserTesting.com.

Admite varias bibliotecas de aserciones: Protractor admite varias bibliotecas de aserciones como Jasmine, Mocha o incluso puede usar sus bibliotecas personalizadas. De forma predeterminada, protractor utiliza Jasmine framework para aserciones.

Soporta Flujo de control: La API se basa en promesas, que son administradas por un flujo de control y adaptadas para Jasmine. Las API de transportador son completamente asíncronas. Todas las funciones devuelven promesas. Mantiene una cola de promesas pendientes, llamada flujo de control, para mantener organizada la ejecución. (Cubriremos más sobre Promesas en las próximas secciones del tutorial).

Soporta varios IDE& Editores: Hay toneladas de IDE en el mercado entre las que puedes elegir. Los editores más populares son Visual Studio Code, WebStorm, Visual Studio Professional, Atom y sublime. (Cubriremos en detalle en nuestros próximos tutoriales)

Soporta CI / CD: Una vez que los scripts de automatización están en su lugar, no necesitamos ejecutarlos manualmente ni supervisarlos. Cada vez que el código nuevo vaya al repositorio, las pruebas del transportador se ejecutarán automáticamente y obtendrán el informe. Esto significa que necesitamos automatizar el proceso, podemos lograrlo integrando la prueba de transportador para crear herramientas como Jenkins, TFS o Azure DevOps. El transportador admite la integración de herramientas de compilación. (Cubriremos los detalles de configuración paso a paso en nuestros próximos tutoriales).

¿Cómo funciona el Transportador?

framework

El Transportador es un marco de pruebas de extremo a extremo, Transportador está construido sobre WebdriverJS, WebdriverJS es enlaces javascript de Selenium webdriver API. Esto significa que la API de WebdriverJS proporciona API para pruebas escritas en javascript. El transportador es un marco de prueba basado en Selenio, lo que significa que el transportador interactúa con servidores y controladores web de selenio, como ChromeDriver, GeckoDriver, SafariDriver, etc. para simular las acciones del usuario.

Cuando sus scripts de prueba envían comandos al servidor Selenium, que a su vez se comunica con el controlador del navegador y ejecuta los comandos (realiza acciones). El siguiente es el marco de aserciones, el Transportador admite varios marcos de aserciones, como Jasmine, Mocha, etc. Este marco de aserción nos ayuda a validar o verificar los valores, a su vez, su prueba se marcará como aprobada o reprobada. En resumen, Protractor, WebdriverJS, Servidor Selenium, Controlador de navegador y Marco de Aserción proporcionan la infraestructura para escribir y ejecutar nuestras pruebas de extremo a extremo.