¿Qué es mejor para probar una aplicación web: Protractor o Selenium?

Hola. Creo que puedo hacer justicia a esta pregunta.

No tengo muchos detalles sobre qué es el transportador. Pero sí sé que es una biblioteca de JavaScript utilizada para aplicaciones angulares. Sin embargo, Selenium puede probar todo tipo de aplicaciones web.

La prueba de una aplicación angular incluso se puede hacer con transportador y Selenium WebDriver juntos. O por separado con otra API Selenium WebDriver.

Por lo tanto, no es correcto comparar transportador versus selenio. Por lo que sé, el transportador se usa solo para aplicaciones angulares. Selenium WebDriver, por otro lado, se puede utilizar para probar casi todas las aplicaciones web que existen.

Conclusión: Selenium WebDriver es una opción obvia.

Escribí un par de blogs y grabé algunos videos en Selenium. Si está interesado en comenzar aquí, échele un vistazo desde los enlaces a continuación.

Serie de blogs de tutoriales de selenio: ¿Qué es selenio? Una guía para principiantes sobre pruebas de automatización | Edureka

Selenium tutorial video playlist: Selenium Tutorial: un tutorial completo sobre las pruebas de automatización de Selenium.

Integración Selenium Jenkins

Pruebas de DDT de selenio

Patrón de diseño de selenio POM

Feliz aprendizaje 🙂

Propondría Selenium para la aplicación web en lugar de Protractor.

Razón:

La razón principal para automatizar los navegadores a través de un servidor de selenio intermedio en lugar de la conexión directa del controlador web es que el servidor de selenio, si actúa como Selenium Grid, le permite expandir / escalar sus pruebas en múltiples navegadores, múltiples navegadores en múltiples sistemas, vea, para ejemplo, Sauce Labs Selenium Grid. Para su información, también existe el servicio BrowserStack , que, además de otras características, actúa como un servidor de selenio con, al igual que Sauce Labs, una enorme cantidad de capacidades / configuraciones diferentes: navegadores y sistemas.

Cheatsheet útil para el selenio (descárguelo):

Algunos manuales de referencia útiles:

Referencia:

¿Diferencia ejecutando el transportador con / sin selenio?

Beneficio de selenio:

Si desea comenzar a leer en detalle, consulte:

Nota:

Las secuencias de comandos de muestra de las pruebas de transportador versus las pruebas de selenio se encuentran en la edición revisada en:

Haga clic a favor : ¡Espero que sea útil!

Cada vez que automaticé las aplicaciones web, cuando codifiqué en JavaScript, utilicé la biblioteca JavaScript ‘básica’ proporcionada por el equipo WebDriver WebDriverJS:

Lo uso porque se mantiene actualizado con la base principal de código de selenio y si desea ayuda en los foros de Selenium, es probable que este reciba respuestas allí.

Esta no es su única opción cuando trabaja con JavaScript:

  • Transportador http://www.protractortest.org/#/
  • creado por el equipo de Angular JS
  • diseñado para ser utilizado para aplicaciones angulares porque ha incorporado sincronización para aplicaciones angulares
  • transportador está construido en WebDriverJS

Si su aplicación está escrita usando Angular, y está escribiendo su código de ejecución de prueba en JavaScript y no tiene mucha experiencia en la automatización de aplicaciones web, entonces esta podría ser una buena opción debido a la sincronización predeterminada y la documentación se basa en las aplicaciones de Angular.

Esta podría no ser la mejor opción para aplicaciones no angulares porque puede preferir enfoques de sincronización más específicos y la API podría no ser tan flexible como necesita.

Si desea utilizar la versión más actualizada de WebDriverJS, entonces depende de la actualización de Protractor para usarla, pero creo que esto suele suceder bastante rápido.

Tu también tienes:

Tendrás que evaluarlos para ver cuáles:

  • funciona mejor en su entorno
  • ofertas y API que se ajustan a su estilo de codificación

En general, trato de trabajar lo más cerca posible de la biblioteca central para tener la menor dependencia posible de otros proyectos, y tampoco encuentro que la API principal de WebDriver sea difícil de usar.

Puede probar aplicaciones angulares sin Protractor, pero debe escribir código para sincronizar su aplicación de manera efectiva.

Dado que Protractor es de código abierto, puede leer el código fuente para comprender sus mecanismos de sincronización si elige usar una biblioteca JavaScript diferente.

Si prefiere codificar en otro idioma, por ejemplo, Java o C #, mire la página de descarga en selenium hq y comience con los enlaces oficiales.

Si los encuentra difíciles de usar, es posible que desee buscar una biblioteca que se encuentre en la parte superior de WebDriver, para ese lenguaje, que ofrece un ‘marco’ o abstracción de nivel superior para trabajar.

Los beneficios de quedarse lo más cerca posible de la biblioteca ‘núcleo’ es que le resultará más fácil cambiar entre diferentes idiomas al codificar las pruebas de WebDriver, ya que las API son muy similares, y está aprendiendo WebDriver, en lugar de aprender un marco o biblioteca separado .

