Repetición por celdas de tabla utilizando el método GetTestData

En este tema se proporciona un ejemplo de utilización del método GetTestData de Functional Tester para acceder a los valores de las celdas de un control de cuadrícula.

Este ejemplo es una prueba contra la aplicación Classics Java:

#Region " Script Header "
' Functional Test Script
' author Administrator
Imports Microsoft.VisualBasic
Imports Rational.Test.Ft
Imports Rational.Test.Ft.Object.Interfaces
Imports Rational.Test.Ft.Object.Interfaces.SAP
Imports Rational.Test.Ft.Object.Interfaces.Siebel
Imports Rational.Test.Ft.Script
Imports Rational.Test.Ft.Value
Imports Rational.Test.Ft.Vp
#End Region

Public Class GetGridDataExample 
    Inherits GetGridDataExampleHelper

    'Script Name   : GetGridDataExample
    'Generated     : Jul 17, 2006 2:51:15 PM
    'Description   : Functional Test Script
    'Original Host : Windows XP x86 5.1 build 2600 Service Pack 2 

    'since  2006/07/17
    'author Administrator

    Public Function TestMain(ByVal args() As Object) As Object

        StartApp("ClassicsJavaA")

        ' Navigate to Existing Order Grid
        Jmb().WaitForExistence()
        Jmb().Click(AtPath("Order"))
        Jmb().Click(AtPath("Order->View Existing Order Status..."))

        ' Frame: View Order Status
        NameComboB().Click()
        NameComboB().Click(AtText("Claire Stratus"))
        OK().Click()

        ' Wait for table to be created
        ExistingTable().WaitForExistence()

        ' Get the data for the table
        Dim OrderTable As ITestDataTable
        OrderTable = ExistingTable().GetTestData("contents")

        ' Display the available data types for the grid, total rows and columns.
        System.Console.WriteLine(String.Format("Available Data Types: {0}", ExistingTable().GetTestDataTypes()))
        System.Console.WriteLine(String.Format("Total Rows in table : {0}", OrderTable.GetRowCount()))
        System.Console.WriteLine(String.Format("Total Cols in table : {0}", OrderTable.GetColumnCount()))

        ' Cycle through all rows
        Dim Row As Integer
        For Row = 0 To OrderTable.GetRowCount() - 1
            ' Cycle through all columns
            Dim Col As Integer
            For Col = 0 To OrderTable.GetColumnCount() - 1
                ' Print out values of cells at (Row, Col) coordinates
                System.Console.WriteLine(String.Format("Row {0}, {1}: {2}", Row, OrderTable.GetColumnHeader(Col), OrderTable.GetCell(Row, Col)))
            Next Col
        Next Row

        ' Close the frame
        Close().Click()

        ' Shut down Classics Java Application
        ClassicsJava(ANY, MAY_EXIT).Close()
        Return Nothing
    End Function
End Class

Este ejemplo navega hacia la pantalla "Ver pedidos existentes" de la aplicación. El código de este ejemplo extrae los valores de todas las celdas de la cuadrícula y los visualiza en la ventana de la consola.

El primer paso para extraer los datos consiste en utilizar el método GetTestData para extraer los datos desde el control. Esto se efectúa con la sintaxis siguiente:

Dim OrderTable As ITestDataTable
OrderTable = ExistingTableTable().GetTestData("contents")

En este conjunto de datos concreto, puede determinar el número total de filas y columnas utilizando los métodos GetRowCount y GetColumnCount. También puede preguntar al control qué tipos de datos están disponibles en la tabla utilizando GetTestDataTypes. El código siguiente envía los resultados de estas consultas a la ventana de la consola.

System.Console.WriteLine(String.Format("Available Data Types: {0}", ExistingTable().GetTestDataTypes()))
System.Console.WriteLine(String.Format("Total Rows in table : {0}", OrderTable.GetRowCount()))
System.Console.WriteLine(String.Format("Total Cols in table : {0}", OrderTable.GetColumnCount()))

El paso siguiente consiste en imprimir los valores de las celdas individuales, lo que se efectúa utilizando un bucle for para recorrer las filas y las columnas de la cuadrícula:

' Cycle through all rows
        Dim Row As Integer
        For Row = 0 To OrderTable.GetRowCount() - 1
            ' Cycle through all columns
            Dim Col As Integer
            For Col = 0 To OrderTable.GetColumnCount() - 1
                ' Print out values of cells at (Row, Col) coordinates
                System.Console.WriteLine(String.Format("Row {0}, {1}: {2}", Row, OrderTable.GetColumnHeader(Col), OrderTable.GetCell(Row, Col)))
            Next Col
        Next Row

El script de ejemplo utiliza el método GetCell para imprimir el valor de la celda actual. Tenga también en cuenta, que el método GetColumnHeader imprime la cabecera de la columna actual. Cuando trabaje con una cuadrícula, la numeración de las filas y de las columnas empieza por 0. No obstante, esto no es aplicable a los métodos GetRowCount y GetColumnCount, en los que la numeración empieza por 1.


Comentarios