Expecco web de

Aus ExpeccoWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einführung

expecco web ist eine Erweiterung die in allen Ausführungen von expecco zur Verfügung steht um die Qualität von Webanwendungen über den gesamten Lebenszyklus sicher zu stellen. Durch die Integration der Selenium IDE in expecco web werden die Stärken eines capture&replay-Tools mit der modellbasierten Testentwicklung vereint. Neue Testszenarien können über Selenium IDE aufgezeichnet werden und dann sehr einfach über ein umfangreiches Angebot von Bausteinen funktional erweitert werden. (Link zur Standardbibliothek).

Mit expecco web können natürlich auch allgemeine Automatisierungsaufgaben im Internet, wie bspw. das immer wiederkehrende Ausfüllen eines Formulars, usw. durchgeführt werden.

Lernen Sie in nur 2 Minuten expecco web und die modellbasierte Testentwicklung in unserem Kurzfilm kennen.
http://www.exept.de/de/products/expecco/web/shortmovie

expecco web

Auszug Features

  • Modellbasierte Testentwicklung kombiniert mit capture & replay
  • Abspielen von Webszenarien mit allen gängigen javascript-fähigen Browsern
  • Aufzeichnen von Webszenarien mit Mozilla Firefox
    • Einfache Erstellung eigener Bausteine
  • Einfache Webformular-Parametrisierung mit Erstellung einer CSV-Vorlage
  • Kombination des Weboberflächentests mit anderen Systemen, Messgeräten, Sensor- und Datenbankabfragen etc.
  • Neuaufzeichnung von Teilszenarien (ohne Notwendigkeit einer Gesamtneuaufzeichnung)
  • Hohe Wiederverwendbarkeit durch das Arbeiten mit Bausteinen (z.B. Loginvorgang, Bestellvorgang etc.)
  • Zeitliche Auswertung von Testszenarien
  • Möglichkeit von Last- und Performancetests

Weitere Features und Vergleich der Editionen von expecco:
http://www.exept.de/de/products/expecco/features

Selenium IDE

Die Selenium IDE ist eine Erweiterung für den Mozilla Firefox Browser. Aufzeichnungen können somit sehr einfach über Firefox vorgenommen werden. Beim Abspielen der Szenarien werden alle gängigen Browser wie beispielsweise Internet Explorer, Firefox, etc. unterstützt.

Neben der umfangreichen Standardbibliothek von expecco sind auch alle Kommandos der Selenium IDE in expecco web als Bausteine vorhanden und können somit dazu verwendet werden Testszenarien und Automatisierungsaufgaben schnell und einfach zu erstellen oder Aufzeichnungen zu erweitern.

Es wird zwischen den folgenden Kommando-Typen in der Selenium IDE unterschieden

  • Is - Kommandos beginnend mit "Is" liefern als Rückgabewert TRUE oder FALSE zurück. Beispiel: isTextPresent
  • Get - Kommandos beginnend mit "Get" liefern als Rückgabewert einen STRING mit dem entsprechenden Wert zurück. Beispiel: getTitle
  • Assertion - Kommandos beginnend mit "Assert" erzeugen einen Fehler im Negativfall der zum Abbruch des Tests führt. Beispiel: assertElementHeight
  • Verification - Kommandos beginnend mit "Verify" erzeugen einen Logeintrag im Negativfall. Der Test wird weiter ausgeführt. Beispiel: verifyHtmlSource

Für alle Is/Get Kommandos gibt es entsprechende Assert/Verify Kommandos.

Beispieldokumentation eines Selenium IDE Bausteins:
isChecked
Gets whether a toggle-button (checkbox/radio) is checked. Fails if the specified element doesn't exist or isn't a toggle-button.
locator: an element locator pointing to a checkbox or radio button

expecco web in Verbindung mit der Selenium IDE bietet umfangreichste Möglichkeiten Webtests zu definieren und auf Seiten-Informationen wie Elemente, Texte oder auch den HTML-Quellcode zuzugreifen. Alle Bausteine, auch die der Selenium IDE, sind in expecco dokumentiert (siehe Reiter "Dokumentation").

Weitere Informationen zur Selenium IDE unter http://selenium-ide.openqa.org.

Erste Schritte

Aufzeichnung starten

