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 reconnaissanceJava |
.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érarchieJava |
.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 administrativesJava |
.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'enregistrementJava |
.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 lectureJava |
.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éesJava |
.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ésJava |
.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éesJava |
.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éflexionJava |
.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.