Como parte de uno de los últimos coachings en implementación de Scrum en un equipo de desarrollo de software, se decidió implementar ATDD y para ello utilizamos FitNesse para la escritura y preparación de las pruebas y Selenium para la ejecución de las mismas.

Para poder vincular FitNesse con Selenium, utilizamos WebTests Fixtures (gracias Gojko et al.)

La sorpresa que nos esperaba era una aplicación web desarrollada en .NET con Autenticación de Windows Integrada. Quien haya pasado por esto, sabrá que no hay mucha información online que nos permita resolver el problema. Salvo un par de modificaciones al core de WebTest y unos cuantos posts aislados, no podemos dar con una fuente unificada para solucionar este problema.

Desde el principio teníamos claro que no queríamos modificar el código de las herramientas de test que empleamos, para darles la posibilidad de ser actualizadas a medida que salgan nuevas versiones sin grandes problemas, por lo tanto, la solución debía ir por fuera.

Luego de investigar un tiempo, decidimos que la mejor opción era hacer que Selenium ejecute una instancia de Firefox lo suficientemente configurada para que la Autenticación Integrada de Windows no sea un problema.

Contexto


Tanto FitNesse como Selenium están instalados y corriendo como servicios en un servidor windows. La versión de FitNesse es la que viene con el download de WebTest Fixtures, mientras que la versión de Selenium es la más reciente, puesto que la que viene con WT soporta hasta Firefox 2, no 3.

Solución


En principio debemos crear un profile nuevo de Firefox con una determinada configuración para que las credenciales del usuario bajo el cual el servicio de Selenium está corriendo sean enviadas a la aplicación web de forma transparente, sin pop-ups ni alertas que impidan a Selenium realizar su trabajo. Luego debemos configurar a selenium para que levante ese perfil específico de Firefox, y no otro.

Creación del Perfil en Firefox


Para crear un nuevo perfil para firefox es importante estar logueado con el usuario bajo el cual el servicio de Selenium está corriendo. Una vez dentro del sistema se deben seguir estos pasos (NOTA: se asume Windows):

  1. Ejecutar:
    firefox.exe -ProfileManager


  2. Hacer click en "Crear Perfil"

  3. Poner un nombre al perfil. En nuestro caso utilizamos "WEBTEST-FFPROFILE-IWA"

  4. Seleccionar una carpeta. En nuestro caso utilizamos "C:\webtest\WEBTEST-FFPROFILE-IWA"

  5. Hacer click en "Fin"

  6. Seleccionar "No preguntar al iniciar"


Configuración del Perfil en Firefox



  1. Continuando desde el paso anterior, seleccionar el perfil recientemente creado y hacer click en "Iniciar Firefox"

  2. Ir a "Ver->Toolbars" y desactivar "Marcadores"

  3. Hacer click derecho sobre el toolbar y seleccionar "Personalizar"

  4. Seleccionar "Usar Iconos Pequeños" y aceptar

  5. Ir a "Herramientas->Opciones"

  6. En el Tab "Principal" setear "about:blank" como homepage y desactivar "Mostrar Descargas"

  7. En el Tab "Perstañas" seleccionar nueva ventana para nuevas páginas y desactivar todos los alertas

  8. En el Tab "Contenidos" desactivar el bloqueo de Pop-Ups

  9. En el Tab de "Privacidad" desactivar todas las opciones del Historial

  10. En el Tab de "Seguridad" desseleccionar las opciones de seguridad y en "Configuración..." desactivar las alertas

  11. En el Tab "Avanzado" desactivar "desplazamiento automático" del subtab "General" y desactivar alertas y motores de búsqueda del tab "Actualizaciones"

  12. Ir a "Herramientas->Complementos" e instalar Firebug, Selenium IDE y ScreenGrab

  13. En la barra de direcciones escribir "about:config"

  14. Crear la entrada lógica (boolean) "extensions.update.notifyUser" --> falso

  15. Crear la entrada lógica (boolean) "extensions.newAddons" --> falso

  16. Modificar la entrada "network.automatic-ntlm-auth.trusted-uris" e ingresar el dominio del servidor donde queremos probar la aplicación web

  17. Modificar la entrada "network.ntlm.send-lm-response" y darle un valor de "verdadero"


En este punto ya debemos tener el perfil de Firefox correctamente configurado.

Configuración de Selenium para tomar el perfil de Firefox Creado


Modificar el archivo batch que ejecuta Selenium (en el raíz de WebTest) e incluir este parámetro detrás del llamado al JAR: "-firefoxProfileTemplate C:\webtest\WEBTEST-FFPROFILE-IWA" (cambiar C:\webtest\WEBTEST-FFPROFILE-IWA por la dirección de tu carpeta donde guardaste el perfil de Firefox creado recientemente.

Listo, los tests ya deberían ejecutarse satisfactoriamente bajo la Autenticación de Windows Integrada.

Espero te sirva si en algún momento te topás con este problema.


Dime lo que piensas. Por favor, deja un comentario más adelante (y luego dale click a ese botón de 'Me gusta'!)

Seguir leyendo


Comentarios

comments powered by Disqus