Machen Sie manuelle Regressionstests schneller, intelligenter und zielgerichteter. Sehen Sie es in Aktion >>
Tipps und Tricks zum Testen von Salesforce Enterprise-Apps mit Selen
Wie wäre es, wenn wir Ihnen sagen, dass es getestete Tipps und Tricks gibt, die Sie anwenden können, um Salesforce Enterprise Apps mit Selenium zu testen? Lernen Sie diese Tricks kennen und entdecken Sie auch, wie Parasoft Selenic Ihnen helfen kann, das Testen von Salesforce-Unternehmensanwendungen zu automatisieren.
Wie wäre es, wenn wir Ihnen sagen, dass es getestete Tipps und Tricks gibt, die Sie anwenden können, um Salesforce Enterprise Apps mit Selenium zu testen? Lernen Sie diese Tricks kennen und entdecken Sie auch, wie Parasoft Selenic Ihnen helfen kann, das Testen von Salesforce-Unternehmensanwendungen zu automatisieren.
Salesforce hat sich in den letzten Jahren zur dominierenden CRM-Plattform entwickelt globaler Marktanteil von 19.5% Das ist mehr als das Doppelte der nächsten alternativen SAP und mehr als das Dreifache der von Oracle. Der Erfolg beruht auf der gezielten Entwicklung von Unternehmensanwendungen mit einer eigenen objektorientierten Apex-Programmiersprache und einem Lightning Web Component-Framework.
Mit Salesforce können Entwickler ihre Geschäftslogik- und Benutzeroberflächenelemente abstrakt definieren, sodass Salesforce diese Elemente auf der Seite implementieren kann. Diese Flexibilität geht zu Lasten von UI-Testautomatisierung weil Entwickler keine direkte Kontrolle über den endgültigen Inhalt im Browser haben. Salesforce-Unternehmensanwendungen sind mit Open-Source-Automatisierungsframeworks wie Selenium bekanntermaßen schwer zu testen. Lassen Sie uns einige Gründe für die Schwierigkeit beim Testen von Salesforce Enterprise-Apps und deren Umgehung untersuchen.
Elementkennungen sind eine gängige Methode, um Webseiteninteraktionen mit Selenium zu lokalisieren und zu automatisieren. Die @FindBy-Annotation in Selenium verfügt über ein einfaches Attribut id="something", um ein Webelement anhand seiner eindeutigen ID auf der Seite zu finden.
Elementkennungen in einer Salesforce-App sehen sehr seltsam aus: zum Beispiel id="940:1376;a". Schlimmer noch: Die Kennungen ändern sich zufällig zwischen Seitenbesuchen. Das macht sie für die Testautomatisierung unbrauchbar. Überlegen Sie, wie ein Selentest sollte das lokalisieren Element im folgenden Beispiel, wenn sich die ID bei jeder Testausführung ändert.

Der Element hat keine anderen eindeutig definierenden Attribute. Glücklicherweise entspricht Salesforce den neuesten Richtlinien zur Barrierefreiheit im Internet. WCAG-Abschnitt 1.3.1 zu Informationen und Beziehungen schreibt vor, dass ein menschenlesbares Element im Code mit seinem entsprechenden indem das „for“-Attribut des Labels mit dem „id“-Attribut der Eingabe abgeglichen wird. Die Elementkennung kann sich bei jedem Laden der Seite ändern, der Labeltext sollte jedoch immer gleich bleiben.
In diesem Beispiel ist der Text "Firmenname" in einem with-Attribut für "940:1376;a" enthalten, das zufällig mit der Kennung auf dem Element. Ein Selenium-Test kann die Verbindung vom Beschriftungstext zum Eingabeelement mithilfe eines cleveren XPath herstellen: //input[@id=//label[normalize-space(.)='Firmenname']/@for].
Dieser XPath findet alle Element auf der Seite mit einem „id“-Attribut, das dem „for“-Attribut einer Anzeige „Firmenname“ entspricht. Die XPath-Funktion normalize-space(.) entfernt die zusätzlichen Leerzeichen aus dem Text, der in diesem Beispiel innerhalb des Elements in ein „umschlossen“ ist. Dadurch wirkt der Selenium-Test etwas komplizierter, aber er erfüllt seinen Zweck.
![]()
Trotz des Namens „Lightning“ können die Cloud-basierten Unternehmensanwendungen von Salesforce manchmal recht langsam sein. Testautomatisierungsingenieure kennen die Herausforderungen, die mit Anwendungen einhergehen, die langsam reagieren. Ein Testskript schlägt fehl, wenn es versucht, den nächsten Schritt auszuführen, bevor die Anwendung bereit ist.
Eine harte Codierung mit einer Verzögerung von mehreren Sekunden für den Test kann länger als nötig dauern und die Gesamtzeit verlängern, die die Tests für die Ausführung benötigen. Um gerade lange genug zu verzögern, muss das Warten bedingt sein. Salesforce macht es schwierig, typische Wartebedingungen für fließendes Selen zu verwenden, indem eine Lade-Overlay-Maske auf der Seite gerendert wird.

