Sahi
Sahi es una herramienta de automatización de pruebas para aplicaciones Web, con la facilidad de grabar y reproducir scripts. Está desarrollada en Java y JavaScript, la herramienta usa simplemente JavaScript para ejecutar los eventos en el browser.
Contenido
Caracteristicas
- Controla el navegador.
- Grabación inteligente.
- Scripts basados en texto.
- Soporte de Ant para reproducir el conjunto de pruebas.
- Reproducción MultiThread.
- Soporte para HTTP y HTTPS
- Soporte para AJAX
- Soporta Internet Explorer y FireFox
Sahi se ejecuta como un servidor proxy y el navegador debe utilizar a sahi como su servidor proxy. Sahi entonces inyecta javascript para que puedan acceder a elementos en la página web. Esto hace que la herramienta sea independiente del sitio web / aplicación web.
Prerrequisitos
Para ejecutar el servidor de Sahi
- JRE 1.4 o posterior
Para reproducir un suite de pruebas con Ant
- JDK 1.4 o posterior
- ant 1.6 o posterior
- log4j.jar
- junit.jar
Instalación de Sahi
Bajar sahi.zip de la Web oficial de Sahi y luego descomprimir este archivo en el directorio que se desee guardar esta herramienta.
Comenzando con Sahi
Una vez instalada la herramienta se deben realizar los siguientes pasos para poder comenzar a usar Sahi:
Firefox:
- Go to Tools > Options > General > Connection Settings >
- Set to “Manual Proxy Configuration”
- Set “HTTP Proxy” to “localhost”
- Set “Port” to “9999”.
- Do the same for “SSL Proxy” too, if you wish to record and playbacl https sites
- Keep “Use the same proxy for all protocol” unchecked as Sahi does not understand protocols other than HTTP (NOTA: “No Proxy for” should NOT have localhost or 127.0.0.1 or the domain of the test application in it.)
Internet Explorer:
- Go to Tools > Internet Options > Connections > LAN Settings >
- In “Proxy server” section, Check “Use a proxy server for your LAN”
- Set “Address” to “localhost”
- Set “Port” to “9999”
- Leave “Bypass proxy server for local addresses” unchecked OK > OK : )
Utilizando Sahi
Básicamente Sahi tiene dos formas de utilizarse tanto para grabar los scripts como para la posterior ejecución estos.
La herramienta puede utilizarse on line o batch en ambos casos el script de testeo puede grabarse mediante la ayuda de la interface de Sahi que permite grabar el test a medida que se utiliza la aplicación como si lo hiciera un usuario o escribiendo el script mediante un editor de texto. Para esta última opción es necesario conocer la API de Sahi.
Para acceder a la interfase de Sahi se debe realizar el cambio de la configuración en el navegador como se indicó en puntos anteriores y luego una vez en la página a testear presionar ALT + Doble Clic. En dicha interfase encontraran dos solapas una para grabar los test (Record) y otra para ejecutar los test (Playback).
Ejecución On line
Los scripts de testeo se ejecutan desde la interface de Sahi. En este modo solo se puede ejecutar de a un script por vez.
Ejecución Batch
Los scripts se ejecutan mediante tareas Ant, en este modo es posible ejecutar más de un script mediante el armando de lo que se conoce como un test suite.
La línea de comando para ejecutar un test suite con Ant sería algo así:
ant -buildfile "C:\Mis Documentos\Sahi\scripts\ejemplo_build.xml" all
Consejos
Grabando un script
- El ingreso en campos con máscaras (ej: las fechas) no se graban en el script. Hay que incluir la instrucción de set manualmente.
- Cuando se especifica un valor en un set de un campo con máscara debe ingresarse sin los caracteres que se incorporan en la máscara (Ej: 21/04/2008 debe ponerse como 21042008)
- Para determinados buscadores a veces es necesario agregar un wait antes y después del setear el valor.
- Antes de hacer un clic en botón de submit que no esté visible en la pantalla se debe hacer un _setfocus a dicho botón.
- Si en el script se deja un error de sintaxis, nos encontraremos que al momento de ejecutarse dicho script no se realiza ninguna acción finaliza con estado SUCCESS pese a que el script tiene varias instrucciones para ejecutar, en este caso verificar la sintaxis de cada una de las instrucciones del script.
- Cuando se graba un script en el cual se incluye una serie de pasos en una ventana popup no queda registrado en cada instrucción el popup sobre el cual se tiene que ejecutar la instrucción. Entonces una vez finalizada la grabación del script se los debe editar manualmente y espeficar en cada instrución el popup.
Ej: Antes de editar: _popup("RA")._assertNotNull(_cell(_table(2), 2, 1)); Después de editar: _popup("RA")._assertNotNull(_popup("RA")._cell(_popup("RA")._table(2), 2, 1));
Accediendo a la base de datos
- Incluir la librería con el driver que se quiere utilizar (Ej: Para acceder a una base de datos Oracle ojdbc14.jar)
- Inicializar el array donde se almacena el cursor de la base de datos ($rs[0] = [];). Si no se hace esto si bien el teste se ejecuta correctamente el estado del mismo es FAILURE.
- En un select, cuando se utiliza una formula o se genera un campo a partir de una concatenación de varios, etc se le debe poner un alias utiliazando la instrucción as. Ahora al momento de especificar este campo en el script de Sahi hay que tener en cuenta que se lo debe escribir todo en mayúsculas sin importar como se lo haya escrito en el Select.