Automatiser des tests d’interfaces graphiques sur Excel : Done !

Le principe des tests d’interfaces graphiques automatisés dans Visual Studio 2010 est simple : on utilise du code (la plupart du temps généré, mais pas forcément) pour pouvoir identifier des objets graphiques et y appliquer un comportement identique à celui qu’aurait un utilisateur de façon à simuler son utilisation.

Pour que l’enregistreur de tests (Coded UI Tests) ou l’exécuteur de ces mêmes tests puisse “trouver” et manipuler ces objets graphiques, il est nécessaire qu’il “connaisse” la technologie dans laquel il a été constuit. Par défaut, un nombre important de technologies sont connues de l’outil, tels que WPF, Winforms, HTML, etc. Lorsque le système se retrouve confronté à un contrôle très personnalisé, les possibilités d’interactions seront minimalistes : on pourra récupérer son nom et quelques autres propriétés, mais cela s’arrête plus ou moins ici.

C’est pour cette raison que si vous tentez d’enregistrer un test impliquant Excel, vous pourrez utiliser la plupart des contrôles (tels que le ruban, les boutons de mise en forme, etc.), qui sont réalisés dans des technologies connues de l’outil. Si par contre vous tentez comme moi d’utiliser le sélectionneur de contrôle de l’enregistreur de test pour identifier une cellule particulière, vous vous rendrez compte rapidement que le contrôle contenant les cellules n’est pas reconnu par le système de Coded Ui tests et qu’il ne peut pas descendre en dessous du niveau de la grille :

image

On se retrouve alors avec un seul contrôle, difficilement utilisable.

Si c’est votre cas, ne paniquez pas, il existe une solution ! (mais vous vous en doutez, vu le titre du billet…)

Vu que les choses sont bien faites, le modèle de technologies supportées par les Coded UI Tests est extensible. Il est possible d’ajouter un plugin qui permettra à l’outil de reconnaitre et d’interagir avec une nouvelle technologie. Le schéma d’extensibilité est le suivant :

UI Test Architecture

Grosso modo, un plugin consiste à enrichir la couche “Technology Managers” et plus particulièrement l’aspect “Property Provider” qui permet d’exposer au Coded UI Test les valeurs des propriétés des contrôles.

L’avantage qu’on a quand on veut faire un plugin pour Excel, c’est que l’exemple d’extensibilité fournit par les équipes de Microsoft concerne justement Excel :) Vous pouvez trouver toutes les informations ici : http://msdn.microsoft.com/en-us/library/ff398055.aspx

Il contient le code du plugin et les explications concernant les étapes nécessaires à son déploiement (quelques DLLs à copier par-ci, par-là).

Dans les grandes lignes, le concept est d’avoir un AddIn VSTO (Visual Studio Tools for Office) dans Excel qui communique avec le plugin des Coded UI Tests. Si on a besoin d’avoir les informations concernant une cellule par exemple, le plugin côté test “demande” (en Remoting) ces informations à l’addin dans Excel qui lui répond. De même pour les actions réalisées sur Excel (prendre le focus, modifier une cellule, etc.).

Donc in fine, lorsque le plugin est déployé, vous utilisez les outils des Coded Ui Test (recorder et runner) comme d’habitude mis à part le fait que vous aurez accès à plus d’informations !

Ce qui fait que quand on utilise le sélectionneur : TADA ! On arrive à identifier une cellule en particulier:

image

Toutes les informations nécessaires à l’utilisation du plugin sont dans le lien cité plus haut. Au dela de m’avoir sauvé la vie dans le cadre d’un projet de tests sur Excel, c’est également un très bon exemple d’extensibilité.

Bon tests :)

.Dispose();

Publié jeudi 20 mai 2010 17:09 par Etienne Margraff
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: Automatiser des tests d’interfaces graphiques sur Excel : Done ! @ mercredi 2 juin 2010 19:11

Hello Etienne !

Dans ton article :

"tels que WPF, Winforms, HTML, etc", j'aimerais en savoir plus (on est nombreux en fait!) par rapport au "etc" :

* As-tu des news ou une date pour le support des UI Automation tests pour Silverlight 4 ??

car pour le moment, on a acheté pour nos tests "WebUI Test Studio Developer Edition" qui est plutôt pas mal: c'est rapide même sur une config lente.

Vincent THAVONEKHAM

PS: "Nice" et merci pour ta présentation au TechDays, ça m'aide à fond car je bosse avec du TFS 2010 devant se connecter au COBOL !!

thavo


Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01