Protractor es un marco de prueba para aplicaciones Angular JS que usa Selenium para automatizar el comportamiento del navegador (Protracter usa JS pero aún se comunica con Selenium usando WebDriverJS).

Es cierto que aún podría usar Selenium Web Server API como una alternativa a Protractor (con un idioma de su elección que sea compatible) para hablar con Selenium Server

Probablemente sea una elección personal aquí, pero si usa AngularJS y dado que son las mismas personas que escribieron transportador, entonces vale la pena familiarizarse con él. Me gusta bastante pero podría ser restrictivo.

En qué idioma prefiere escribir sus pruebas, Javascript, Python java. ¿Tienes otras aplicaciones para probar que no usen AngularJS y en este caso la API podría ser una mejor manera de hacerlo?

Es muy simple cuando se trata de seleccionar entre selenio y transportador para sus necesidades de prueba. Si su aplicación web se desarrolla usando angular / react / ember js, entonces es aconsejable ir con transportador. Para todas las demás tecnologías, Selenium cumple muy bien el propósito. Pero eso no significa que Selenium no deba usarse para sitios web creados con js. Tanto Selenium como Protractor están construidos sobre el controlador web, pero estos son los factores que debe considerar.

  • Se trata del mundo del modelo MVC vs MVVM. Todas las aplicaciones web angular js (MVVM) son de naturaleza asíncrona y esa es una razón por la que el transportador que maneja muy bien las llamadas asincrónicas se dice que lo ayuda a automatizar la aplicación de manera más efectiva. Puedes hacer que Selenium funcione como transportador, pero ¿por qué reinventar la rueda?
  • El odio por usar JavaScript surge principalmente porque todavía muchos equipos siguen un enfoque aislado en el que incluso dicen que siguen la religión de ágil y pretenden implementar una integración continua, todavía hay un equipo de automatización separado que discute con el lenguaje de programación para utilizar. Pero para ser simple, use el mismo lenguaje en el que se está desarrollando el producto, que es uno de los muchos principios de implementación de DevOps.

Bueno, cuando hablemos para diferenciarlos, habrá muchas cosas que medir con los aspectos de las pruebas de software de automatización. Ambos tienen sus ventajas y limitaciones sobre sí mismos. Cuando busquemos Transportador, verá el buen controlador web Selenium (también conocido como WebDriverJS, también conocido como controlador web selenio), que actúa como un contenedor esencial para el controlador web Selenium JavaScript para que pueda aprovechar al máximo sus capacidades del controlador web Con la útil adición.

Protractor ofrece nuevas estrategias y funciones de localización que también automatizan la prueba de aplicaciones AngularJS. Funciona junto con Selenium para ofrecer una infraestructura de prueba automatizada. También hace que la cuadrícula de selenio ejecute varios navegadores a la vez.

Protractor solo funciona como un marco de prueba de extremo a extremo para aplicaciones angulares y no angulares (sin atributos CSS). Protractor automatiza todo el proceso de negocio cuando sus aplicaciones web están construidas en AngularJs con la ayuda de Protractor.

Mientras que el selenio funciona muy bien incluso si es un sitio web angular de JS, solo tenemos que lidiar con el problema de sincronización. Si puede manejar, entonces no hay desventaja. Selenium es muy rico en automatización, es decir, está en el mercado desde hace años y ha evolucionado mucho y su API es casi estable. Incluso puedes trabajar con selenio en casi todos los idiomas populares.

Para saber más, lea este artículo: Introducción a Selenium 3.0: una actualización con GeckoDriver

Según mi conocimiento, Selenium es considerado uno de los mejores marcos de automatización de pruebas utilizados para probar aplicaciones web. A medida que las pruebas de software avanzan hacia la automatización, la mayoría de los probadores de software, así como los controles de calidad, cambian de pruebas manuales a pruebas automatizadas. Hoy en día, las pruebas de software automatizadas se consideran uno de los términos más populares en el campo de las pruebas de software, ya que se consideran una de las metodologías de software eficientes y efectivas, lo que mejora el ciclo de vida general de desarrollo / prueba de software y lo toma en cuenta. a un nivel diferente

Una de las herramientas de automatización de pruebas más fáciles de usar que he estado usando es TestingWhiz. Esta herramienta se desarrolla utilizando el marco Selenium, que proporciona múltiples soluciones de prueba relacionadas con la web, bases de datos, dispositivos móviles, etc. a través de la automatización. Para experimentar lo mismo, puede probar su versión Enterprise gratuita descargándola de su sitio web.

El transportador todavía está evolucionando y no está diseñado para escenarios críticos de pruebas comerciales.

mientras que Selenium es más estable y tiene buenas capacidades de diseño de marco, soporte y características de informes de resultados de pruebas.

Conductor web de selenio transportador

Costo Código Abierto Código Abierto

IDE Licencia Webstorm7.0 Eclipse

Archivo por lotes de ejecución, scripts de shell, ant, archivo por lotes de maven, scripts de shell, ant, maven

Depuración difícil fácil debido a Java

Habilidad javascript, node.js java, testNG

