¿Cómo podemos pasar diferentes navegadores a la vez en robotframework?

*** Variables *** ${BROWSER} firefox ${URL} http://url/ ${Delay} 0 

en mi archivo settings.txt tengo una variable llamada {BROWSER} Y el valor asociado como se muestra arriba es Firefox

pero lo que quiero es

 *** Variables *** @{BROWSERS} firefox chrome IE ${URL} http://url/ ${Delay} 0 

algo como lo de arriba … así que cuando ejecuto test-suite primero se ejecutará en Firefox y después de completar todos los testcases cerrará Firefox y abrirá Chrome y ejecutará todos los casos de prueba nuevamente en el navegador Chrome … y así sucesivamente se ejecutará en IE

Entonces, ¿cómo podríamos hacer esto?

No quiero hacerlo manualmente (me refiero a pasar uno por uno o al editar el archivo txt). de forma totalmente automática …. una vez que ejecute la prueba, se probará automáticamente en todos los navegadores.

PD: esto está en el archivo settings.txt y tengo dos carpetas en las que tengo archivos test.txt. así que ahí está el problema principal … tengo que iterar estas carpetas en un bucle

 |-- main.py |-- settings.txt //in this file i have browser variable (or Array) |-- test1 | |-- testl.txt | |-- test1_settings.txt //this will contain all the variables and user defined keyword related to test1 and |-- test2 | |-- test2.txt | |-- test2_settings.txt //same as test1 

$pybot test1 test2 casos de prueba como este $pybot test1 test2

Veo 2 maneras de hacerlo.

1) recorra su navegador y llame a una palabra clave que haga su prueba:

 *** Variables *** @{BROWSERS} firefox chrome IE *** test cases *** test with several browser :FOR ${browser} IN @{BROWSERS} \ log to console call keyword that does your test with ${browser} 

Esto es lo que obtienes con esta prueba:

 [Mac]$ pybot . Browser.Ts ============================================================================== test with several browser call keyword that does your test with firefox call keyword that does your test with chrome call keyword that does your test with IE test with several browser | PASS | ------------------------------------------------------------------------------ Browser.Ts | PASS | 1 critical test, 1 passed, 0 failed 1 test total, 1 passed, 0 failed ============================================================================== 

2) otra forma (que yo prefiero) es mantener su variable $ {BROWSER} con un solo valor y llamar a su caso de prueba varias veces con un nuevo valor para la variable que da en la línea de comando:

 [Mac]$ pybot --variable BROWSER:firefox ts.txt [Mac]$ pybot --variable BROWSER:chrome ts.txt [Mac]$ pybot --variable BROWSER:ie ts.txt 

Ok, creo que he resuelto este problema escribiendo un simple script.

Acabo de escribir un progtwig que leerá el archivo settings.txt y encontrará la línea @{BROWSER} firefox chrome IE y luego extraerá el nombre y la tienda de los navegadores en una lista. por lo que este script devolverá una lista como esta [‘firefox’, ‘chrome’, ‘IE’]

Ahora, en lugar de usar un solo comando pybot, lo usaré en un bucle

 for browser in browsers: call(['pybot','--variable'] +['BROWSER:%s'%browser] + test_args) 

El archivo settings.txt contendrá dos variables

 ${BROWSER} firefox #So default browser is firefox. you can leave it blank @{BROWSERS} firefox chrome IE