Hiérarchie des objets de proxy (ProxyObject)

Lorsque vous développez de nouveaux proxys en étendant des proxys existants pour un domaine, il convient de bien comprendre les proxys et les hiérarchies existants afin d'étendre le proxy approprié.

Pour plus d'informations sur les méthodes et les propriétés des classes de proxy, consultez la documentation de référence sur les API de proxy.

Identification du contrôle testé

La première tâche d'un outil de test fonctionnel consiste à identifier le contrôle testé et à le représenter dans l'application testée (AUT). Functional Tester identifie le fait qu'un contrôle utilise des propriétés de reconnaissance ainsi que la hiérarchie, et le représente dans la mappe d'objets de test (TestObject). Les propriétés de reconnaissance et la hiérarchie varient selon les contrôles. Le proxy développé pour un contrôle fournit ces informations à Functional Tester. Lors du développement de nouveaux proxys, vous héritez des proxys de base de chaque domaine. En général, vous ne remplacerez pas ces méthodes car elles sont déjà implémentées dans les proxys de base.
Propriétés de reconnaissance
Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 1 pour spécifier les propriétés de reconnaissance et le poids d'un contrôle.
Remarque : Vous pouvez aussi spécifier des propriétés de reconnaissance et des poids à l'aide de la bibliothèque d'objets.
Tableau 1. Méthodes extensibles pour la spécification des propriétés de reconnaissance
Java .Net
Hashtable getRecognitionProperties() Hashtable GetRecognitionProperties()
int getRecognitionPropertyWeight(String propertyName) int GetRecognitionPropertyWeight(String propertyName)
Hiérarchie
Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 2 pour spécifier la hiérarchie d'un contrôle.
Remarque : En général, ces méthodes sont implémentées dans les classes de proxy de base et il n'est pas forcément nécessaire de les étendre.
Tableau 2. Méthodes extensibles pour la spécification de la hiérarchie
Java .Net
getParent() GetParent()
getTopParent() GetTopParent()
getChildren() GetChildren()
Object getChildAtPoint(Point pt) Object GetChildAtPoint(Point pt)
getOwner() GetOwner()
getOwnedObjects() GetOwnedObjects()

Définition

Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 3 pour changer les caractéristiques administratives d'un contrôle, par exemple les icônes ou des noms descriptifs.
Tableau 3. Méthodes extensibles pour le changement des caractéristiques administratives
Java .Net
String getTestObjectClassName() String GetTestObjectClassName()
String getDescriptiveName() String GetDescriptiveName()
String getUniqueId() String GetUniqueId()
boolean shouldBeMapped() bool ShouldBeMapped()
String getRole() String GetRole()
String getObjectClassName() String GetObjectClassName()

Enregistrement

Functional Tester enregistre les actions utilisateur effectuées sur un contrôle lorsque l'enregistreur est activé. Ces actions utilisateur peuvent être regroupées selon leur type : interactions souris ou interactions clavier. Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 4 pour l'enregistrement.
Tableau 4. Méthodes extensibles pour l'enregistrement
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)

Lecture

Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 5 pour rechercher le rectangle d'écran ou le point pour un sous-élément (SubItem).
Remarque : En général, il n'est pas nécessaire d'étendre ces méthodes sauf si vous ajoutez de nouveaux sous-éléments (SubItem).
Tableau 5. Méthodes extensibles pour la lecture
Java .Net
Rectangle getScreenRectangle(SubItem) Point GetPointForSubItem(SubItem)

Points de vérification

Vous pouvez ajouter des types de données et des propriétés supplémentaires à un contrôle.
Vérification des données
Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 6 pour ajouter des types de données supplémentaires à un contrôle.
Tableau 6. Méthodes extensibles pour l'ajout de types de données
Java .Net
Hashtable getTestDataTypes() Hashtable GetTestDataTypes()
ITestData getTestData(String) ITestData GetTestData(string testDataType)
Vérification des propriétés
Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 7 pour ajouter des propriétés supplémentaires à un contrôle.
Tableau 7. Méthodes extensibles pour l'ajout de propriétés
Java .Net
Hashtable gerProperties() Hashtable GerProperties()
object getProperty(String) object GetProperty(string)

Gestion par données

Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 8 pour spécifier la méthode à utiliser pour la gestion par données.
Tableau 8. Méthodes extensibles pour la gestion par données
Java .Net
MethodSpecification getDataDrivableCommand MethodSpecification GetDataDrivableCommand

Support de réflexion

Vous pouvez utiliser le support de réflexion mis à disposition par Java™ et .Net à partir du script de test. Avec des API telles que getMethods() et Invoke(), vous pouvez accéder à des informations relatives à des méthodes sur l'objet sous-jacent à utiliser dans l'appel distant. Ces informations incluent le nom de la méthode et la signature. Vous pouvez utiliser les méthodes qui sont répertoriées dans le Tableau 9 pour le support de réflexion.
Tableau 9. Méthodes extensibles pour le support de réflexion
Java .Net
getMethods() GetMethods()
invoke() Invoke()
getNonValueProperties()  
La méthode getNonValueProperties() renvoie les propriétés qui ne sont pas prises en charge car la valeur est une référence à un objet ne pouvant pas être sérialisé dans les limites des processus. Ces propriétés restent accessibles avec les méthodes getProperty(). Si une telle propriété est renvoyée au script de test, elle est renvoyée sous forme d'objet de test (TestObject) contenant une référence à l'objet dans l'application testée (AUT). Le script de test doit appeler la méthode d'objet de test (TestObject) unregister() afin de libérer l'objet.

Retour d'informations