NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Automation Testing11 min read

Comment tester une application Electron | Guide complet

A
Ananya Dewan
Content Team

Introduction aux tests d'applications Electron

Qu'est-ce qu'Electron, au juste ? Imaginez créer des applications de bureau avec les technologies web que vous connaissez et aimez déjà. C'est l'essence même d'Electron. Il s'agit d'un framework puissant permettant aux développeurs de créer des applications de bureau multiplateformes à l'aide de JavaScript, HTML et CSS.

Pourquoi les tests sont essentiels

Vous ne lanceriez pas une fusée sans vérifier chaque système, n'est-ce pas ? Il en va de même pour votre application Electron. Les tests vous permettent de :

  • Détecter les bugs avant vos utilisateurs

  • Garantir des performances cohérentes sur différents systèmes d'exploitation

  • Ameliorer l'expérience utilisateur en identifiant et corrigeant les problèmes tôt

  • Economiser du temps et des ressources sur le long terme

Considérez les tests comme le filet de sécurité de votre application. Ils vous donnent la confiance que votre création fonctionnera comme prévu lorsqu'elle atteindra le bureau de vos utilisateurs.

Dans les sections suivantes, nous couvrirons tout ce que vous devez savoir sur les tests d'applications Electron, depuis la configuration de votre environnement de test jusqu'a l'exécution de vos premiers tests automatisés.

Prérequis pour les tests d'applications Electron

Avant de plonger dans les détails des tests, assurez-vous de disposer de tous les outils nécessaires.

Ce dont vous aurez besoin :

  1. Licence du module Web TestComplete : C'est votre sésame pour le monde des tests d'applications Electron. Assurez-vous de disposer d'une licence active.

  2. Plugins essentiels

    • Plugin de test Web : indispensable pour les tests des applications web.

    • Plugin de support Chromium Embedded Framework : étant donné qu'Electron utilise Chromium en interne, ce plugin est essentiel.

  3. A noter : ces plugins sont généralement préinstallés avec le module Web de TestComplete. Il est toutefois toujours conseillé de vérifier.

  4. Votre application Electron en tant qu'exécutable binaire : votre application doit être compilée et prête a être exécutée.

Versions d'Electron prises en charge

Parlons de la compatibilité. Toutes les versions d'Electron ne s'intègrent pas également bien avec les outils de test :

  1. Support du Chrome DevTools Protocol (CDP)

    • Cette approche moderne prend en charge les versions d'Electron 11 a 32.

    • Elle offre un accès direct aux rouages internes de votre application.

  2. Support legacy par injection de script

    • Cette méthode plus ancienne fonctionne avec les versions d'Electron 1.8.2 jusqu'a 11.0.0.

    • Elle reste opérationnelle, mais les méthodes plus récentes sont généralement plus efficaces.

Conseil : visez toujours la dernière version stable d'Electron compatible avec votre configuration de test pour obtenir les meilleurs résultats.

Exposer les applications Electron pour les tests

Maintenant que vos outils sont prêts, il est temps d'explorer le fonctionnement interne de votre application Electron. Il faut exposer ses composants internes pour que vos tests puissent effectuer leur travail.

L'approche moderne : méthode Chrome DevTools Protocol (CDP)

Le CDP offre a vos outils de test un accès privilégié a votre application. C'est la méthode recommandée pour les versions récentes d'Electron. Voici comment procéder :

  1. Lancement avec un port de débogage a distance

    • Cela ouvre un passage sécurisé pour vos outils de test.

    • Utilisez cette commande lors du lancement de votre application : --remote-debugging-port=<port_1> --inspect=<port_2>

    • Remplacez <port_1> et <port_2> par des numéros de port disponibles entre 1024 et 65535.

  2. Utilisation du parametre de ligne de commande -cdpAutoSetPort

    • C'est la solution la plus simple pour l'exposition.

    • Ajoutez votre application a TestComplete en tant qu'application Windows générique.

    • Ajoutez le parametre -cdpAutoSetPort aux paramètres de lancement.

    • Laissez TestComplete gérer la configuration des ports automatiquement.

Conseil : l'utilisation de -cdpAutoSetPort est pratique et vous évite les problèmes liés aux numéros de port.

L'approche classique : méthode legacy par injection de script

Bien que cette méthode ne soit plus la première recommandée, certaines applications Electron plus anciennes peuvent encore l'utiliser :

  1. Ajoutez votre application a TestComplete en tant qu'application Windows générique.

  2. Lancez-la en mode d'exécution simple.

