Web Test Tutorial - Teil 1
Inhaltsverzeichnis
Vorbedingungen[Bearbeiten]
- Ist der Selenium WebDriver installiert? Infos dazu: "Selenium WebDriver Plugin Dokumentation"
- Ist der Firefox installiert? Alternativ funktionieren auch Chrome und Safari.
- Internetverbindung vorhanden?
- expecco starten
- Auswahl "New Testsuite"
- Rückgängig-Button um die automatisch angelegten Demo Bausteine zu entfernen
Aufbau einer Verbindung[Bearbeiten]
- Öffnen des Gui-Browsers
- Verbinden mit der Test-Webseite, URL:
expeccoalm-demo.exept.de
- Danach hat sich im Hintergrund ein Firefox-Fenster geöffnet, und die Struktur der Webseite wird im GUI-Browser angezeigt:
Erste Schritte mit dem Recorder[Bearbeiten]
- Recorder starten
Der Rekorder zeigt die aktuelle Webseite in einem separaten Fenster:
Aufnehmen einer Login-Sequenz[Bearbeiten]
- Modus umschalten. Der Modus bestimmt, was mit dem Element unter dem Cursor (im Rekorder) passieren soll. Voreingestellt ist "Auto" was i.d.R. als "Klick" aufgenommen wird. Hier soll Text eingegeben werden:
- Einfügen von Text (Klick auf das Eingabefeld in der Webseite):
- Passwort einfügen:
- Submit-Button betätigen (Modus vorher wieder auf "Auto" schalten, damit als "Klick" aufgenommen wird):
Aufgenommene Sequenz in Baustein umwandeln[Bearbeiten]
Der Rekorder hat die Interaktion zunächst als Sequenz von Aktionsschritten aufgezeichnet (im sog. "Workspace"). Beachten Sie, daß diese im Workspace beliebig geändert werden kann: Sie können Schritte löschen, Parameter ändern, oder mit Copy-Paste, weitere Schritte in die Sequenz einfügen, ohne dazu den Browser zu bedienen). Wenn die Sequenz Ihren Vorstellungen entspricht, wird diese unter einem aussagekräftigen Namen in der Testsuite als Aktionsbaustein abgelegt. Drücken Sie dazu den "Sichern-als-Baustein" Knopf oben rechts:
und geben einen Namen ein (hier "Login"):
Jetzt steht die Login-Sequenz als "Login" Baustein zur Ausführung (und Wiederverwendung) im Projekt zur Verfügung. Sie können die Sequenz auch jetzt noch jederzeit anpassen, parametrisieren oder erweitern. Und natürlich auch als Baustein in anderen Sequenzen wiederverwenden.
GuiBrowser verlassen[Bearbeiten]
Verlassen Sie jetzt den GUI-Browser, und wechseln zur Baumansicht des Projekts. Dort finden Sie den gerade aufgezeichneten Baustein unter dem Namen "Login":
Auf der rechten Seite befinden sich mehrere Reiter, die wiederum verschiedene Aspekte des angewählten Aktionsbausteins zeigen: die "Außensicht" der Aktion wird als sog. "Schema" gezeigt, der "Netzwerk"- bzw. "Network" -Reiter zeigt die "Innenansicht" (also die von der Aktion ausgeführte Sequenz von Einzelschritten). Die anderen Reiter werden später eine Rolle spielen.
Aufgezeichnete Sequenz nachbearbeiten[Bearbeiten]
- Den Reiter "Netzwerk" (bzw. "Network") anwählen.
Die Schritte der aufgezeichneten "Login" Aktion können in diesem Editor jetzt (nach-) bearbeitet werden.
Typischerweise werden hier weitere Schritte hinzugefügt (z.B. zum Verifizieren von Werten) oder die zuvor aufgezeichneten Werte von Eingabefeldern werden parametrisiert.
Hier soll zunächst ein weiterer Schritt an den Anfang der Sequenz eingefügt werden, der dann (zur Ausführung) den Browser starten, und das Browserfenster öffnen wird.
"Start Connection"-Schritt einfügen[Bearbeiten]
Zum Einfügen eines Schrittes gibt es mehrere Möglichkeiten:
- Drag&Drop aus dem Navigationsbaum,
- Copy-Paste einer Aktion aus dem Navigationsbaum oder eines Schrittes aus einem Netzwerk,
- über eine Auswahlliste, welche mit dem Menueintrag "Neuer Schritt" (bzw. "New Step") des Menus der rechten Maustaste erscheint.
Hier wird die Menufunktion angewählt:
und im Dialog der "Reuse or Start Connection" Baustein ausgewählt.
Dazu etwas Hintergrundinformation:
die Selenium-Bibliothek bietet mehrere Bausteine zum Aufbau von Verbindungen zu Browsern an:
- "Start Connection" öffnet immer einen neuen Browser,
- "Reuse or Start Connection" wird eine bereits bestehende Browserverbindung nutzen, aber bei Bedarf einen neuen Browser öffnen.
Letzterer ist zu empfehlen, wenn Ihr Test nicht unbedingt davon abhängt, auf einem gerade neu gestarteten Browser zu laufen, was i.A. der Fall ist. Lediglich Tests, welche von Cookies, Browser-Historie (bzw. deren nicht-Vorhandensein) abhängen, werden den "Start Connection" Baustein nutzen um sicher einen "jungfräulichen" Browser zu erhalten. Selbstverständlich werden die Testsequenzen später schneller ablaufen, wenn nicht für jeden Einzeltest ein neuer Browser geöffnet wird.
dazu dienen der Textfilter im oberen Teil des Dialogs, sowie die zusätzlichen Filter, mit denen die Suche weiter eingeschränkt werden kann. Nach der Eingabe eines Teils des Names (hier "reuse") erscheint:
Zu Anfang werden Sie u.U. noch suchen müssen, da die Namen und Funktionen der Bausteine noch unbekannt sind. Die Bausteine haben aber i.d.R. selbsterklärende Namen und sind mit zusätzlichen Etiketten (Tags) markiert, die in der Suche ebenfalls betrachtet werden. Sie würden den Baustein also auch unter "connect", "start", "session" oder "selenium" finden. Außerdem sind sie im Navigationsbaum in Ordnern nach Funktionen organisiert (die obigen Bausteine findet man im "Sessions" Ordner).
Es ist aber empfehlenswert, sich etwas Zeit zu nehmen, um die Bausteine der Bibliotheken bzw. deren Einteilung in Gruppen zu erforschen.
Nachdem der Dialog mit "OK" Bestätigt wird, erscheint die Aktion als neuer Schritt unter dem Mauszeiger:
Schritte verschieben und neu anordnen[Bearbeiten]
Die Ausführungsreihenfolge innerhalb einer Sequenz wird durch Verbindungen von Pins gesteuert. Die Platzierung auf der Seite spielt also eigentlich keine Rolle. Dennoch sollten Sie unbedingt darauf achten, daß die Diagramme übersichtlich bleiben und die Reihenfolge von oben nach unten bzw. von links nach rechts der Ausführungslogik entspricht. Dann werden die Diagramme auch später von Ihnen und anderen leicht verstanden.
Daher werden wir den neuen Schritt oben an die Sequenz anfügen.
Die zuvor aufgezeichneten Schritte werden zuerst angewählt und dann nach unten verschoben.
Die Auswahl erfolgt entweder mit Klick+Control-Click (einzeln auswählen), mit Klick+Shift-Klick (ersten und letzten auswählen), oder durch Einfangen mit einem "Lasso" durch Klick+Halten auf Hintergrund, dann Rechteck aufziehen (alle im Rechteck auswählen). Es gibt auch entsprechende Tastenkombinationen, wie Ctrl-e
oder Ctrl-a
.
Die angewählten Schritte werden entweder durch Ziehen mit der Maus, oder mit den Cursortasten verschoben.
Trigger Eingangs- und Ausgangspins hinzufügen[Bearbeiten]
Wie bereits erwähnt wird die Ausführungsreihenfolge der Schritte durch Verbindungen gesteuert. Dazu gibt es einerseits Datenverbindungen als auch Kontrollverbindungen. Über erstere werden Resultate, Messwerte, Eingangswerte usw. von einem Ausgang zu einem anderen Eingang übermittelt. Letztere steuern den Kontrollfluß und werden von Trigger-Ausgang zu Trigger-Eingang gezogen.
Datenein- und ausgänge werden im Schema des Bausteins definiert und finden sich an den platzierten Schritten links bzw. rechts.
Triggerein- und ausgänge müssen explizit angelegt werden und finden sich oben bzw. unten am Schritt.
- Fügen Sie TriggerInput zu erstem "Send Keys" Schritt hinzu
Dazu den Schritt anwählen, und im Toolbar-Menu "Triggereingang hinzufügen" anklicken:
(oops: im obigen Screenshot hat der Schritt diesen Pin bereits!)
der Triggereingang wird jetzt oben am Schritt erscheinen:
analog dazu geben sie nun dem "Reuse or Start Connection"-Schritt einen Triggerausgang und verbinden sie diese beiden (Klick auf Pin, dann ziehen zum Partnerpin).
Der benötigte Partnerpin wird aber auch automatisch angelegt, wenn sie einfach von einem Triggerpin eine Verbindung zur unteren bzw. oberen Hälfte des Partnerschritts ziehen. Es ist also nicht notwendig, den Triggerausgang zuerst anzulegen.
Als dritte Variante können sie auch zwei Schritte anwählen, und die Toolbar-Funktion "Sequentielle Ausführung" anklicken. Dann werden die benötigten Pins sowie Verbindung(en) automatisch angelegt (sie können so gleich eine ganze Kette von neuen Schritten verbinden).
Nach dem Anlegen und Verbinden der Triggeraus- und eingänge, sollte das Diagramm in etwa so aussehen:
Eingangspins mit Parametern versorgen[Bearbeiten]
Im Diagramm sieht man ein rotes Ausrufezeichen rechts neben dem ersten Schritt. Dieser zeigt an, daß der Schritt noch Eingangswerte benötigt, und im aktuellenZustand so nicht lauffähig wäre. In der Tat benötigt der "Reuse or Start Connection" noch drei Parameterwerte:
- "name"
der Name der Browserverbindung. Diese ist in diesem Beispiel nicht relevant. Mit diesem wird der anzusprechende Browser bestimmt, wenn mehrere Browserverbindungen parallel bestehen. - "startURL"
die Webseite, welche der Browser initial anzeigen soll. - "browserType"
Auswahl des zu öffnenden Browsers ("Firefox", "Internet Explorer", "Opera", etc,)
Geben Sie den Pins des "Reuse or Start Session" Bausteins durch Doppelklick auf die Pins folgende Werte:
- name: z.B.
"expeccoalm-demo"
oder "http://expeccoalm-demo.exept.de
" (beliebiger Name kann hier eingegeben werden) - startURL: "
http://expeccoalm-demo.exept.de
" (URL unserer Demo-Seite) - browserType: "
firefox
" (im Dropdown auswählen)
Die Werte werden als "Vorbelegung" (engl. "Freeze Values") neben den Pins angezeigt:
Aktionsbaustein ausführen[Bearbeiten]
- Drücken Sie "Ausführen" (der Grüne Pfeil)
die Sequenz der "Login"-Aktion wird jetzt ausgeführt. Rechts wird (automatisch) der Reiter "Lauf" (engl. "Run") angezeigt. Hier kann die Ausführung verfolgt werden: aktuell ausgeführte Aktionen erscheinen in Hellgrün, beendete Schritte in Grün, Rot oder Grau, abhängig von Erfolg/Nichterfolg der Ausführung (Schritte welche abgebrochen oder nicht ausgeführt wurden, werden Grau dargestellt).
Sie können schon während der Ausführung die angezeigte Aktion im sog. "Aktivitätslog" (engl. "Activitylog") neu auswählen und/oder einzelne Pinwerte inspizieren. Über dem Auswahlbaums finden sich mehrere nützliche Toolbarknöpfe, um z.B. zu Fehlern zu navigieren, oder die automatische Verfolgung ("Animation") einzuschalten.
Während der Ausführung sind die Aktionen auch im Browser sichtbar:
Nach einer erfolgreichen Ausführung sollte jetzt folgendes (grünes) Bild erscheinen:
Die Informationen dieses Laufs bleiben in expecco erhalten, bis die Aktion erneut ausgeführt wird. Sie können also zu anderen Editoren oder dem GUI-Browser navigieren, neue Schritte aufzeichnen oder andere Änderungen vornehmen, und später zum Lauf zurückkehren.
Es ist auch möglich, die Daten des Laufs in eine Datei zu sichern,
und diese später erneut laden um weiter zu analsysieren.
Überprüfen von Datenfeldern[Bearbeiten]
Die oben angelegte "Login"-Aktion hat lediglich eine Webseite geöffnet und Nutzereingaben simuliert. Im Folgenden sollen angezeigte Werte des Browsers ausgelesen und verifiziert werden.
- Überprüfung: ist es die richtige Seite?
- Öffnen Sie den Tab "Gui Browser"
- Pfad (Xpath) mit auslesen:
- Im Recorder das Element mit der Maus hovern (überfliegen)
- Elternelement vom Text auswählen
- AktionsbausteinGet Text vorbereiten
- Im Tab Aktionen Elements aufklappen
- Aktionsbaustein "Get Text" auswählen und im Tab "Test" kopieren
- Wechseln zum Aktionsbaustein "Login", dort den kopierten Aktionsbaustein einfügen
- Aktionsbaustein um Überprüfen auf Gleichheit einfügen [ Assert Equals ]
Test ausführen[Bearbeiten]
- Klicken Sie auf das grüne "Play"-Symbol
- Testlauf detailiert ansehen
- Testsuite abspeichern
Abfrage von Eigenschaften von Elementen[Bearbeiten]
- Properties
- GUI-Browser öffnen
- Objekt Projektfilter-input für Anzeige des Elements im Seiten-Baum im GUI-Browser hovern
- Beliebiges Element und Eigenschaft die überprüft werden sollen auswählen
- Aktionsbaustein "Check Attribute" auswählen
- Aktionsbaustein einfügen und verbinden
- Test ausführen (siehe oben)
- Wichtig ist hierbei, dass die Test-Umgebung (der Browser) vor jeder Testausführung wieder auf die Startseite zurückgesetzt wird(siehe auch nächster Schritt). Alternativ kann man den Browser auch einfach schließen.
- Ferngesteuerten Browser schließen
- Test ausführen
Beenden der Session nach jedem Test[Bearbeiten]
- Neuen Aktionsbaustein einfügen
- Änderungen am Aktionsbaustein SessionBeenden übernehmen
- Aktionsbaustein Login Bearbeiten im Tab "Schema" mittels Drag and Drop in das Feld "Nach Ausführung" ziehen
- Jetzt kann der Test beliebig oft hintereinander ausgeführt werden, ohne dass der Browser jedes mal geschlossen werden muss, da dies nun expecco übernimmt