Test Cases - XML

From GXtest Wiki
Revision as of 21:31, 9 June 2009 by Matias (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


La versión actual GXtest soporta exportar un test case a XML. Esta funcionalidad está descrita en este artículo. A través de dicho XML se puede generar un caso de prueba tan complejo como se quiera, con DataPools, custom commands, recursiones, etc.


Sin embargo existe otro formato de XML para describir un caso de prueba que es mucho más simple y por ese motivo puede ser un camino sencillo para la generación de casos de prueba por herramientas externas.

Contents

Casos de prueba en XML simplificado

Este XML tiene la siguiente forma:

<GXTestCase>
   <Node Object="NombreObjeto" ObjectType="WebPanel|Transaction" title="Titulo">
      <NombreComando1 atributos>
         <Parametro1>
         </Parametro1>
         <Parametro2>
         </Parametro2>
      </NombreComando1>
      ....//mas comandos
   </Node>
   ....//mas nodos
</GXTestCase>

Los Nodos (elemento Node)

Los elementos de tipo Node representan una pagina de la aplicación, por este motivo tienen asociado el objeto principal que muestra esa página. De dicho objeto se especifica el nombre (atributo Object) el tipo (atributo ObjectType) y el título (atributo title). Por cada uno de estos elementos se va a crear un nodo en el grafo del caso de prueba en GXtest. Los comandos que tienen el nodo son acciones, validaciones o eventos que se hacen dentro de ese objeto. El último evento realizado será el que haga unan transición de el objeto actual al próximo.

Los Comandos

Los comandos son representados con elementos XML que llevan el nombre de cada comando. Según el comando los atributos y parámetros que se deben indicar.

A continuación se muestran algunos de los comandos existentes y sus elementos XML correspondientes

    <Back Type="Event" />
    <VerifyControlEnable Type="Validation">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
        <Value Value="1" />
    </VerifyControlEnable>
    <VerifyControlVisible Type="Validation">        
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
        <Value Value="1" />
    </VerifyControlVisible>
    <TableOrderedBy Type="Validation">        
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>                
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Value Value="1" />
    </TableOrderedBy>
    <TableRowsNumber Type="Validation">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Variable VariableName="VariableName" />
        <Value Value="1" />
    </TableRowsNumber>
    <ClickPortalMenu Type="Event">
        <Variable VariableName="VariableName" />
    </ClickPortalMenu>
    <DummyEvent Type="Event" />
    <LoginPortal Type="Event">
        <Variable VariableName="VariableName" />
        <Variable VariableName="VariableName" />
    </LoginPortal>
    <Close Type="Event" />
    <ClickToolbarButton Type="Event">
        <Variable VariableName="VariableName" />
        <Variable VariableName="VariableName" />
    </ClickToolbarButton>
    <SelectRow Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">    
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
    </SelectRow>    
    <AppearText Type="Validation">
        <Variable VariableName="VariableName" />
        <Value Value="1" />
    </AppearText>
    <VerifyControlText Type="Validation">
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <Value Value="1" />
    </VerifyControlText>
    <VerifyControlTextTable Type="Validation">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByRow>
            <Value Value="1" />
        </SelectionByRow>
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <Value Value="1" />
    </VerifyControlTextTable>
    <Click Type="Event">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </Click>
    <ClickTable Type="Event">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </ClickTable>
    <ClickLinkByCaption Type="Event">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Value Value="1" />
    </ClickLinkByCaption>
    <FillInput Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Value Value="1" />
    </FillInput>
    <FillInputTable Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">    
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Value Value="1" />
    </FillInputTable>
    <GoAndLogin Type="Event">
        <Value Value="www.k2b.com" />
        <Value Value="k2buser" />
        <Value Value="k2bpwd" />
    </GoAndLogin>
    <Go Type="Event">
        <Value Value="www.k2b.com" />
    </Go>
    <ClickPrompt Type="Event">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </ClickPrompt>
    <ClickPromptTable Type="Event">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </ClickPromptTable>
    <SelectCombo Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Value Value="1" />
    </SelectCombo>
    <SelectComboInTable Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Variable VariableName="VariableName" />
    </SelectComboInTable>
    <Check Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </Check>
    <UnCheck Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </UnCheck>
    <Choose Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <Variable VariableName="VariableName" />
    </Choose>
    <GetValue Type="Action">
        <Variable VariableName="VariableName" />
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </GetValue>
    <GetValueTable Type="Action">
        <Variable VariableName="VariableName" />
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByRow>
            <Value Value="1" />
        </SelectionByRow>
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </GetValueTable>
    <CheckTable Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
    </CheckTable>
    <UnCheckTable Type="Action">
        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        
        <SelectionByRow>
            <Value Value="1" />
        </SelectionByRow>
        <SelectionByRow>
            <Value Value="1" />
        </SelectionByRow>
    </UnCheckTable>
    <DPCompare Type="Validation">
        <DataPool DataPoolName="DataPoolName" DataPoolColumnName="DataPoolColumn" />
        <Variable VariableName="VariableName" />
    </DPCompare>
    <DPNext Type="Action">
        <DataPool DataPoolName="DataPoolName" DataPoolColumnName="DataPoolColumn" />
    </DPNext>
    <DPReset Type="Action">
        <DataPool DataPoolName="DataPoolName" DataPoolColumnName="DataPoolColumn" />
    </DPReset>

Los Parametros

Existen los siguientes tipo de parámetros en GXtest:

Control GX: referencia a un control GeneXus dentro de un objeto GeneXus
Valor: es un valor fijo ya sea string o entero
DataPool: es un valor que se obtiene de un datapool
Variable: es una variable que se carga dinamincamente durante la ejecución del caso de prueba
Boolean: es un valor booleano por lo que puede ser verdadero o falso
SelectionByRow: especifica un número de fila a seleccionar. Ese numero de fila puede ser pasado con un parametro Valor, Variable o DataPool
SelectionByControl: especifica un criterio para seleccionar unan fila. Ese criterio es en base al valor de una columna en una grilla. Para esto se especifica:
cual es el control GeneXus que se va a comparar (a través de un parámetro del tipo Control GX)
cual es el comparador que se va a usar, puede ser un comparador de tipo texto o numérico y dependiendo del tipo de comparador se pueden hacer comparaciones de igualdad, diferencia, mayor o menor o de contenido, empieza con, etc. para el caso de texto.

Cada uno de estos parámetros tiene un elemento XML asociado. A continuación se muestra un ejemplo de cada uno: Parámetro Control GX

        <ControlGX Name="ControlName">
            <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
        </ControlGX>        

Parámetro Valor

        <Value Value="1" />

Parámetro DataPool

        <DataPool DataPoolName="DataPoolName" DataPoolColumnName="DataPoolColumn" />

Parámetro Variable

        <Variable VariableName="VariableName" />

Parámetro Boolean

        < Boolean Value="true" />

Parámetro SelectionByRow

        <SelectionByRow>
            <Value Value="1" />
        </SelectionByRow>

Parámetro SelectionByControl

        <SelectionByControl ComparatorType="ComparatorStr" Comparator="contains">
            <ControlGX Name="ControlName">
                <ObjectGX KBName="KBName" Name="ObjectName" Type="WebPanel" />
            </ControlGX>        
            <Value Value="1" />
        </SelectionByControl>