test example e2e angularjs selenium selenium-webdriver webdriver automated-tests

angularjs - example - ¿Cuáles son las diferencias entre Selenium Webdriver y angular e2e y cuándo se deben usar?



protractor getattribute (3)

Ambos deben usarse para probar una aplicación angular. Sin embargo, en mi experiencia, sirven para diferentes propósitos.

Las pruebas angulares de e2e son sus mejores amigos al integrar nuevas funciones en su aplicación o al cambiar características ya existentes. Están ahí para asegurarse de que su aplicación se comporte como se esperaba si está haciendo cambios en su código. Estas pruebas son mucho más rápidas que el selenio, no es necesario que sean exhaustivas y, en mi experiencia, se ejecutan mejor antes de enviar una nueva función a su servidor de control de versiones.

Las pruebas de selenio deben usarse para las pruebas de regresión. Estas pruebas deben ser mucho más exhaustivas que las pruebas angulares e2e, y deben realizarse antes de introducir el código en producción.

Necesito probar una aplicación angular y estoy pensando en qué marco de prueba usar. ¿Puede alguien enumerar las diferencias entre esos 2 marcos de prueba, qué es bueno / malo en cada uno? ¿Cuándo debería usarse cada uno de ellos? puede uno reemplazar el segundo?

Edición 1: trataré de enfocar mi pregunta. lo que realmente me interesa es la capacidad técnica de los 2 marcos. por ejemplo, algunas de las diferencias que he encontrado:

  1. Selenium webdriver tiene la capacidad de ejecutarse en la red en paralelo en varias máquinas, en el otro lado, los escenarios angulares se ejecutan mucho más rápido que el selenio.
  2. con selenio puedo usar teclas del teclado como Enter, Backspace y más y también arrastrar y soltar acciones.
  3. el selenio no depende de la tecnología de la aplicación, angular solo para aplicaciones angulares

    Esos son el tipo de diferencias que estoy buscando: qué se puede hacer con una y qué no se puede hacer con la otra.

Gracias


Esta es una pregunta tan subjetiva, y por lo tanto, primero le digo que investigue. No hay mucha diferencia

Es un proyecto muy nuevo, mientras que el Selenio es mucho más maduro. Por ejemplo, el protocolo JSON Wire sobre el que se basa WebDriver es una especificación W3C real. Esto muestra que el proyecto es muy maduro y muy estable.

Debido a lo anterior, el Selenio tiene un conjunto mucho más amplio de documentación y una comunidad mucho más amplia.

Con Selenium tiene una variedad de diferentes lenguajes para usar para codificar las pruebas, así como también para usar el IDE. Los límites angulares se usan para JavaScript puro. Para muchos probadores manuales, esta es una habilidad que la mayoría no tiene.

Tanto Selenium como Angular son de código abierto, lo que (créame) ayuda tremendamente en la solución de problemas y la comprensión de las decisiones de diseño en sus respectivas API.


ACTUALIZACIÓN: esta pregunta puede ser menos relevante ahora. A partir de enero de 2014, Angular planea pasar de su propia suite E2E a la biblioteca de transportadores para realizar pruebas funcionales, que usan Selenium Webdriver.

Si está comenzando un nuevo proyecto angular, es posible que desee considerar el uso de transportador, ya que va a reemplazar el método actual de prueba E2E en el futuro cercano.

(Fuente: http://docs.angularjs.org/guide/dev_guide.e2e-testing )

Estoy luchando con esta pregunta también.

Aquí está mi pensamiento hoy:

1) Use la prueba Angular e2e para integración / regresión probando la UI con simulaciones de sus dependencias externas (como el servidor de la aplicación).

2) Use Selenium para pruebas de integración / regresión del sistema completo en un entorno de prueba / qa.

Parece que las pruebas angulares e2e ayudan a llenar los vacíos que dejan las pruebas unitarias en la vista de prueba y la lógica del controlador que está vinculada a los eventos de la interfaz de usuario. Todas las pruebas angulares deben simular dependencias externas.

El selenio parece ser la mejor opción para probar todo el sistema, ya que el usuario lo experimentará.