page change angularjs selenium-grid protractor

angularjs - change - page title angular 4



Transportador-ejecuta mĂșltiples pruebas en paralelo en diferentes navegadores (6)

No puedo encontrar ninguna información sobre cómo configurar esto, pero parece ser un concepto bastante básico, así que estoy seguro de que hay una respuesta.

Sé cómo ejecutar transportador en diferentes navegadores estableciendo la propiedad browserName del objeto de capabilities en la configuración. Y eso está funcionando bien. Puedo configurarlo para ''chrome'' o ''firefox'' o lo que sea que necesite y funciona como se esperaba. Pero la única forma de ejecutar un solo conjunto de pruebas contra múltiples navegadores (hasta donde yo sé) es crear archivos de configuración separados, cada uno con un browserName diferente y luego ejecutar cada navegador con su propia configuración. Esto funciona, pero es realmente lento porque las pruebas se están ejecutando en secuencia, en lugar de al mismo tiempo.

¿Hay alguna forma de ejecutarlo en varios navegadores en paralelo?

¿Se puede hacer en SauceLabs? o incluso utilizando un Selenium-Grid local?

Estamos tratando de simplificar nuestro proceso de prueba y esto sería de gran ayuda. Cualquier sugerencia o información sería muy apreciada. Gracias por adelantado.


Así es como logro esto. Simplemente agregue la siguiente sección al archivo conf.js:

capabilities: { browserName: ''chrome'', shardTestFiles: true, maxInstances: 1 }

shardTestFiles = true hace que cada archivo de especificación se ejecute en una nueva instancia del navegador. maxInstances es la cantidad máxima de navegadores que se pueden abrir al mismo tiempo.



El uso de multiCapabilities ejecutará todas las pruebas en cada uno de los navegadores. Entonces la siguiente configuración se ejecutará cada prueba dos veces, una en Firefox y otra en Chrome:

multiCapabilities: [{ ''browserName'': ''chrome'' }, { ''browserName'': ''firefox'' }],

Si prefiere que cada archivo de prueba se ejecute solo una vez, pero se divide entre varios navegadores, utilice la opción splitTestsBetweenCapabilities :

splitTestsBetweenCapabilities: true

Esta publicación de blog entra en más detalles sobre las splitTestsBetweenCapabilities


Hay una nueva opción llamada multiCapabilities para eso:

multiCapabilities: [{ ''browserName'': ''chrome'' }, { ''browserName'': ''firefox'' }],

Aquí hay un ejemplo completo .


Tuve el mismo problema y descubrí que están agregando la característica para ejecución paralela mientras hablamos. :RE

Eche un vistazo a esto: https://github.com/angular/protractor/pull/492

Ese cambio se fusionó con maestro, pero uno más nuevo (512) sigue abierto. Tan pronto como se fusionen con el maestro (debe ser hoy o mañana de acuerdo con la discusión en la solicitud de extracción) debe estar en sus manos: D.


Actualización de febrero de 2014 - Esta respuesta ya no es válida. Usa la respuesta de Paolo Moretti a continuación.

Puede haber una forma mejor de hacerlo, pero actualmente solo estoy ejecutando esto como tareas simultáneas de Grunt.

1) Agregue el plugin concurrente ronco

npm install grunt-concurrent --save-dev

2) Agregue una tarea para cada navegador bajo grunt.initConfig. Podemos agregar el navegador como un arg para reutilizar nuestro archivo de configuración.

protractor: { options: { keepAlive: true, singleRun: false, configFile: "test/protractor.conf.js" }, run_chrome: { options: { args: { browser: "chrome" } } }, run_firefox: { options: { args: { browser: "firefox" } } } },

3) Registre estos como tareas;

grunt.registerTask(''protractor-chrome'', [''protractor:run_chrome'']); grunt.registerTask(''protractor-firefox'', [''protractor:run_firefox'']);

4) Crea tu tarea simultánea bajo grunt.initConfig

concurrent: { protractor_test: [''protractor-chrome'', ''protractor-firefox''] },

5) Agregue la tarea ronco para concurrente

grunt.registerTask(''protractor-e2e'', [''concurrent:protractor_test'']);

Y ejecutar eso debería darte pruebas concurrentes de transportadores.