Selenium IDE: Record mode
  • Menü: Extras ► Plugins ► Webtest ► Aufzeichnung starten ... ( oder klicken Sie auf die Schaltfläche Icon Start Selenium Capture.PNG ).
  • Automatisch startet Firefox mit Selenium IDE
    • Die Selenium IDE kann auch manuell gestartet werden. Klicken Sie im Firefox auf Ansicht ► Sidebar ► Selenium IDE oder um die Selenium IDE als eigenständiges Fenster zu öffnen auf Extras ► Selenium IDE
  • Nach dem Start ist bereits automatisch der Record Mode aktiviert (roter Record-Button)
  • Alle Interaktionen mit der Webseite werden nun aufgezeichnet
  • Mit der rechten Maustaste haben Sie über ein Kontextmenü Zugriff auf spezielle Kommandos für ein entsprechendes Element
  • Im Selenium IDE Fenster erfolgt die Protokollierung der Aktionen
    • Änderungen können Sie auch schon hier vornehmen
    • Einfügen manueller Aktionen möglich
  • Ist das gewünschte Szenario durchgeführt, beenden Sie die Aufzeichnung durch Drücken des roten Record-Buttons
  • Über den folgenden Button übertragen Sie die Aufzeichnung nach expecco expecco button
    • Alternativ kann eine Aufzeichnung auch manuell übertragen werden
  • Geben Sie im Dialogfenster einen Namen für die Aufzeichnung ein
  • Die Aufzeichnung ist nun in expecco als neuer Baustein mit dem entsprechenden Namen unten im Navigationsbaum zu finden
  • Durch ein Klick auf den Baustein wird dieser im Arbeitsbereich geöffnet
  • Im Reiter "Netzwerk" sind nun die einzelnen Schritte der Aufzeichnung zu sehen
  • Im Reiter "Test" können Sie über den folgenden Button den Test direkt starten Start or Resume Testrun

Schritte refakturieren

expecco web: create new compound
expecco web: create new compound

Logisch zusammen gehörende Schritte wie beispielsweise der Login, das Ausfüllen von Formularen, etc. können zu einem neuen Baustein zusammengefasst werden. Die Testabläufe werden dadurch übersichtlicher und die zusammengefassten Bausteine können besser wiederverwendet werden.

  • Wählen Sie den Reiter "Netzwerk" aus
  • Markieren Sie die Schritte die zusammengefasst werden sollen über ein Auswahlrechteck mit der Maus
  • Durch Klicken der rechten Maustaste auf einen der ausgewählten Schritte erscheint das Kontextmenü für die Auswahl
    Kontextmenü: Operationen ► Neuen zusammengesetzten Baustein generieren...
  • Geben Sie im folgenden Dialogfenster einen Namen für den neuen zusammengesetzten Baustein ein
  • Im aktuellen Aktivitätsdiagramm ist nun der neue zusammengesetzte Baustein als Schritt zu sehen
  • Im Navigationsbaum ist der neue zusammengesetzte Baustein enthalten
  • Diesen Baustein können Sie nun an unterschiedlichen Stellen verwenden
  • Änderungen an diesem Baustein müssen dann nur einmal vorgenommen werden und sind in allen Aktivitätsdiagrammen, in denen der Baustein als Schritt verwendet wird, gültig

Aufzeichnungen funktional erweitern

Aufzeichnungen lassen sich einfach mit Bausteinen aus der mitgelieferten StandardLibary erweitern.

  • Klappen Sie im Navigationsbereich die Elemente Imports ► StandardLibary aus
  • Wählen Sie eine der Gruppen aus um Zugriff auf die Bausteine zu erhalten
  • Alternativ wählen Sie im Navigationsbereich den Reiter "Search" aus und geben Sie einen Suchbegriff ein
  • Selektieren Sie nun das Aktivitätsdiagramm (z.B. eines zusammengesetzten Bausteins) aus in das Sie den Baustein einfügen wollen
  • Ziehen Sie den gewünschten Baustein per Drag&Drop aus dem Navigationsbereich in das Aktivitätsdiagramm
  • Dann belegen Sie je nach Baustein die Parameter-Pins und/oder verbinden Sie Trigger-Pins mit anderen Bausteinen
  • Dabei müssen Sie darauf achten, dass die Datentypen übereinstimmen oder Sie gegebenenfalls umwandeln

Fehler-Log Bausteine einbauen

  • Zeichnen Sie ein beliebiges Szenario auf
  • Rechtsklicken Sie an einer Stelle auf ein Textelement einer Website
  • Kontextmenü: verifyTextPresent <Name des angeklickten Elements>
  • Exportieren Sie die Aufzeichnung nach expecco
  • Rechtsklicken Sie auf den Schritt "verifyTextPresent"
  • Kontextmenü: Operationen ► Ersetzen durch... ► Bausteine mit selber Anzahl Pins... ► Alle Bausteine... ► isTextPresent
  • Klappen Sie im Navigationsbereich die Elemente Imports ► StandardLibary ► Assertions, Exceptions & Logging aus
  • Ziehen Sie den Baustein "Log[Failure]" in das Aktivitätsdiagramm des Tests
  • Alternativ wählen Sie im Navigationsbereich den Reiter "Search" aus und geben Sie den Name des Bausteins als Suchbegriff ein
  • Rechtsklicken Sie auf den "isTextPresent"-Schritt
  • Kontextmenü: Spezielle Pins... ► Trigger-Eingang
  • Verbinden sie den "triggerNo"-Ausgang mit dem gerade erstellten Trigger-Eingang
  • Doppelklicken Sie auf den "errorMessage"-Eingang und geben Sie eine Fehlermeldung ein

Wird der Test nun ausgeführt und das ausgewählte Textelement erscheint nicht, dann wird der Test mit einem Fehler abgebrochen. Analog können auch Warnungen ausgegeben werden, die den Test nicht abbrechen.

