Test comportamiento (Uso de Selenium)¶
El sistema de test en gong basado en Selenium IDE
Generalidad¶
Selenium IDE es un plugin de firefox.
El servidor de test es http://test.desarrollo.gong.org.es/.
El servidor de test¶
El script /home/sramos/scripts/actualiza_test en el servidor de test actualiza el gong y sus plugins en /srv/test/.
Los plugins utilizados por esta instancia son los en /srv/test/gor_plugins.
La instancia 'test.desarrollo' (/etc/apache2/sites-available/test.desarrollo) es independiente de las otras instancias ('formacion', 'desarrollo', …). salvo por la gemset de rvm.
El modulo de apache 'passenger' (/etc/apache2/mods-enabled/passenger.load) apunta a la gemset en /usr/local/rvm/gems/ruby-1.9.3-p551 para toda las instancias de apache.
Construir un test¶
- seleccionar selenium en firefox
se abre el selenium
- elegir File > open
- elegir el la carpeta 'Selenium_new' la test suite donde se quiere integrar un nuevo test (por ejemplo 'test_suite_proyecto').
- (opcional) hacer correr la test suite hasta el punto donde queremos integrar el nuevo test
- poner un break point al primero paso del test siguiente (doble click sobre el test case posterior, pulsar 'b' sobre el primero paso, se pone un icono amarillo sobre el paso como en la imagen)
- hacer correr la test suite hasta este punto (pulsar el icono verde señalado en la imagen)
Crear un nuevo test case dentro de la suite¶
- se hace un click derecho encima del panel de test case (panel izquierdo donde son listados los test cases)
- El nuevo test case estará abajo del todo del listado de test cases titulado “Untitled” , seleccionarlo.
- Pulsar el boton rojo (señalado en la imagen) para empezar a recordar el test.
- en el firefox hacer la acción completa (por ejemplo, pulsar los butones para llegar a los campos a rellenar, rellenar los campos, salvar...)
- renombrar el test case (click derecho sobre el test case, elegir 'properties')
Un dialogo se abré
- Damos un titulo (no podemos cambiar el nombre y el lugar del fichero, eso tendremos que hacer en la consola donde lo moveremos a Selenium_new/proyecto/)
- Salvamos el texto y le damos como nombre ' 11_test_case_proyecto_formulacion_subactividad' en la carpeta proyecto.
- Plazamos el test despues de el '10_test_case_proyecto_formulacion_matriz'.
- Salvamos la test suite.
Modificación del test nuevamente creado.¶
A la hora de detectar elementos que ajax habría cambiado, hay que cambiar algunos evento que desatan un ajax call.
Por ejemplo, si tenemos un 'click' en la 'target'
css=#actividad_1_subactividad_anadir_anadir > img.icono
Probablemente no funcionara porque el elemento 'css=#actividad_1_subactividad_anadir_anadir todavía no existe cuando selenium intenta la acción (existía cuando hemos manipulado el navegador manualmente porque vamos más lento que selenium).
Hay que poner antes del 'click':
waitForVisible, target: css=#actividad_1_subactividad_anadir_anadir
Eso se hace pinchando sobre el paso del 'click' y en el menu 'edit' eligiendo la opción 'Insert New Command'.
Hay varias modificación de este índole a lo largo de este test case ('11 Formulacion Subactividad').