Attention : cette méthode peut fonctionner, mais les approches plus récentes comme CDP sont plus fiables et riches en fonctionnalités.

Choisir votre approche

  • Pour les versions d'Electron 11 et supérieures : utilisez CDP.

  • Pour les versions plus anciennes (avant la version 11) : vous devrez peut-être recourir a l'injection de script, mais envisagez une mise a jour si possible.

N'oubliez pas que bien exposer votre application est essentiel pour des tests efficaces. Cela donne a vos outils de test les clés pour libérer le potentiel de votre application.

Création et enregistrement des tests

Enregistrement des actions utilisateur

  1. Appuyez sur le bouton Enregistrer dans TestComplete.

  2. Interagissez avec votre application comme le ferait un utilisateur standard.

  3. Cliquez sur des boutons, remplissez des formulaires, naviguez dans les menus - TestComplete observe tout.

  4. Arrêtez l'enregistrement lorsque vous avez terminé.

Structure des tests : que trouve-t-on dans le script ?

Après l'enregistrement, vous verrez une séquence d'opérations, notamment :

  • ClickItem : pour sélectionner dans des listes déroulantes

  • SetText : lorsque vous tapez dans des zones de texte

  • Click : pour les boutons et autres éléments cliquables

Améliorer vos tests

Vous avez votre test de base ? Excellent. Voici comment l'améliorer :

  1. Ajouter de nouvelles opérations : incorporez des étapes ou des vérifications supplémentaires.

  2. Réorganiser ou modifier : déplacez les éléments ou ajustez les paramètres.

  3. Supprimer le superflu : éliminez les actions enregistrées inutiles.

  4. Ajouter des points de contrôle : vérifiez si votre application se comporte correctement.

  5. Le rendre piloté par les données : exécutez le même test avec différents ensembles de données.

Adresser les objets dans les applications Electron

Voyons comment référencer les différentes parties de votre application dans les tests.

Utilisation du Name Mapping et des alias

  1. TestComplete mappe automatiquement les objets pendant l'enregistrement.

  2. Chaque objet reçoit un alias convivial.

  3. Utilisez ces alias dans vos tests.

Exemple : Aliases.orders.pageOrders.formOrder.selectProduct.ClickItem("FamilyAlbum");

Adresser les objets sans Name Mapping

Parfois, vous devez adopter une approche différente :

  1. Utilisez l'Object Browser ou l'Object Spy pour trouver le nom complet de l'objet.

  2. Référencez les objets directement en utilisant leur nom complet.

Conseil : privilégiez les alias lorsque c'est possible. Ils sont plus faciles a lire et a maintenir.

N'oubliez pas que l'adressage correct des objets rend vos tests plus stables et plus faciles a mettre a jour.

Simuler les actions utilisateur dans les tests

Maintenant que nous avons compris la structure des tests et l'adressage des objets, il est temps de simuler les actions utilisateur dans votre application Electron.

Méthodes de TestComplete pour les éléments web

TestComplete vous offre une boite a outils complète pour interagir avec les éléments web. Voici quelques-unes des méthodes les plus utiles :

  1. Click() : la méthode classique. Utilisez-la pour cliquer sur des boutons, des liens ou tout élément cliquable. Exemple : myButton.Click();

  2. DblClick() : pour les actions de double-clic. Exemple : myIcon.DblClick();

  3. SetText() : idéale pour saisir du texte dans des champs. Exemple : myTextBox.SetText("Bonjour, Electron !");

  4. Keys() : simule la saisie au clavier, idéale pour les raccourcis ou les touches spéciales. Exemple : myElement.Keys("[Enter]");

  5. ClickItem() : parfaite pour les menus déroulants et les sélections dans les listes. Exemple : myDropdown.ClickItem("Option 2");

Controles et éléments pris en charge

TestComplete est compatible avec les éléments web standard. Voici ce avec quoi vous pouvez interagir :

  • <p>, <div>, <span> : pour les conteneurs de texte et de contenu

  • <table> : pour travailler avec des données tabulaires

  • <input> : champs de texte, cases a cocher, boutons radio

  • <select> : listes déroulantes

  • <button> : boutons cliquables

  • <a> : hyperliens

