Puntos muy importantes en una herramienta son la posibilidad de extender sus funcionalidades y la posibilidad de interoperar con sus componentes . Esto posibilita a los usuarios agregar nuevas funcionalidades o simplemente contemplar particularidades específicas de cada realidad.
GXtest permite hoy en día dos mecanismos de extensión, uno es agregando
Custom Commands y otro es por medio de invocaciones a procedimientos GeneXus, para agregar validaciones y/o acciones sobre la aplicación bajo prueba.
GXtest le llama comandos a la forma de describir las acciones que un usuario puede realizar en el navegador. Existen entonces una serie de
comandos que permiten describir (prácticamente) todas las acciones que el usuario puede realizar con una aplicación GeneXus.
Sin embargo hay veces que se desarrollan algunas secciones de la aplicación fuera de GeneXus, agregando algún javascript particular o algo similar. En esas situaciones puede ser que los comandos estándar no sirvan, y haya que desarrollar un Custom Command. Estos se dan de alta en GXtest ingresando el nombre que se le quiere dar, el tipo (acción, evento o validación), una descripción para los parámetros y el código javascript que implemente la acción del usuario. Luego este comando aparece listado como si fuera un comando estándar (el usuario no se da cuenta entre un comando estandar y uno desarrollado a través de este mecanismo).
Otro mecanismo es la posiblidad de agregar invocaciones a procedimientos GeneXus. Por ejemplo si se quiere validar algún estado de la aplicación a nivel de los datos luego de una serie de acciones interactivas, lo mejor es agregar un procedimiento GeneXus que se le pasen los parámetros necesarios (por ejemplo, nro de cliente, nro de factura, etc) y que devuelva si el estado es correcto o no. También se pueden utilizar para cargar datos que se van a suministrar como entrada en el caso de prueba.
Otra posibilidad que brindan estos proc es para usarlos como funciones que son interesantes de tener en una herramienta de prueba, como por ejemplo generar un número randómico, generar un string randómico, concatenar string, etc. Si algún procesamiento no se puede realizar por medio de GXtest, se puede implementar un proc GX que solucione esa feature.
Para poder realizar una invocación a un procedimiento GeneXus, el mismo debe estar accesible vía WebServices desde la máquina que corre GXtest. Para dar de alta un procedimiento se ingresa el nombre, tipo (acción o validación), descripción y url al WSDL (esto permite leer los parámetros de entrada y salida del procedimiento). Luego que se da de alta queda accesible de manera transparente (al igual que los custom commands) para el usuario.
En el próximo post hablaremos de la interoperabilidad, intentaremos abrir la posibilidad de generar casos de prueba desde "afuera", o exponer servicios en el IDE de GeneXus.
¿Que otros mecanismos les parece interesante de contemplar?