使用 getTestData 方法來反覆存取表格資料格

本主題提供範例來說明如何使用 Functional Tester 的 getTestData 方法來存取方格控制項的資料格的值。

下列範例測試 Classics Java™ 應用程式:

import resources.GetGridDataExampleHelper;
import com.rational.test.ft.*; 
import com.rational.test.ft.object.interfaces.*; 
import com.rational.test.ft.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.siebel.*;
import com.rational.test.ft.script.*; 
import com.rational.test.ft.value.*; 
import com.rational.test.ft.vp.*; 

/**
* Description : Functional Test Script
* @author Administrator
*/
public class GetGridDataExample extends GetGridDataExampleHelper
{
/**
* Script Name   : GetGridDataExample
* Generated     : Jul 14, 2006 3:05:22 PM
* Description : Functional Test Script
* Original Host : WinNT Version 5.1  Build 2600 (S)
* 
* @since  2006/07/14
* @author Administrator
*/
public void testMain (Object[] args) 
{
	//啟動 Classics Java 應用程式
startApp("ClassicsJavaA");

//導覽至現有訂單方格
jmb().click(atPath("Order"));
jmb().click(atPath("Order->View Existing Order Status..."));

	  // 頁框:檢視訂單狀態
nameComboB().click();
nameComboB().click(atText("Claire Stratus"));
ok().click();

// 頁框:檢視現有的訂單
existingTable().click(atPoint(172,92));

//取得表格的資料
ITestDataTable orderTable = (ITestDataTable)existingTable().getTestData("contents");

//顯示方格可用的資料類型、總列數及直欄總數。System.out.println ("Available Data Types: " + existingTable().getTestDataTypes());
System.out.println ("Total Rows in table : " + orderTable.getRowCount());
System.out.println ("Total Cols in table : " + orderTable.getColumnCount());

	  // 輪流選取所有列
	  for (int row=0; row < orderTable.getRowCount();++row)
		  {
	      // 輪流選取所有直欄
	      for (int col=0; col < orderTable.getColumnCount();++col)
		      {
	          // 印出 (row,col) 座標上的資料格的值
		          System.out.println ("Row " + row + ", " + orderTable.getColumnHeader(col) + ": " +orderTable.getCell(row,col) );
					}
			}
// 關閉頁框
close().click();

// 頁框:ClassicsCD
classicsJava(ANY,MAY_EXIT).close();
}
}

這個範例導覽至應用程式的 "View Existing Orders" 畫面。此範例中的程式碼會擷取方格中所有資料格的值,並顯示在主控台視窗中。

擷取資料的第一步是利用 getTestData 方法,從控制項擷取資料。語法如下:

ITestDataTable orderTable;
orderTable = (ITestDataTable)existingTable().
  getTestData("contents");

取得這個資料集之後,您可以利用 getRowCountgetColumnCount 方法來判斷欄列總數。您也可以利用 getTestDataTypes,向控制項詢問表格有哪些可用的資料類型。下列程式碼會將這些查詢的結果傳送至主控台視窗。

System.out.println ("Available Data Types: " +
     existingTable().getTestDataTypes());
System.out.println ("Total Rows in table : " +
     orderTable.getRowCount());
System.out.println ("Total Cols in table : " +
     orderTable.getColumnCount());

下一步是利用 for 迴圈來輪流選取方格的列和欄,印出每個資料格的值:

for (int row=0; row < orderTable.getRowCount();++row)
{
    	      // 輪流選取所有直欄
    for (int col=0; col < orderTable.getColumnCount();++col)
    {
        // 印出 (row,col) 座標上的資料格的值
        System.out.println ("Row " + row + ", " +
        orderTable.getColumnHeader(col) + ": " +
        orderTable.getCell(row,col) );
    }
}

範例 Script 使用 getCell 方法來印出現行資料格的值。請注意,getColumnHeader 方法會印出現行直欄標題。在使用方格時,列和欄的編號從 0 開始。這不同於 getRowCountgetColumnCount 方法從 1 開始編號。


意見
(C) Copyright IBM Corporation 2000, 2007. All Rights Reserved.