Et bien plus encore. TestComplete est également compatible avec :

  • Les éléments personnalisés : s'il est construit sur des technologies web standard, il est probable que vous puissiez interagir avec lui.

  • Les composants UI complexes : sélecteurs de date, curseurs, listes déroulantes personnalisées.

Exemple concret

Imaginons que vous remplissiez un formulaire dans votre application Electron. Votre test pourrait ressembler a ceci :

var orderForm = Aliases.orders.pageOrders.formOrder;
orderForm.textboxCustomerName.SetText("Jean Dupont");
orderForm.selectProduct.ClickItem("Widget formidable");
orderForm.textboxQuantity.SetText("5");
orderForm.buttonSubmit.Click();

Conseil : pensez toujours a la manière la plus efficace et la plus fiable d'interagir avec les éléments. Parfois, un seul Click() vaut mieux qu'une série complexe de mouvements de souris.

Bonnes pratiques et écueils a éviter

Examinons quelques conseils de professionnels et les obstacles potentiels dans les tests d'applications Electron.

Bonnes pratiques

  1. Trouver le bon exécutable binaire

Il s'agit de trouver le veritable coeur de votre application. Voici comment procéder :

  • Recherchez dans le dossier %APPDATA%\Local<Nom_App>\app-N.N.N.

  • Utilisez l'exécutable réel de l'application, pas uniquement un lanceur.

Conseil : si vous n'êtes pas sûr, laissez TestComplete vous guider :

  1. Lancez votre application Electron.

  2. Dans l'Object Browser de TestComplete, trouvez votre application.

  3. Faites un clic droit sur le nœud Process et sélectionnez "Add Process to TestedApps".

  4. Gérer les applications Electron en arrière-plan

Les applications Electron en arrière-plan peuvent perturber vos tests. Voici comment les gérer :

  • Avant de tester, vérifiez dans le Gestionnaire des tâches la présence de processus Electron.

  • Fermez toutes les applications Electron en arrière-plan.

Pourquoi ? Ces processus silencieux peuvent perturber TestComplete, entrainant des résultats de test imprévisibles.

Limitations et problèmes connus

  1. Limitations des tests multiplateformes

Mauvaise nouvelle : l'exécution de tests web multiplateformes pour les applications Electron dans des environnements distants n'est pas prise en charge.

Cela signifie que vous devrez tester sur chaque plateforme séparément.

  1. Problèmes spécifiques aux versions

Electron évolue rapidement, et les outils de test doivent parfois s'adapter. Voici quelques particularités liées aux versions :

  • Electron 9.x et supérieur : non pris en charge sur Windows 7.

  • Electron 9.x et 11.0.0 avec le mode sandbox global : non pris en charge.

  • Electron 12 et versions ultérieures : peut se bloquer ou planter lors de l'enregistrement des tests.

Conseil : vérifiez toujours les dernières notes de compatibilité pour votre version d'Electron.

  1. Restrictions de la politique de sécurité du contenu (CSP)

Si votre application utilise une CSP stricte, elle peut bloquer l'injection de script de TestComplete. La solution : créez une version de build distincte pour les tests avec une CSP assouplie. N'utilisez pas cette version en production.

  1. Conflits avec les bibliothèques JavaScript

Vous utilisez des bibliothèques JS populaires ? Vous pourriez voir des erreurs "Uncaught ReferenceError" au lancement. La solution : utilisez l'argument de ligne de commande -tearOffNodeObjects lors du lancement de votre application pour les tests.

N'oubliez pas que ces limitations ne sont pas des obstacles insurmontables - les connaitre vous aide a naviguer plus sereinement dans votre parcours de test.

Migration des tests existants

Vous testez votre application Electron depuis un certain temps, et vous venez de mettre a jour TestComplete. Qu'advient-il de vos anciens tests ?

Migration des tests

Bonne nouvelle : si vous effectuez une mise a jour depuis une version de TestComplete antérieure a 14.93, vos tests existants continueront de fonctionner. Mais comme pour toute mise a jour, il existe de nouvelles fonctionnalités dont vous pouvez profiter.

Guide de migration rapide

  1. Vos anciens tests continuent de fonctionner. Inutile de tout réécrire de zéro.

  2. Adoptez le CDP (Chrome DevTools Protocol), qui est plus rapide, plus efficace et offre de meilleures fonctionnalités.

  3. Le parametre magique pour mettre a niveau vos tests :

    • Trouvez votre application Electron dans la collection Tested Applications de votre projet.

    • Ajoutez ce parametre : -cdpAutoSetPort

    • Ajoutez-le en tant que parametre de ligne de commande dans les paramètres de lancement de votre application.

  4. Laissez le reste tel quel. Vous n'avez pas besoin de modifier les autres commandes de test.

