L'application testée est l'exemple d'application Java fourni avec le produit, ClassicsCD (ClassicsJavaA) :
import resources.GetListDataExampleHelper; 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 GetListDataExample extends GetListDataExampleHelper { /** * Script Name : GetListDataExample * Generated : May 16, 2006 9:06:46 AM * Description : Functional Tester Script * Original Host : WinNT Version 5.1 Build 2600 (S) * * @since 2006/05/16 * @author Administrator */ public void testMain (Object[] args) { startApp("ClassicsJavaA"); // Fenêtre : ClassicsCD tree2().click(atPath("Composers->Schubert->Location(PLUS_MINUS)")); tree2().click(atPath("Composers->Schubert->Die schone Mullerin, Op. 25")); placeOrder().click(); //Déclarer des variables pour la liste ITestDataList nameList; ITestDataElementList nameListElements; ITestDataElement nameListElement; // Fenêtre : Member Logon nameCombo().waitForExistence(); //Available test data types: {selected=Selected List Element, //list=List Elements} java.util.Hashtable ht = nameCombo().getTestDataTypes(); System.out.println(ht); // Obtenir tous les éléments nameList = (ITestDataList)nameCombo().getTestData("list"); nameListElements = nameList.getElements(); int listElemCount = nameList.getElementCount(); for (int i = 0; i < listElemCount; i++) { nameListElement = nameListElements.getElement(i); System.out.println(nameListElement.getElement()); // Cliquer sur chaque élément nameCombo().click(); nameCombo().click(atText(nameListElement.getElement().toString())); }; cancel().click(); // Fenêtre : ClassicsCD classicsJava(ANY,MAY_EXIT).close(); } }
Cet exemple de script ouvre d'abord l'application Java Classics. Il sélectionne un compositeur dans l'arborescence, puis un album (compositeur = Schubert, album = "Die Schone Muellerin"), puis il clique sur le bouton Place Order. Sur l'écran suivant (boîte de dialogue Member Logon), le code extrait la liste des valeurs du contrôle ComboBox et les affiche dans la console avant de cliquer sur chaque élément de la liste.
La première étape consiste à extraire les données du contrôle en utilisant la méthode getTestData :
ITestDataList nameList; nameList = (ITestDataList)nameCombo().getTestData("list")
Pour déterminer quels types de données du contrôle sont accessibles au test, on utilise le code suivant :
java.util.Hashtable ht = nameCombo().getTestDataTypes();
Disposant de ce jeu de données, on peut créer un tableau (array) contenant tous les éléments de la liste. Cette opération est réalisée comme suit :
ITestDataElementList nameListElements; nameListElements = nameList.getElements();
Disposant des éléments de la liste, on peut créer une boucle accédant à chacun d'eux. Pour déterminer le nombre d'éléments de la liste, on a recours à la méthode getElementCount. Pour extraire la valeur de chaque élément de la liste, on utilise la méthode getElement. La syntaxe suivante est utilisée à cet effet :
int listElemCount = nameList.getElementCount(); for (int i = 0; i < listElemCount; i++) { nameListElement = nameListElements.getElement(i); System.out.println(nameListElement.getElement()); // Cliquer sur chaque élément nameCombo().click(); nameCombo().click(atText(nameListElement.getElement().toString())); };