Taller gxtest

587 views

Published on

Published in: Education, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
587
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Taller gxtest

  1. 1. Taller <br />Introducción<br />El taller consta de dos partes, un taller inicial y un taller avanzado. El taller inicial sigue una serie de pasos para mostrar los principales conceptos de GXtest. Por otro lado el taller avanzado muestra algunos conceptos más complejos que la herramienta permite manejar para expresar casos de prueba más complejos.<br />Ambos talleres se realizarán sobre la aplicación AjaxSample en la versión GeneXus Ev1.<br />Todos los archivos que se referencian en este taller se encuentran en la carpeta “Material Taller”, la cual está en el escritorio de la máquina virtual.<br />Glosario GeneXus<br />Knowladge Base (KB): la KB GeneXus es el modelo de desarrollo de la aplicación. A partir de la misma luego se genera la aplicación en una plataforma concreta (Java, Net)<br />Objeto GeneXus: es un elemento que GeneXus provee para describir la aplicación, es parte de una KB GeneXus. Hay varios tipos, Transacciones, Web Panels, procedimientos, etc.<br />Control GeneXus: es un elemento que se encuentra dentro de un objeto GeneXus del tipo Transacción o Web Panel y sirve para describir la página web que el muestra. Un control puede ser por ejemplo un campo en una pantalla, un botón, un combo, etc.<br />Taller Inicial<br />Crear el proyecto “AjaxSample”<br />Objetivo: Crear el primer proyecto en GXtest para automatizar una aplicación Web: Ajax Sample<br />Abrir GXtest Designer (en el escritorio se puede encontrar el link que dice GXtest). Presionar Ok para ingresar a la base local con el usuario Guest. <br />Crear un proyecto nuevo, para esto ir a Project->New Project. <br />Cuadro de dialogo de “New Project”<br />Campo “Name”: Ingresar el nombre del proyecto, por ejemplo AjaXSampleCursoGXtest. <br />Campo “KB Name”: ahora se debe asociar la Knowladge Base (KB) de GeneXus de la aplicación con la cual se va a trabajar, para esto hacer clic en el botón con la figura de (+). Luego hacer clic en el botón que aparece pegado al campo “File Location” e indicar el archivo llamado “AjaxSampleKB.gxt”. Ese archivo contiene la información relevante de la KB GeneXus que GXtest utiliza. Luego que se selecciona el archivo presionar Ok. GXtest informará que se importó correctamente la KB. Luego de esto en el dialogo de creación del proyecto, en el campo KB Name, indicar la KB recientemente importada.<br />Nota: el archivo con el cual se importa la KB puede ser un XPZ (si es Genexus 8 o 9), o puede utilizarse directamente el archivo GXW donde se tiene guardada la KB. <br />En este caso se exportó una versión reducida de la KB desde una versión superior a Genexus X, utilizando una extension de GeneXus que en lugar de exportar un XPZ exporta sólo la información necesaria para GXtest. <br />La extensión viene en el directorio de instalación de GXtest, o puede bajarse desde GeneXus Marketplace.<br />Campo URL: ingresar la siguiente url: http://localhost/AjaxSample/home.aspx. Al momento de iniciar una grabación de un caso de prueba, GXtest sugerirá esta URL para comenzar la grabación. <br />Tip: la variable estándar URLHome, hace referencia a la propiedad URL del proyecto, por lo cual si no se quiere dejar fija una URL en los casos de prueba, se puede hacer referencia a esta variable, de este modo si se cambia la aplicación de servidor, solo se deberá modificar esta propiedad.<br />Para finalizar, presionar el botón Ok y se creará el proyecto el cual quedará abierto.<br />Crear caso de prueba de Alta de Cliente<br />Objetivo: Crear el primer caso (grabando desde la aplicación) y ejecutarlo<br />En esta sección se grabará el caso de prueba de Alta Cliente de manera on-line utilizando el componente GXtest Recorder. <br />Hacer clic con el botón derecho sobre el nodo Test Cases que aparece en el panel derecho de GXtest Designer, luego seleccionar Record New Test Case. Ingresar el nombre “Alta Cliente” y luego presionar el botón rojo para comenzar a grabar.<br />GXtest abrirá el navegador para comenzar a grabar las acciones que se realicen sobre el mismo. Seguir los siguientes pasos en la aplicación como parte del caso de prueba que se quiere automatizar:<br />Hacer clic en el link Work With Clients. <br />Nota: En ese momento, debido a que se hizo clic en una grilla, GXtest Recorder desplegará una ventana para que se le indique cual fue el criterio para hacer clic en esa fila de la grilla. Hay dos opciones distintas, una es por fila y otra es por control. En este caso dejar la opción por defecto (por control) y presionar Accept.<br />Presionar el botón con el símbolo de (+) para insertar un nuevo cliente<br />Ingresar el nombre del cliente, el apellido, la dirección y el balance, luego presionar Confirm. La aplicación AjaXSample regresará a la página de Work With Clients.<br />Buscar el cliente creado usando el campo de búsqueda, para filtrar por el nombre del cliente anteriormente ingresado.<br />Entrar a visualizar el cliente creado. <br />Para esto en la grilla de clientes del Work With Clients, seleccionar el nombre del cliente creado y luego el criterio de selección (al momento de seleccionar el cliente se abrirá una ventana en donde se debe indicar cuál es el criterio por el cual se hace clic en esa fila). En este caso se indicará que es la fila cuyo ClientFirstName es igual al nombre del cliente creado. Para esto, primero indicar que la regla de selección será SelectionByControl y luego presionar Accept.<br />Validar que el apellido sea el ingresado en el paso (b). <br />Para ingresar esta validación seguir los pasos que se detallan a continuación:<br />Seleccionar el texto del apellido en la pantalla <br />Presionar el botón de validaciones en GXtest Recorder. Esto permitirá elegir el tipo de validación a agregar. En este caso seleccionar VerifyControlText, la cual permite comparar un valor de la pantalla con otro valor. <br />Presionar Accept en la ventana que se muestra para indicar el criterio.<br />1689735-320040<br />Por último, cerrar el navegador para terminar de grabar el caso de prueba.<br />De esta forma quedó grabado el primer caso de prueba en GXtest. Para entender los casos de prueba, se recomienda recorrer el modelo que se ha creado para recorrer las distintas acciones que hemos realizado sobre el navegador. <br />Iniciar en el nodo Start, siguiendo por la arista Init y así sucesivamente. Recordar que cuando se tiene más de una arista saliente desde una página, primero se recorre la arista con letra A y luego la B.<br />Una vez que se haya entendido el modelo creado por GXtest, ingresar a la aplicación y borrar el cliente recientemente creado y luego ejecutar en el caso de prueba automatizado. Esto volverá a crear el cliente pero esta vez con el caso de prueba “Alta Cliente” automatizado. <br />Para ejecutar un caso de prueba: presionar el botón de ejecutar o las teclas Shift+F5.<br />Una vez que el caso de prueba haya sido ejecutado, el resultado detallado del mismo se mostrará en GXtest. Intente navegar en el árbol de resultados y recorrer la secuencia de todos los comandos ejecutados con sus respectivos parámetros. <br />Ejercicio: Intente cambiar algo en el caso de prueba de modo tal que falle algo al ejecutar, a modo de ver como se muestran los fallos detectados. Por ejemplo, cambie el comando donde se verifica el apellido, y ponga otro apellido distinto, o cambie el criterio de selección del clic en el menú, como para que vaya a otro elemento.<br />Crear un caso de prueba de Baja de Cliente<br />Esta vez se creará un caso de prueba de Baja de Cliente pero grabándolo de manera off-line.<br />Esto permite crear un caso de prueba con GXtest Recorder sin tener GXtest Designer instalado. Para esto abrir el Internet Explorer y navegar a la siguiente url: http://localhost/AjaxSample/home.aspx. <br />Luego en el margen superior izquierdo de GXtest Recorder ingresar el nombre Baja Cliente y luego presionar el botón rojo para comenzar a grabar. GXtest Recorder pedirá que se indique donde será guardado el archivo con la grabación del caso de prueba. <br />Seguir los siguientes pasos en el navegador como parte del caso de prueba:<br />Hacer clic en Work With Clients. Se abrirá el diálogo de criterio de selección, presionar Accept.<br />Ingresar en el campo de búsqueda el nombre del cliente dado de alta. En ese momento la aplicación AjaXSample filtrará por dicho nombre, por lo cual el cliente dado de alta se mostrará en primer lugar.<br />Luego hacer clic en la cruz roja de la primera fila para dar de baja el cliente. En ese momento se abrirá el diálogo para indicar el criterio de selección para esa fila. Cambiar el criterio para seleccionar siempre la fila uno (Selection by row = 1). <br />En la página de confirmación de borrado del cliente se agregará una validación del mensaje que debe mostrar la aplicación AjaxSample, el mismo es “Confirm Deletion.”. Para esto seleccionar dicho texto y luego presionar el botón de validaciones e indicar la validación AppearText. Seleccionarla y luego presionar Accept.<br />Para finalizar el caso de prueba presionar el botón Confirm y luego cerrar el navegador.<br />Al cerrar el navegador, GXtest Recorder dejará en la ubicación seleccionada un archivo llamado “Baja Cliente.zip”. Para utilizar dicha grabación en GXtest Designer, hacer clic con el botón derecho sobre el nodo Test Cases, luego seleccionar la opción “Import Test Case” y seleccionar el archivo generado.<br />Nota: Cuando importamos un caso de prueba grabado en GXtest Recorder, GXteset Designer arma un modelo que expresa dicho caso de prueba. Repasar este modelo y visualizar las distintas acciones que se realizaron en el caso de prueba. <br />1524073025Ejecutar el caso de prueba de Alta Cliente y luego el de Baja Cliente para asegurar el correcto funcionamiento del mismo. <br />Crear el caso de prueba Alta y Baja Cliente<br />Objetivo: Crear un caso de prueba compuesto<br />Ahora se creará un único caso de prueba que realice el alta del cliente y luego la baja del mismo a partir de los dos casos de prueba creados previamente. <br />Para esto en GXtest Designer, sobre el nodo Test Cases realizar clic con el botón derecho e indicar “Create New Test Case”, luego ingresar el nombre Alta y Baja Cliente.<br />-41910264160<br />Luego arrastrar desde el panel de elementos (a la izquierda de GXtest Designer) un elemento del tipo Test Case y seleccionar el test case de Alta Cliente. Realizar la misma acción para el caso de prueba Baja Cliente.<br />-2286044450A continuación unir la punta de la arista init al caso de prueba Alta Cliente y arrastrar un elemento de tipo Edge Line para unir la el Alta de Cliente (inicio de la flecha) con la Baja de cliente (fin de la flecha). <br />Ha quedado finalizado el caso de prueba, para probar el mismo presionar el botón de ejecutar o Shift + F5.<br />Utilización de Datapools, crear el Datapool Clientes<br />Objetivo: Parametrizar un caso de prueba en GXtest para ejecutar con un conjunto variable de datos (Data Driven Testing)<br />GXtest permite utilizar este enfoque mediante el concepto de Datapools . En este caso se creará el Datapool Clientes el cual contendrá toda la información relacionada a los clientes que se utiliza en los casos de prueba.<br />Crear un nuevo Datapool de nombre Clientes (botón derecho sobre el nodo Datapools y presionar “Create New Datapool”). Ingresar las columnas que va a tener este Datapool: Nombre, Apellido, Dirección y Balance. <br />Los datos en un Datapool se pueden ingresar de manera manual o mediante la utilización de un archivo CSV. En esta ocasión ingresaremos tres conjunto de datos desde un CSV. Para esto presionar el botón “Import CSV” e indicar el archivo Clientes.csv.<br />Una vez creado el Datapool e ingresados los datos debemos indicar en los casos de prueba donde se utilizará el mismo. Primero comenzar con el caso de prueba de Alta Cliente, se deben sustituir todos los valores fijos que se han ingresado e indicarle a GXtest que se tomen desde el Datapool Clientes. En el caso de prueba de Alta Cliente seleccionar la arista “Click GX_BtnEnter” y sustituir en los distintos comandos FillInput los valores fijos por los valores del Datapool Clientes. Para realizar esto hacer clic con el botón derecho sobre el comando que se quiere modificar y presionar Edit Command (o haciendo doble clic sobre el comando). Cambiar los parámetros correspondientes desde la opción Value a la opción Datapool e indicar la columna adecuada dentro del Datapool Clientes. Realizar la mismas acciones en la arista “Click in Table” en los comandos ClickTable y VerifyControlText. Una vez finalizado el caso de prueba de Alta Cliente, se debe proceder a hacer lo mismo con el caso de prueba de Baja Cliente, en esta ocasión hay que cambiar los comandos de la arista Click in Table. Una vez terminadas estas acciones grabar salvar ambos casos de prueba.<br />Por último debemos indicarle a GXtest en qué momento se debe avanzar (pasar de una fila a otra) en el Datapool Clientes, por este motivo debemos agregar el comando DPNext en el lugar que queremos que esto suceda. En este caso en particular se agregará el comando DPNext en la arista Init (la primer arista del modelo que se inicia en el nodo inicial) del caso de prueba Alta y Baja Cliente. Para esto hacer clic con el botón derecho arriba de dicha arista y seleccionar Add Action. Luego seleccionar el comando DPNext, pasándole como parámetro el Datapool Clientes y cualquiera de sus columnas.<br />120015338455El caso de prueba “Alta y Baja Cliente” se verá algo así:<br />388239010160Al terminar, ejecute el caso 3 veces usando el botón de Run N times o presionando Shift + F7. <br />Este caso de prueba creará y borrará tres nuevos clientes (los especificados en el Datapool Clientes).<br />Invocación a procedimientos GeneXus <br />GXtest permite de manera sencilla invocar procedimientos GeneXus para ser utilizados en las pruebas. En esta ocasión utilizaremos el procedimiento ExistClient (un procedimiento GeneXus ya creado) para determinar el flujo a seguir dentro del caso de prueba. Los procedimientos en general son utilizados para modificar, consultar o validar valores específicos de la base de datos de la aplicación.<br />Primero dar de alta el procedimiento que se quiere utilizar en las pruebas desde Commands->Genexus Proc y presionar el botón de Add GX Proc.<br />Ingresar la url http://localhost/AjaxSample/aexistclient.aspx?wsdl y presionar el botón start (flecha azul). En ese momento GXtest leerá la información de los parámetros que utiliza el mismo y las presentará. Se debe indicar el tipo de comando a agregar (validación o acción) y una descripción para el mismo, en este caso ingresar “Verifica si un cliente existe o no en la aplicación” y presionar Save. Ahora disponemos de un nuevo comando “ExistClient” para ser utilizado desde las pruebas en GXtest.<br />A este comando lo utilizaremos en el caso de prueba de Alta y Baja de Cliente para preguntar si existe el cliente antes de dar de alta. La lógica será:<br />Si existe, ir directamente a la baja del mismo <br />Si no existe, primero hacer el alta del cliente y luego la baja. <br />Para poder expresar esto, debemos arrastrar al caso de prueba un nuevo elemento del tipo Decision. Luego unimos la arista init a la decisión agregada. A las decisiones se le pueden poner nombres intuitivos que ayuden a interpretar el caso de prueba, en este caso hacer doble clic sobre la decisión y ponerle el nombre “¿Existe Cliente?”<br />Ahora le debemos agregar a la Decision, la condición que hace que se siga un camino u otro. Para esto hacer clic con el botón derecho sobre la misma y seleccionar Add Condition. Una vez que se abre el dialogo de comandos, se debe seleccionar una de las validaciones disponibles, en este caso observar que aparece como una validación más el procedimiento agregado de ExistClient, seleccionar el mismo e indicarle como parámetro el Datapool Clientes en su columna Nombre. Luego presionar Add Command para confirmar la creación del comando.<br />Una vez definida la condición, unir la arista False de la Decisión al caso de prueba Alta Cliente y la arista True al caso de prueba Baja Cliente. <br />Listo, ha quedado finalizado el caso de prueba. Ahora, para testear nuestro caso de prueba (sí, a los casos de prueba también hay que probarlos) vamos a crear un cliente en la aplicación para que al ejecutarse el caso de prueba Alta y Baja de Cliente, el mismo tome otro flujo y vaya directamente a la Baja. Crear entonces a mano desde la aplicación, un cliente de nombre Juan. <br />Luego ejecutar nuevamente 3 veces el caso de prueba y analizar los resultados para visualizar su correcta ejecución.<br />Observe el árbol de resultados para verificar que sea el esperado<br />Ejecución en FireFox<br />Objetivo: Ejecutar el mismo conjunto de pruebas en otro navegador.<br />Cambie la propiedad de ejecución del proyecto. Para esto, botón derecho en el árbol de proyecto -> Properties.<br />Ahora ejecute nuevamente el caso de prueba anterior 3 veces, pero en FireFox.<br />Actualizar la versión del sistema bajo pruebas e impactar los cambios<br />En la automatización del testing es esencial la posibilidad de adaptar los casos de prueba a los cambios que se producen al evolucionar el desarrollo en forma rápida. Por este motivo ahora ejecutaremos la funcionalidad de “Update KB Information” la cual toma la nueva KB (la nueva versión de la aplicación) y realiza el impacto de los cambios sobre los casos de prueba involucrados. <br />A efectos de probar esto, se dispone de una copia de la versión de AjaxSample en http://localhost/NewAjaxSample/home.aspx, que es la nueva versión del sistema.<br />Si la KB permanece en el mismo lugar (path / modelo / xpz) alcanza con hacer un Update KB. En el caso de este taller, tenemos la 2da versión de nuestra KB (NewAjaxSample) en otro archivo, por lo cual debemos indicarle a GXtest que tome la KB desde otro archivo.<br />Ir a KB->Edit Properties, luego seleccionar la KB AjaxSample e indicarle en el campo File Path el archivo NewAjaxSampleKB.gxt.<br />Este nuevo archivo corresponde a la KB AjaxSample con las siguientes modificaciones:<br />Se cambió el nombre de la transacción Client por SuperClient<br />Dentro de la transacción Client, se cambió el botón confirmar por el botón enter<br />Dentro de la transacción Client se cambió el atributo ClientFirstName por ClientName<br />Estos cambios producen también cambios en los objetos asociados al Pattern Work With Client.<br />Ahora si a ejecutar el Update KB desde: Knowledge Base -> Update KB Information.<br />Nota: Es recomendable cerrar los Test Cases abiertos antes de continuar.<br />Una vez que se actualiza la KB, GXtest leerá la información de la KB y analizará cuántos objetos han sido agregados, borrados y modificados. Por otro lado brindará un detalle de que casos de prueba quedarán en estado deshabilitados (por tener cambios que inhabilitan su ejecución) o pendientes de revisión (aquellos que GXtest aplicó una determinada heurística para su adaptación y requiere que el usuario acepte el cambio aplicado). <br />Para ejecutar el caso de prueba Alta y Baja Cliente en la nueva aplicación se debe cambiar el comando Go de los casos de prueba Alta Cliente y Baja Cliente a la URL http://localhost/NewAjaxSample/home.aspx. En esa URL se encuentra la nueva aplicación a testear. <br />Cambie la propiedad URL de proyecto, para indicar cuál es el nuevo home a probar.<br />Bien, una vez finalizado esto, podemos correr el caso de prueba Alta y Baja Cliente con Shift+F7 indicando que corra 3 veces. <br />Ver como ejecuta en la nueva aplicación con los cambios realizados.<br />Taller Avanzado<br />Datapools con SETID<br />Hay ocasiones en las que es necesario relacionar los datos que existen entre los diferentes Datapools utilizados en un caso de prueba. Si queremos crear países y para cada uno de ellos tenemos distintos datos de ciudades, es necesario acceder por cada línea de un Datapool de datos de países a varias líneas de un Datapool de datos de ciudades. Para no tener toda la información junta en un único DataPool, nos va a interesar hacer “filtros” en nuestros datos, accediéndolos por “conjuntos de datos”.<br /> En este caso los llamados Datapools estructurados nos permiten expresar relaciones entre los datos de los distintos Datapools.<br />En este caso realizaremos el alta de países y sus respectivas ciudades. Para esto crear los siguientes Datapools:<br />Países con las columnas SetId, Nombre, IdPaís, CantidadCiudades<br />Ciudades con la columna SetId, Nombre, IdCiudad<br />Las columnas SetId son las que sirven para relacionar los distintos datos. Importar el archivo Paises.csv en el Datapool Países y el archivo Ciudades.csv en el Datapool Ciudades<br />Una vez creados los Datapools hay que grabar el caso de prueba Alta País.<br />Ir a Record New Test Case e ingresar el nombre Alta País. Luego realizar los siguientes pasos en la aplicación:<br />Clic en Work With Countries. Poner Accept en el dialogo de criterio de selección.<br />Clic en el botón (+)<br />Ingresar un id, por ejemplo 999 y un nombre para el país y luego hacer clic en Confirm<br />Cerrar el navegador<br />Grabar ahora Alta Ciudad. Realizando los siguientes pasos:<br />Clic en Work With Cities. Poner Accept en el dialogo de criterio de selección.<br />Clic en el botón (+)<br />Seleccionar el país previamente ingresado, luego ingresar un identificador y un nombre de ciudad y presionar Confirm<br />Asociar a los casos de prueba los Datapools correspondientes. Para esto abrir el caso de prueba de Alta Pais y asignar en los comandos correspondientes el Datapool Paises con los campos Nombre e IdPais. Y luego, en el caso de prueba de Alta Ciudad usar el Datapool Paises y el Datapool Ciudades. <br />Bien, resta agregar el comando DPNext al comienzo de los dos casos de prueba, (por ejemplo. en la arista Init). En el caso de prueba de Alta País hacer un DPNext del Datapool Paises. En el caso de prueba de Alta Ciudad hacer un DPNext del Datapool Ciudades.<br />Como queremos dar de alta países y luego sus respectivas cuidades, debemos agregar dentro del caso de prueba Alta País el caso de prueba Alta Ciudad. Para esto agregar una arista desde la página Work With Countries al caso de prueba agregado “Alta Ciudad”. <br />Ahora debemos indicarle a GXtest que el caso de prueba de Alta Ciudad incluido dentro de Alta País se debe ejecutar tantas veces como se indica en la columna CantidadCiudades del Datapool Paises, para esto hacer clic derecho sobre el caso de prueba incluido y seleccionar Properties. En dicho dialogo seleccionar Datapool y luego seleccionar el Datapool Paises, la columna CantidadCiudades.<br />Ejecutar el caso de prueba de Alta País dos veces para ver como se dan de alta los países con sus respectivas ciudades.<br />Parte 2<br />Para analizar mejor el comportamiento de los Datapools estructurados, borrar en la aplicación las ciudades y países ingresados e indicar en el Datapool Países que la cantidad de ciudades a ingresar será 1. Ejecutar nuevamente dos veces el caso de prueba Alta País. Se podrá visualizar que se ingresaron correctamente en el sistema sus países con sus respectivas ciudades.<br />

×