Existe un marco de trabajo comprobado

Complementos duros de parametrización para archivos externos

Resultado Reporting Sauce labs, de lo contrario, es un ingenuo complemento TestNG para Reporting

La integración del servidor CI es posible La integración está probada

Localizadores menos opciones suficientes

Grabación No es posible Selenium IDE puede usarse

Apoyo muy pocos

Plataforma de Windows, Linux Windows, Linux

Compatibilidad con dispositivos móviles No es posible con Appium

Transportador se ejecuta en la parte superior de selenium aka webdriver. Las pruebas se escriben en JS y se ejecutan en node.js. El transportador está personalizado para aplicaciones angularJS. Entonces, si su aplicación fue creada usando angularJS, entonces transportador ayudará como lo ha hecho en el soporte incorporado para la carga de página angular JS y acciones.

Si su aplicación no está construida sobre angular, puede usar webdriver sobre cualquier otro idioma que prefiera.

Me gustaría compartir la experiencia de nuestro equipo. Hemos estado utilizando nuestra propia herramienta de prueba de interfaz de usuario, Screenster, para probar nuestras aplicaciones web y las de nuestros clientes. Ha demostrado ser una alternativa útil a Selenium para tareas de prueba visual / CSS.

Screenster es una herramienta de automatización de prueba que realiza una comparación basada en capturas de pantalla de diferentes versiones de sus páginas web. Primero crea una línea de base visual para una página, tomando una captura de pantalla para cada acción del usuario. Durante la próxima ejecución, toma una nueva captura de pantalla en cada paso, la compara con la de la línea de base y resalta las diferencias. Aquí hay un ejemplo de cómo maneja las pruebas de regresión visual automatizadas de la interfaz de usuario de Gmail.

En resumen, Screenster tiene las siguientes ventajas:

  • Línea de base visual: se capturan capturas de pantalla para cada paso del usuario durante la grabación de prueba
  • Comparación basada en capturas de pantalla: Screenster compara las imágenes capturadas durante una reproducción con las de la línea de base y resalta todas las diferencias
  • Selectores CSS inteligentes: el probador puede seleccionar elementos CSS en las capturas de pantalla y realizar acciones con ellos, por ejemplo, marcarlos como regiones ignoradas para excluirlas de una comparación adicional
  • Opciones avanzadas de mantenimiento de pruebas: es posible agregar o eliminar pasos, modificar acciones en cada paso, anular pruebas con nuevos parámetros, etc.

Screenster está disponible para descarga gratuita o puede probarse en su servidor de demostración.

El transportador es nuevo en el mercado y tiene menos recursos en comparación con Selenium Webdriver. El transportador es para pruebas de aplicaciones principalmente angulares.

Tutoriales de transportador: Archivos de transportador – Tutoriales de control de calidad

A partir de ahora, ninguna herramienta de automatización puede asociarse con Selenium

El selenio es mejor … y Protracter tiene más funcionalidades que el selenio, como la espera automática.

Si eres bueno en angularJs o JavaScript, entonces puedes optar por Protracter, de lo contrario, el selenio es mejor, puedes escribir script usando java.

Transportador en realidad se basa en webdriver o Selenium. Transportador se utiliza específicamente para aplicaciones basadas en angularJS.

Si sus aplicaciones no están escritas en angular, webdriver es altamente compatible con muchos idiomas.

Tengo otra pregunta, no tanto una respuesta. Específicamente, ni siquiera veo cómo las personalizaciones de transportador para angular ayudan tanto. Por ejemplo,

No obtengo el beneficio de los accesorios angulares. Ya puedo usar selenio para identificar un elemento ng como este: net_new_number = “.lifted -cell.ng -binding “;
entonces tengo mis propios métodos para obtener texto y cssSelector de esta manera:

getText (cssSelector (net_new_number));

Acabo de recibir el texto de net_new_numbert por su atributo ng -inding,
no son tantas pulsaciones de teclas, ¿cuál es el beneficio del transportador?

Entonces, si ya tengo mi propio marco construido, ¿por qué necesitaría un transportador? Y ‘porque transportador está en el mismo idioma, javascript, como angular’ no es una buena respuesta … No me importa mucho cuál es el lenguaje que se está probando, solo me importa lo que sea mejor para mí codificar las pruebas en …

Tanto Protractor como Selenium son herramientas muy poderosas para probar una aplicación web. Si desea probar la aplicación AngularJS, se usa la herramienta transportadora si la aplicación es No AngularJS que la herramienta Selenium se usa para probar la aplicación web.

Selenium es una herramienta de grabación y reproducción, mientras que el transportador es un marco de prueba de extremo a extremo para aplicaciones AngularJS.

Requisitos previos de selenio : –

Conocimientos básicos de conceptos JAVA y conceptos HTML.

Prerrequisitos del transportador: –

  • Instale y configure JAVA en su sistema.
  • Descargue Node.js, para verificar si está instalado o no, escriba npm –version
  • Para instalar el transportador, escriba npm install –g transportador
  • Escriba npm -g list

últimas noticias