Ricerca di oggetti di test

Rational Functional Tester supporta un mezzo per individuare uno o più TestObjects corrispondenti ai criteri di ricerca specificati. La ricerca è basata sulle coppie nome/valore che rappresentano le proprietà dell'oggetto di test o gli oggetti di test da ricercare. La ricerca può essere globale o limitata agli elementi secondari di un oggetto di test principale.

Rational Functional Tester supporta un RootTestObject per rappresentare una vista globale del software in fase di test. Per eseguire una ricerca globale, è necessario richiamare il metodo find in RootTestObject. Il richiamo del metodo find oggetto di test ricercherà solo gli elementi secondari di tale oggetto di test.

Il primo argomento nel metodo find è un elemento secondario delle proprietà di ricerca. Il secondo argomento facoltativo è un indicatore che segnala se includere solo gli elementi secondari nella ricerca nell'associazione oggetti di test. I valori validi per gli elementi secondari delle proprietà sono:

Vi sono proprietà speciali che si applicano a RootTestObject.find, incluso quanto segue:

Esempi:
TestObject[] foundTOs ;
RootTestObject root = RootTestObject.getRootTestObject() ;
// Trova tutte le finestre di livello superiore nel dominio Windows con "My
// Document"
CaptionText caption = new CaptionText("My Document") ;
foundTOs = root.find(atChild(".domain", "Win", ".caption",
     caption)) ;

// Trovare le finestre di dialogo che restituiscono i pulsanti
// "OK".
RegularExpression dialogRE = new
     RegularExpression("*dialog", false) ;
RegularExpression buttonRE = new
     RegularExpression("*button", false) ;
foundTOs = root.find(atList(atDescendant(".class",
                     dialogRE), 
                     atChild(".class", buttonRE,".value", 
                     "OK"))) ;

// Avvia blocco note, abilita dinamicamente quel processo,
// trovare la finestra di livello superiore che corrisponde all'id di processo
// e ottenere la finestra di testo discendente.
	ProcessTestObject p1 = StartApp("Notepad") ;
	Integer pid = new Integer((int)p1.getProcessId()) ;
	foundTOs = root.find(atList(atProperty(".processId",
     pid), atDescendant(".class", ".text"))) ;
 
// Ciò consente ad un'applicazione Windows con la finestra fornita di gestire e restituire un
// TestObject representing the window.
Long hWnd = getAppsHwnd();
foundTOs = root.find(atChild(".hwnd", hWnd, ".domain", "Win"));

// Ciò consente ad un'applicazione .NET con la finestra fornita di gestire e restituire un
// TestObject che rappresenta la finestra.
Long handle = getAppsHwnd();
foundTOs = root.find(atChild("Handle", handle, ".domain", "Net"));

Le applicazioni Windows e .NET sono abilitate dinamicamente da Rational Functional Tester e la proprietà utilizzata per abilitare queste applicazioni è .processName. Per individuare l'oggetto di test richiesto su un'applicazione Windows o .NET, utilizzare .processName nella query.

Esempio: il seguente codice di esempio serve a trovare il pulsante 9 in una calcolatrice e quindi a selezionarlo.
 Property[] props = new Property[4];
        // find toplevel window of calculator app
        props[0] = new Property(".processName", "calc.exe");
        props[1] = new Property(".class","SciCalc");
        props[2] = new Property(".name", "Calculator");
        props[3] = new Property(".text", "Calculator");
        TestObject[] tos = find(atChild(props));
       
        if(tos.length > 0)
        {
            // find button with text 9
            props = new Property[3];
            props[0] = new Property(".class","Button");
            props[1] = new Property(".name", "9");
            props[2] = new Property(".text", "9");
            TestObject[] tos9 = tos[0].find(atChild(props));

            if(tos9.length > 0)
            {
                // Click button 9
                ((GuiTestObject)tos9[0]).click();
            }
        }

Feedback