Conseil : bien que vos anciens tests fonctionneront, envisagez de les mettre progressivement a jour pour tirer pleinement parti des nouvelles fonctionnalités de TestComplete 14.93 et versions ultérieures.

Pourquoi migrer ?

Vous vous demandez peut-être pourquoi effectuer cette migration. Voici quelques raisons :

  1. Meilleures performances : le CDP est généralement plus rapide et plus fiable.

  2. Plus de fonctionnalités : accédez aux nouvelles capacités de test.

  3. Pérennité : rester a jour permet de s'assurer que vos tests fonctionnent avec les versions plus récentes d'Electron.

  4. Corrections de bugs : les nouvelles versions incluent souvent des correctifs pour les problèmes connus.

Un mot de prudence

Si vous utilisez la méthode legacy d'injection de script (avant la version 14.93), sachez qu'elle comporte certaines limitations et problèmes potentiels. Les approches plus récentes sont généralement meilleures.

Conclusion de la migration

Migrer vos tests n'a pas a être un casse-tête. Avec TestComplete, c'est plutot une transition en douceur vers l'avenir. Vos anciens tests fonctionnent toujours, mais avec un simple ajustement, vous pouvez accéder a un tout nouveau monde de possibilités de test.

N'oubliez pas que l'objectif est de rendre vos tests plus efficaces. En mettant a jour vos tests, vous ne vous contentez pas de suivre l'évolution des choses - vous vous préparez pour des tests plus faciles et plus robustes a l'avenir.

Conclusion

Vous êtes maintenant équipé pour tester vos applications Electron comme un professionnel. De la configuration de votre environnement a la création de tests robustes et a la migration d'anciens tests, vous disposez des outils nécessaires pour garantir que votre application fonctionne parfaitement sur tous les systèmes.

N'oubliez pas que les tests ne servent pas seulement a trouver des bugs ; ils servent a offrir une expérience utilisateur exceptionnelle. Au fur et a mesure qu'Electron évolue, les méthodes de test évolueront également. Restez curieux, continuez a apprendre et n'hésitez pas a expérimenter de nouvelles techniques.


Foire aux questions

Pourquoi choisir Qodex.ai ?

Qodex.ai simplifie et accélère le processus de test des API en tirant parti d'outils alimentés par l'IA et de l'automatisation. Voici pourquoi il se distingue :

  1. Automatisation alimentée par l'IA

Atteignez 100 % d'automatisation des tests API sans écrire une seule ligne de code. L'IA de pointe de Qodex.ai réduit les efforts manuels, offrant une efficacité et une précision inégalées.

  1. Plateforme conviviale

Importez facilement des collections API depuis Postman, Swagger ou des journaux d'application et commencez a tester en quelques minutes. Pas de courbe d'apprentissage abrupte ni d'expertise technique requise.

  1. Scénarios de test personnalisables

Que vous utilisiez la génération de tests assistée par l'IA ou créiez des cas de test manuellement, Qodex.ai s'adapte a vos besoins.

  1. Surveillance et rapports en temps réel

Obtenez des insights instantanés sur la santé des API, les taux de réussite des tests et les métriques de performance.

  1. Outils de collaboration évolutifs

Conçu pour des équipes de toutes tailles, Qodex.ai propose des plans de test, des suites et de la documentation favorisant une collaboration fluide.

  1. Efficacité en termes de couts et de temps

Economisez du temps et des ressources en éliminant la surcharge des tests manuels.

  1. Compatibilité CI/CD

Intégrez facilement Qodex.ai dans vos pipelines CI/CD pour garantir des tests automatisés cohérents tout au long de votre cycle de développement.

Comment valider une adresse e-mail avec une regex Python ?

Vous pouvez utiliser le modèle regex suivant pour valider une adresse e-mail : ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Qu'est-ce qu'un testeur de regex Go ?

Go Regex Tester est un outil spécialisé pour les développeurs permettant de tester et déboguer des expressions régulières dans l'environnement de programmation Go. Il offre une évaluation en temps réel des modèles regex, aidant a un développement efficace des modèles et au dépannage.