Mit der Methode "getTestData" durch Tabellenzellen iterieren

In diesem Abschnitt wird anhand eines Beispiels gezeigt, wie mit Hilfe der Methode GetTestData von Functional Tester auf die Werte in den Zellen eines Raster-Steuerelements zugegriffen werden kann.

In diesem Beispiel werden Tests an der Java-Anwendung Classics durchgeführt:

#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

In diesem Beispiel navigieren Sie zur Anzeige "View Existing Orders" (Vorhandene Aufträge anzeigen) der Anwendung. Mit dem Code in diesem Beispiel werden die entsprechenden Werte aus den Zellen des Rasters ausgelesen und im Konsolfenster angezeigt.

Im ersten Schritt verwenden Sie die Methode GetTestData, um die Daten aus der Steuerung zu extrahieren. Dazu wird folgende Syntax verwendet:

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

Anhand dieses Datenbestands können Sie über die Methoden GetRowCount und GetColumnCount die Gesamtzahl der Zeilen und Spalten bestimmen. Mit der Methode GetTestDataTypes können Sie sich außerdem über die in der Tabelle enthaltenen Datentypen informieren. Mit dem folgenden Code werden die Ergebnisse dieser Abfragen an das Konsolfenster gesendet.

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()))

Im nächsten Schritt werden die Werte der einzelnen Zellen gedruckt. Dabei wird zum Navigieren durch die Zeilen und Spalten des Rasters eine for-Schleife verwendet.

' 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

In dem Beispielscript wird zum Drucken des Werts der aktuellen Zelle die Methode GetCell angewendet. Beachten Sie außerdem, dass über die Methode GetColumnHeader die Kopfzeile der aktuellen Spalte ausgedruckt wird. Wenn Sie mit einem Raster arbeiten, beginnt die Nummerierung von Zeilen und Spalten mit dem Wert 0. Eine Ausnahme bilden die beiden Methoden GetRowCount und GetColumnCount, bei denen die Nummerierung mit dem Wert 1 beginnt.


Feedback