Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Trucs et astuces pour tester les applications Salesforce Enterprise avec Selenium

Par Matt Love

1 Décembre 2020

5  min lire

Et si nous vous disions qu'il existe des trucs et astuces testés que vous pouvez déployer pour tester les applications Salesforce Enterprise avec Selenium ? Découvrez ces astuces et découvrez également comment Parasoft Selenic peut vous aider à automatiser les tests des applications d'entreprise Salesforce.

Salesforce est devenue la plateforme CRM dominante ces dernières années avec part de marché mondiale de 19.5% en 2018. C'est plus du double du SAP alternatif le plus proche et plus de trois fois celui d'Oracle. Le succès vient du ciblage du développement d'applications d'entreprise avec son propre langage de programmation orienté objet Apex et son framework Lightning Web Component.

Salesforce permet aux développeurs de définir leur logique métier et leurs éléments d'interface utilisateur de manière abstraite afin que Salesforce puisse implémenter ces éléments sur la page. Cette flexibilité se fait au détriment de Automatisation des tests d'interface utilisateur car les développeurs n'ont pas de contrôle direct sur le contenu final du navigateur. Les applications d'entreprise Salesforce sont notoirement difficiles à tester avec des frameworks d'automatisation open source tels que Selenium. Explorons quelques raisons de la difficulté de tester les applications Salesforce Enterprise et comment les contourner.

Défis du test des applications Salesforce Enterprise

Les identificateurs d'élément sont un moyen courant de localiser et d'automatiser les interactions des pages Web avec Selenium. L'annotation @FindBy dans Selenium a un simple attribut id = "quelque chose" pour localiser un élément Web par identifiant unique sur la page.

Identificateurs d'élément atypiques

Les identifiants d'élément dans une application Salesforce semblent très étranges : par exemple, id="940:1376;a". Pire que cela, les identifiants changent de manière aléatoire entre les visites de pages. Cela rend les identifiants inutiles pour l'automatisation des tests. Considérez comment un test au sélénium devrait localiser le élément dans l'exemple suivant lorsque l'id change à chaque fois que le test s'exécute.

Identificateurs d'élément atypiques

Trucs et astuces

La série L'élément n'a pas d'autres attributs de définition uniques. Heureusement, Salesforce respecte les dernières directives d'accessibilité Web. La section 1.3.1 des WCAG sur les informations et les relations exige qu'un humain lisible

Dans cet exemple, le texte "Nom de l'entreprise" est contenu dans un

Ce XPath localise tout élément sur la page avec un attribut "id" égal à l'attribut "for" d'un

Astuce pour tester les applications Salesforce Enterprise

Applications d'entreprise hébergées sur le cloud lentes

Malgré le nom «Lightning», les applications d'entreprise hébergées dans le cloud de Salesforce peuvent parfois être assez lentes. Les ingénieurs en automatisation des tests connaissent les défis associés aux applications qui peuvent être lentes à répondre. Un script de test échouera s'il essaie d'exécuter l'étape suivante avant que l'application ne soit prête.

Le codage en dur de plusieurs secondes de retard dans le test peut faire une pause plus longue que nécessaire la plupart du temps et augmenter la durée totale d'exécution des tests. Afin de retarder juste assez longtemps, l'attente doit être conditionnelle. Salesforce rend difficile l'utilisation des conditions d'attente typiques de Selenium fluent en rendant un masque de superposition de chargement sur la page.

Chargement du masque de superposition

Selenium a un support intégré pour les conditions d'attente dynamiques. Il vérifie la présence d'élément ou la cliquabilité plusieurs fois par seconde - jusqu'à un temps maximum avant l'erreur. Le problème est qu'aucune des conditions d'attente intégrées de Selenium ne gère la superposition de chargement dans Salesforce. Selenium détecte que l'élément sous le masque de chargement est bien présent et non désactivé. Il arrête d'attendre et essaie de cliquer dessus. Cela entraîne une exception car le clic est intercepté par la superposition de chargement.

Exception due à la superposition de chargement

Trucs et astuces

Tout espoir n'est pas perdu. Quelques lignes supplémentaires de code Selenium permettent d'attraper cette exception interceptée par un clic et de réessayer en utilisant la même boucle d'attente et le même délai d'expiration.

Conseils pour tester les applications Salesforce Enterprise

Mémorisation et réinitialisation des composants de l'interface utilisateur Lightning

Une autre épine dans le côté de l'automatisation des tests de l'interface utilisateur est que Salesforce se souvient des derniers composants de l'interface utilisateur Lightning ouverts et réinitialise le dernier état connu lors de la connexion. Cela signifie que la mise en page initiale disponible pour le test est sujette à modification en fonction de l'historique enregistré.

Trucs et astuces

Une façon de réduire l'effet de l'état précédent est que le test lance le navigateur incognito. Selenium facilite cette opération avec Google Chrome en passant des options dans la méthode de configuration de la classe de test.

Conseils pour tester les applications Salesforce Enterprise

Les autres options présentées ici désactivent l'invite du navigateur pour partager l'emplacement avec Salesforce car les tests Selenium peuvent rester bloqués sur cette invite d'autorisation pendant la lecture. L'agrandissement de la fenêtre du navigateur permet d'ajouter plus d'éléments à l'écran. Cela réduit également la nécessité pour le test de faire défiler les éléments avant de les cliquer. Si le test doit encore faire défiler jusqu'à un élément plus bas dans la page, Selenium peut exécuter cette commande JavaScript pour faire exactement cela.

 

Avantages des tests d'applications Salesforce Enterprise avec les tests d'interface utilisateur automatisés Selenium

Ces conseils et astuces permettent d'utiliser Selenium pour tester automatiquement l'interface utilisateur des applications d'entreprise Salesforce. L'automatisation des tests est un moyen important de détecter rapidement les régressions après la modification de la logique métier ou des composants Web dans l'application d'entreprise. Salesforce lui-même publie également des modifications plusieurs fois par an. Une suite de tests Selenium est un excellent moyen de vérifier rapidement la compatibilité avec la dernière mise à jour de Salesforce dans un bac à sable avant de passer à la production.

Améliorez les tests d'interface utilisateur automatisés Selenium avec la technologie AI

Si la mise en œuvre de ces trucs et astuces par vous-même semble vous demander trop de travail, pensez à utiliser Parasoft Sélénic pour automatiser efficacement la création de vos tests Selenium et simplifier la maintenance des tests. Avec Selenic, vous pouvez enregistrer les interactions avec les applications d'entreprise Salesforce dans votre navigateur. Créez ensuite facilement des classes de test Selenium qui exploitent toutes ces mêmes techniques.

L'enregistreur intégré de Parasoft Selenic fournit une sélection d'applications afin que vous puissiez choisir de rassembler des attributs spécifiques à Salesforce lors de l'enregistrement des actions de l'interface utilisateur. Selenic intègre ensuite ces attributs lors de la création de tests d'interface utilisateur Selenium et utilise la technologie de l'IA pour appliquer l'auto-guérison aux tests qui sont interrompus en raison de changements dans les localisateurs ou des conditions d'attente.

Vous voulez voir Parasoft Selenic en action ?

Par Matt Love

Ingénieur en chef de produit chez Parasoft, Matt gère le développement de nouvelles fonctionnalités pour la gestion de l'environnement, les tests d'API, la virtualisation des services et la modélisation des données de test.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.