Spezielle Aufgaben

Webformulare ausfüllen über eine CSV-Datei

  • Wählen Sie den Reiter "Netzwerk" aus
  • Markieren Sie die Schritte, die das Ausfüllen des Webformulars umfassen inklusive Navigation zum Formular. Bedenken Sie, dass diese Schritte später für jeden Eintrag in der CSV-Datei ausgeführt werden. Zur Markierung stehen wie gewohnt folgende Möglichkeiten zur Verfügung
    • Maus: Ziehen eines Auswahlrechtecks
    • Tastatur: [Vorsicht: Aktuelle Überarbeitung der Shortcuts!]
  • Durch Klicken der rechten Maustaste auf einen der ausgewählten Schritte erscheint das Kontextmenü für die Auswahl
  • Kontextmenü: Operationen ► Neuen zusammengesetzten Web-Parameter-Baustein generieren...
  • Geben Sie im Dialogfenster einen Namen für den neuen Web-Parameter-Baustein ein
  • Bestätigen Sie den folgenden Dialog mit Ja, wenn Sie für die extrahierten Wertepaare des Webformulars eine CSV-Datei als Vorlage erstellen möchten. Im erscheinenden Dateibrowser wählen Sie den Speicherort der CSV-Datei aus
  • Klappen Sie im Navigationsbereich die Elemente Imports ► StandardLibary ► Files & Directories ► Files aus
  • Alternativ wählen Sie im Navigationsbereich den Reiter "Search" aus und geben Sie den Name des Bausteins als Suchbegriff ein
  • Ziehen Sie den Baustein "File [ReadCSV]" in das Aktivitätsdiagramm des Tests
  • Doppelklicken Sie auf den Eingang "CSVFileOrStringCol" und geben Sie den Pfad und den Namen der zuvor gespeicherten CSV-Datei ein
  • Verbinden Sie den Ausgang "CSVLineValues" mit dem Eingang "optionalParameterSet" am erstellten Schritt

Benutzereingabe miteinbeziehen

  • Wählen Sie den Reiter "Aktivitätsdiagramm" aus
  • Klappen Sie im Navigationsbereich die Elemente Imports ► StandardLibary ► GUI-Dialogs aus
  • Ziehen Sie den Baustein "Dialog [Request String]" in das Aktivitätsdiagramm des Tests
  • Doppelklicken Sie auf den Eingang "requestLabel" und geben Sie eine Eingabeaufforderung an den Benutzer ein
  • Am Eingang "title" geben Sie einen Titel für die Dialogfenster ein
  • Verbinden Sie den Ausgang "answer" mit dem Eingang des Schrittes für den der abgefragte Wert verwendet werden soll
  • Rechtsklicken Sie auf diesen Eingang und wählen Sie im Kontextmenü "Nicht vorbelegen" aus
  • Rechtsklicken Sie erneut und entfernen Sie das Häkchen vor "Parameter"

Bekannte Probleme

click vs. clickAndWait
Die Selenium IDE zeichnet abhängig von Umständen während der Aufzeichnung (Übertragungsrate, Antwortzeit des Webservers) das Klicken eines Elements und folgendes Laden einer Seite manchmal als >click< und manchmal als >clickAndWait< auf. Deshalb sollte ein Test nach der Aufzeichnung durch (mehrmalige) Wiedergabe in der Selenium IDE verifiziert werden.
  • Fehlermöglichkeit 1:
    • Es wird das Kommando >click< aufgezeichnet, obwohl eine Seite nachgeladen wird. Da der Ladevorgang unterschiedlich lange dauern kann, bricht Selenium IDE beim Folgekommando ab, da dieses schon ausgeführt wird, obwohl die Seite noch nicht vollständig geladen wurde.
    • Behebung:
    Ersetzen Sie das Kommando >click< durch das Kommando >clickAndWait<.
  • Fehlermöglichkeit 2:
    • Es wird das Kommando >clickAndWait< aufgezeichnet, obwohl keine Seite nachgeladen wird. Dies führt zu einem Abbruch der Ausführung in der Selenium IDE nach der als Timeout spezifizierten Zeit, da auf das Laden einer neuen Seite gewartet wird, obwohl kein Ladevorgang erfolgt.
    • Behebung:
    Ersetzen Sie das Kommando >clickAndWait< durch das Kommando >click<
Aufzeichnen von Aktionen in Selenium IDE, während Seite noch geladen wird
  • Problem: Aktionen, die ausgeführt werden, solange eine Seite noch nicht ganz geladen ist, wird eventuell von der Selenium IDE nicht aufgezeichnet.
  • Beispiel: Klicken auf einen Link in einem (schon sichtbaren) Navigationsmenü, während die Seite noch geladen wird
  • Lösung: Führen Sie erst Aktionen auf der Seite aus, nachdem diese komplett geladen wurde. (Sichtbar in der Statusbar des Browsers)

Weitere Infos

Meine Werkzeuge