Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

BLOG

Tipps und Tricks zum Testen von Salesforce Enterprise-Apps mit Selen

Tipps und Tricks zum Testen von Salesforce Enterprise-Apps mit Selen Lesezeit: 5 Minuten

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.

Herausforderungen beim Testen von Salesforce Enterprise Apps

Elementkennungen sind eine gängige Methode zum Auffinden und Automatisieren von Webseiteninteraktionen mit Selen. Die Annotation @FindBy in Selenium verfügt über ein einfaches Attribut id = "Something", mit dem ein Webelement anhand einer eindeutigen ID auf der Seite gefunden werden kann.

Atypische Elementkennungen

Elementkennungen in einer Salesforce-App sehen sehr seltsam aus: Beispiel: id = ”940: 1376; a”. Schlimmer noch, die Bezeichner ändern sich zwischen den Seitenbesuchen zufällig. Dies macht die Bezeichner für die Testautomatisierung unbrauchbar. Überlegen Sie, wie ein Selen-Test das finden sollte Element im folgenden Beispiel, wenn sich die ID bei jedem Testlauf ändert.

Atypische Elementkennungen

Tipps & Tricks

Das Element hat keine anderen eindeutig definierenden Attribute. Glücklicherweise entspricht Salesforce den neuesten Richtlinien für die Barrierefreiheit im Internet. WCAG-Abschnitt 1.3.1 über Informationen und Beziehungen schreibt vor, dass ein von Menschen lesbares Element im Code dem entsprechenden Element zugeordnet werden muss indem Sie das Attribut "for" des Labels mit dem Attribut "id" der Eingabe abgleichen. Die Elementkennung kann sich bei jedem Laden der Seite ändern, der Beschriftungstext sollte jedoch immer gleich sein.

In diesem Beispiel ist der Text "Firmenname" in einem with-Attribut für = "940: 1376; a" enthalten, das zufällig mit dem Bezeichner auf dem übereinstimmt Element. Ein Selenium-Test kann die Verbindung vom Beschriftungstext zum Eingabeelement mithilfe eines cleveren XPath herstellen: //input[@id=//label[normalize-space(.)='Company Name '] / @ for].

Dieser XPath findet keine Element auf der Seite mit einem "id" -Attribut, das dem "for" -Attribut eines angezeigten "Firmennamens" entspricht. Die XPath-Funktion "Normalize-Space (.)" Entfernt das zusätzliche Leerzeichen aus dem Text in diesem Beispiel, der in ein Element innerhalb des Elements eingeschlossen wird. Dadurch sieht der Selen-Test etwas komplizierter aus, aber die Arbeit wird erledigt.

Tipp zum Testen von Salesforce Enterprise Apps

Langsame Cloud-gehostete Unternehmensanwendungen

Trotz des Namens "Lightning" können die in der Cloud gehosteten Unternehmensanwendungen von Salesforce manchmal recht langsam sein. Testautomatisierungsingenieure sind mit den Herausforderungen vertraut, die mit Anwendungen verbunden sind, die möglicherweise nur 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.

Laden der Überlagerungsmaske

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.

Ausnahme aufgrund von Ladeüberlagerung

Tipps & Tricks

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.

Tipps zum Testen von Salesforce Enterprise-Apps

Speichern und Neuinitialisieren von Lightning-UI-Komponenten

Ein weiterer Dorn im Auge der UI-Testautomatisierung ist, dass Salesforce sich merkt, welche Lightning-UI-Komponenten zuletzt geöffnet waren, und den letzten bekannten Status bei der Anmeldung neu initialisiert. Dies bedeutet, dass sich das anfängliche Seitenlayout, das dem Test zur Verfügung steht, je nach gespeichertem Verlauf ändern kann.

Tipps & Tricks

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.

Tipps zum Testen von Salesforce Enterprise-Apps

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.

 

Vorteile des Testens von Salesforce Enterprise-Apps mit Selenium Automated UI Testing

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.

Verbessern Sie automatisierte Selenium-UI-Tests mit AI-Technologie

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. Weitere Informationen finden Sie in unserem On-Demand-Webinar und Laden Sie eine kostenlose Testversion herunter.

Verwenden Sie Automatisierung und KI, um Salesforce-Tests zu beschleunigen

Geschrieben von

Matt Liebe

Als Product Lead Engineer bei Parasoft verwaltet Matt die Entwicklung neuer Funktionen für das Umgebungsmanagement, API-Tests, Service-Virtualisierung und Testdatenmodellierung.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.