Pour représenter une vue globale du logiciel en cours de test, Functional Tester prend en charge un objet de test racine, RootTestObject. Pour permettre le test de l'application SAP, vous devez appeler la méthode enableForTesting sur RootTestObject. Pour effectuer une recherche globale, vous devez invoquer la méthode find sur RootTestObject. Les valeurs admises pour le sous-élément, qui correspond au premier argument de la méthode find, sont atProperty, atChild, atDescendant et atList. Des propriétés spéciales s'appliquent à RootTestObject.find, notamment .processName, .processID, .domain, etc. Vous pouvez utiliser n'importe lequel de ces sous-éléments et propriétés. Par exemple, vous pouvez utiliser le sous-élément atChild avec la propriété .domain associée à la valeur SAP pour rechercher le domaine SAP.
Une fois que l'objet de test SAP de niveau supérieur est trouvé et renvoyé, vous pouvez utiliser cet objet pour trouver différents objets de la hiérarchie d'exécution de l'interface graphique SAP. Par exemple :
Une fois que vous disposez de l'objet correspondant à la fenêtre active, vous pouvez utiliser la méthode GetChildren dans l'objet de test de la fenêtre principale pour rechercher et manipuler différents objets sur GuiMainWindow.
L'exemple ci-après explique comment vous pouvez interagir avec des objets de l'application SAP. Cet exemple de code :
Exemple :
import resources.HandCodingWithEnablementHelper; 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 HandCodingWithEnablement extends HandCodingWithEnablementHelper { /** * Script Name : HandCodingWithEnablement * Generated : Sep 5, 2006 10:03:51 AM * Description : Functional Test Script * Original Host : WinNT Version 5.1 Build 2600 (S) * * @since 2006/09/05 * @author Administrator */ public void testMain (Object[] args) { // Recherche d'objets de test SAP via le scriptage // Permet à Functional Tester de tester SAP et de renvoyer tous // les objets de test de niveau supérieur du domaine SAP. getRootTestObject().enableForTesting("sapLogon"); TestObject[] sapApps = getRootTestObject().find(atChild(".domain", "SAP")); // Obtention d'un descripteur pour l'application SAP auprès d'un objet SAP de niveau supérieur if(sapApps.length > 0){ SAPGuiApplicationTestObject theAPP = ((SAPTopLevelTestObject)sapApps[0]).getApplication(); logInfo("Application Number:" + theAPP.getProperty("Id")); // Obtention d'un descripteur pour la connexion SAP auprès d'un objet de //test d'application SAP TestObject[] cons = (TestObject[])theAPP.getProperty("Connections"); SAPGuiConnectionTestObject con = (SAPGuiConnectionTestObject)cons[0]; logInfo("Connection Number:" + con.getProperty("Id")); // Obtention d'un descripteur pour la session SAP auprès d'un objet de test de connexion SAP TestObject[] sessions = (TestObject[])con.getProperty("Sessions"); SAPGuiSessionTestObject sess = (SAPGuiSessionTestObject)sessions[0]; logInfo("Session Number:" + sess.getProperty("Id")); // Obtention d'un descripteur pour la fenêtre principale SAP auprès d'un objet de test de session SAP et itération sur ses enfants jusqu'à ce que l'objet recherché soit trouvé SAPTopLevelTestObject mainWnd = (SAPTopLevelTestObject)sess.getProperty("ActiveWindow"); TestObject[] wndChild = mainWnd.getChildren(); for (int i=0; i<wndChild.length; i++) { String name = (String)wndChild[i].getProperty("Name"); if (name.compareTo("tbar[1]")== 0) { TestObject[] btn = (TestObject[])wndChild[i].getChildren(); for (int j = 0; j< btn.length; j++) { System.out.println("ToolBar Buttons"); String btnType = (String)btn[j].getProperty("Type"); if (btnType.compareTo("GuiButton")==0) { SAPGuiToggleTestObject button = (SAPGuiToggleTestObject)btn[j]; String btnName = (String)button.getProperty("Name"); if (btnName.compareTo("btn[48]")== 0) { // Clic sur le bouton "Create Role" ("btn[48]") placé dans la barre d'outils ("tbar[1]") button.press(); logInfo("Clicked on the Create Role button"); break; } } } } } }else{ logInfo("SAP Application not found"); } } }
Si l'application SAP est déjà activée, il est inutile de l'activer explicitement à des fins de test. A la place, vous pouvez utiliser le code suivant pour rechercher l'application SAP activée.
DomainTestObject domains[] = getDomains(); for (int i =0; i < domains.length; i ++) { DomainTestObject domain = domains[i]; String name = (String)domain.getName(); if (name.compareTo("SAP") == 0) { // Renvoie tous les objets de test de niveau supérieur dans le domaine SAP TestObject[] sapApps = domains[i].getTopObjects(); // Interactions avec les objets SAP } }