Gerarchia ProxyObject

Quando si sviluppano nuovi proxy estendendo proxy esistenti per eventuali domini, è importante comprendere i proxy esistenti e le gerarchie, in modo che si estenda il proxy corretto.

Per ulteriori informazioni sui metodi e le proprietà delle classi di proxy, consultare il riferimento API proxy.

Identificazione del controllo sottoposto a test

La prima attività per uno strumento di esecuzione di test funzionali consiste nell'identificare il controllo sottoposto a test e rappresentarlo nell'AUT (application under test). Functional Tester identifica che un controllo sta utilizzando la gerarchia e le proprietà di riconoscimento e ne esegue la rappresentazione nella mappa TestObject. La gerarchia e le proprietà di riconoscimento potrebbero variare a seconda dei controlli. Il proxy sviluppato per un controllo fornisce queste informazioni a Functional Tester. Quando si sviluppano nuovi proxy si sta per ereditare i proxy base in ogni dominio. Di solito non si escluderanno questi metodi, in quando essi sono già implementati nei proxy base.
Proprietà di riconoscimento
È possibile utilizzare i metodi elencati in Tabella 1 per specificare il peso e le proprietà di riconoscimento per un controllo.
Nota: è possibile inoltre specificare il peso e le proprietà di riconoscimento utilizzando la libreria di oggetti.
Tabella 1. Metodi estensibili per la specifica di proprietà di riconoscimento
Java .Net
Hashtable getRecognitionProperties() Hashtable GetRecognitionProperties()
int getRecognitionPropertyWeight(String propertyName) int GetRecognitionPropertyWeight(String propertyName)
Gerarchia
È possibile utilizzare i metodi elencati in Tabella 2 per specificare la gerarchia di un controllo.
Nota: Di solito, questi metodi vengono implementati nelle classi proxy di base e potrebbe non essere necessario eseguirne l'estensione.
Tabella 2. Metodi estensibili per la specifica della gerarchia
Java .Net
getParent() GetParent()
getTopParent() GetTopParent()
getChildren() GetChildren()
Object getChildAtPoint(Point pt) Object GetChildAtPoint(Point pt)
getOwner() GetOwner()
getOwnedObjects() GetOwnedObjects()

Definizione

È possibile utilizzare i metodi elencati in Tabella 3 per modificare le caratteristiche di gestione di un controllo, ad esempio, icone o nomi descrittivi.
Tabella 3. Metodi estensibili per la modifica delle caratteristiche di gestione
Java .Net
String getTestObjectClassName() String GetTestObjectClassName()
String getDescriptiveName() String GetDescriptiveName()
String getUniqueId() String GetUniqueId()
boolean shouldBeMapped() bool ShouldBeMapped()
Stringa getRole() Stringa GetRole()
String getObjectClassName() String GetObjectClassName()

Registrazione

Functional Tester registra le azioni utente eseguite su un controllo quando il registratore è attivo. Tali azioni utente possono essere raggruppate come interazioni mouse e interazioni tastiera. È possibile utilizzare i metodi elencati in Tabella 4 per la registrazione.
Tabella 4. Metodi estensibili per la registrazione
Java .Net
void processMouseEvent(IMouseActionInfo action) void ProcessMouseEvent(IMouseActionInfo action)
void processPreDownMouseEvent(IMouseActionInfo action) void ProcessPreDownMouseEvent(IMouseActionInfo action)
void processPreUpMouseEvent(IMouseActionInfo action) void ProcessPreUpMouseEvent(IMouseActionInfo action)
void processPostUpMouseEvent(IMouseActionInfo action) void ProcessPostUpMouseEvent(IMouseActionInfo action)
void processHoverMouseEvent(IMouseActionInfo action) void ProcessHoverMouseEvent(IMouseActionInfo action)
getScriptCommandFlags() GetScriptCommandFlags()
Vector getSubItems() ArrayList GetActionArgs(Point pt)
Rectangle getRectangle(SubItem) SubItem FindSubItem(Point pt)

Riproduzione

È possibile utilizzare i metodi elencati in Tabella 5 per individuare il rettangolo dello schermo o il punto per un SubItem.
Nota: di solito, non è necessario estendere tali metodi a meno che non vengono introdotti nuovi SubItem.
Tabella 5. Metodi estensibili per la riproduzione
Java .Net
Rectangle getScreenRectangle(SubItem) Point GetPointForSubItem(SubItem)

Punti di verifica

È possibile aggiungere più tipi di dati e proprietà ad un controllo.
Verifica dati
È possibile utilizzare i metodi elencati in Tabella 6 per aggiungere più tipi di dati ad un controllo.
Tabella 6. Metodi estensibili per l'aggiunta di tipi di dati
Java .Net
Hashtable getTestDataTypes() Hashtable GetTestDataTypes()
ITestData getTestData(String) ITestData GetTestData(string testDataType)
Verifica proprietà
È possibile utilizzare i metodi elencati in Tabella 7 per aggiungere più proprietà ad un controllo.
Tabella 7. Metodi estensibili per l'aggiunta di proprietà
Java .Net
Hashtable gerProperties() Hashtable GerProperties()
object getProperty(String) object GetProperty(string)

esecuzione del data-drive

È possibile utilizzare i metodi elencati in Tabella 8 per specificare il metodo che deve essere utilizzato per l'esecuzione del data-drive.
Tabella 8. Metodi estensibili per l'esecuzione del data-drive
Java .Net
MethodSpecification getDataDrivableCommand MethodSpecification GetDataDrivableCommand

Supporto Reflection

È possibile utilizzare il supporto Reflection fornito da Java e .Net dallo script di test. Con API quali getMethods() e Invoke(), è possibile accedere alle informazioni sui metodi sugli oggetti sottostanti da utilizzare nei richiami remoti. Queste informazioni includono nome metodo e firma. È possibile utilizzare i metodi elencati in Tabella 9 per il supporto Reflection.
Tabella 9. Metodi estensibili per il supporto Reflection
Java .Net
getMethods() GetMethods()
invoke() Invoke()
getNonValueProperties()  
Il metodo getNonValueProperties() restituisce le proprietà che non sono supportate in quanto il valore è un riferimento ad un oggetto che non può essere serializzato sui limiti del processo. È possibile accedere a tali proprietà utilizzando i metodi getProperty(). Se tale proprietà viene restituita allo script di test, viene restituita come un TestObject contenente un riferimento all'oggetto nell'AUT. Lo script di test deve richiamare il metodo TestObject unregister() per rilasciare l'oggetto.

Feedback