Selen hat eine integrierte Unterstützung für dynamische Wartebedingungen. Es prüft mehrmals pro Sekunde, ob Elemente vorhanden oder anklickbar sind - bis zu einer maximalen Zeit, bevor ein Fehler auftritt. Das Problem ist, dass keine der in Selenium integrierten Wartebedingungen die Ladeüberlagerung in Salesforce übernimmt. Selen erkennt, dass das Element unter der Lademaske tatsächlich vorhanden und nicht deaktiviert ist. Es hört auf zu warten und versucht darauf zu klicken. Dies führt zu einer Ausnahme, da der Klick vom Lade-Overlay abgefangen wird.

Nicht alle Hoffnung ist verloren. Ein paar weitere Zeilen Selenium-Code ermöglichen es, diese durch Klicken abgefangene Ausnahme abzufangen und es erneut mit derselben Warteschleife und demselben Timeout zu versuchen.

Ein weiterer Dorn im Auge von UI-Testautomatisierung Salesforce merkt sich, welche Lightning-UI-Komponenten zuletzt geöffnet waren, und initialisiert den letzten bekannten Status bei der Anmeldung neu. Das bedeutet, dass sich das anfängliche Seitenlayout, das für den Test verfügbar ist, je nach gespeichertem Verlauf ändern kann.
Eine Möglichkeit, die Auswirkung des vorherigen Status zu verringern, besteht darin, dass der Test den Browser inkognito startet. Selenium macht dies mit Google Chrome einfach, indem Optionen in der Setup-Methode der Testklasse übergeben werden.

Andere hier gezeigte Optionen deaktivieren die Browser-Eingabeaufforderung, um den Standort für Salesforce freizugeben, da Selenium-Tests während der Wiedergabe an dieser Berechtigungsaufforderung hängen bleiben können. Durch Maximieren des Browserfensters werden mehr Elemente auf dem Bildschirm angezeigt. Außerdem muss der Test nicht mehr zu Elementen scrollen, bevor Sie darauf klicken. Wenn der Test immer noch zu einem Element weiter unten auf der Seite scrollen muss, kann Selenium diesen JavaScript-Befehl ausführen, um genau das zu tun.
![]()
Mit diesen Tipps und Tricks ist es praktisch, Selenium für automatisierte UI-Tests von Salesforce-Unternehmensanwendungen zu verwenden. Die Testautomatisierung ist eine wichtige Methode, um Regressionen nach dem Ändern der Geschäftslogik oder der Webkomponenten in der Unternehmensanwendung schnell zu erkennen. Salesforce selbst veröffentlicht außerdem einige Male im Jahr Änderungen. Eine Reihe von Selenium-Tests ist eine hervorragende Möglichkeit, die Kompatibilität mit dem neuesten Salesforce-Update in einer Sandbox schnell zu überprüfen, bevor sie in die Produktion eingeführt werden.
Wenn es Ihnen zu viel Arbeit erscheint, diese Tipps und Tricks selbst in die Tat umzusetzen, sollten Sie sie in Betracht ziehen Parasoft Selenic um Ihre Selenium-Testerstellung effizient zu automatisieren und die Testwartung zu vereinfachen. Mit Selenic können Sie Interaktionen mit Salesforce-Unternehmensanwendungen in Ihrem Browser aufzeichnen. Erstellen Sie dann einfach Selenium-Testklassen, die alle diese Techniken nutzen.
Der integrierte Recorder von Parasoft Selenic bietet eine Anwendungsauswahl, mit der Sie Salesforce-spezifische Attribute erfassen können, während Sie UI-Aktionen aufzeichnen. Selenic berücksichtigt diese Attribute dann beim Erstellen von Selenium-UI-Tests und verwendet KI-Technologie, um Selbstheilung auf Tests anzuwenden die aufgrund von Änderungen in Locators oder Wartebedingungen defekt sind.