Automatische Webtests mit Ruby, Capybara und Selenium

Dieses Tutorial konzentriert sich darauf, Ihnen zu zeigen, wie sie erstellt werden können Projekte zum automatischen Testen von Webseiten, hat eine oberflächliche Erklärung mit einem Testbeispiel auf der YouTube-Seite. Sie müssen grundlegende Kenntnisse über Ruby haben, um es gut zu verstehen.

NotizDieser Test wurde in Ubuntu 15.10 gestartet, daher empfehle ich die Verwendung von Linux für die Ausführung, ich gebe jedoch an, wie die Programme in Windows installiert werden.

1. Erforderliche Anforderungen installieren


Wir brauchen Ruby und seine Edelsteine ​​(Wenn Sie einen Mac verwenden, haben Sie es bereits installiert).

Ruby unter Windows installieren
Um das Installationsprogramm herunterzuladen, klicken Sie auf die folgende Schaltfläche:

RUBY FÜR WINDOWS HERUNTERLADEN

Zuerst laden wir R . herunter und installieren esuby-Installationsprogramm, (stellen Sie bei der Installation sicher, dass Sie die Option zum Hinzufügen von Ruby zum Windows-PFAD aktivieren), dann die Entwicklungs-Kit, extrahieren Sie den Inhalt auf Datenträger C in einen Ordner, den Sie erstellen müssen. Ich nenne es Devkit, aber Sie können es beliebig nennen (siehe folgendes Bild).

Öffnen Sie nun das Windows-cmd und Führen Sie die folgenden Anweisungen aus:

 chdir C: \ Devkitruby dk.rb initruby dk.rb install

Ruby-Installation unter Linux
In den neuesten Versionen haben wir Ruby bereits installiert, aber nur für den Fall, dass Du musst rennen:

 sudo apt-get install rubysudo apt-get install rubygems
[color = # a9a9a9] Ruby-Installation [/color]

Installieren Sie die restlichen erforderlichen Programme (gültig für alle Betriebssysteme)
Brauchen Gurke installieren, ein Testtool, das uns bei der Durchführung von BDD hilft.

 Edelstein installieren Gurke
Wir brauchen auch Wasserschwein installieren, eine spezielle Sprache, die uns bei der Interaktion mit Webseiten hilft.
 Edelstein installieren Capybara
Und endlich musst du Selen installieren, ist ein Treiber für Capybara, verwendet die JavaScript-Engine des Browsers und ermöglicht uns visuell zu sehen, wie der Test bestanden wird.
 gem install selen-webdriver
Es ist irgendwie langsam.

2. Erstellen Sie das Projekt


Sobald wir alles installiert haben, werden wir die Struktur unseres Projekts erstellen.

Schritt 1
Lass uns einen Ordner erstellen, nennen wir ihn Testen-Selen. Dies ist der Ordner, der alle benötigten Dateien enthält, daher können wir ihn als Stammordner des Projekts betrachten.

Schritt 2
Im Ordner Testen-Selen (Stammordner) erstellen wir einen Ordner namens Merkmale. Diese enthält alles, was Sie zum Ausführen des Prozesses benötigen.

Schritt 3
Innerhalb des Features-Ordners erstellen wir 2 weitere Ordner (step_definitions Ja Unterstützung) und auch eine Datei namens test.feature.

Schritt 4
Innerhalb von step_definitions erstellen wir eine Ruby-Datei namens step_Youtube.rb. und jetzt erstellen wir im Support-Ordner eine weitere Ruby-Datei namens env.rb.

Schritt 5
Wir füllen die Datei test.feature aus, es wird in formaler Sprache (Gherkin) geschrieben, es definiert den Test, den wir in einer Sprache bestehen möchten, die von allen verstanden wird (Der Test selbst ist der Bühnenteil, der Rest ist eine Beschreibung) In. Sein Inhalt ist wie folgt:

 #language: is Charakteristik: Gehe zu youtube Als Tester möchte ich youtube eingeben um die Suche zu testen Um zu wissen ob alles gut funktioniert Szenario: youtube testen Da ich auf der youtube-Seite bin Wenn ich nach "Metallica One" suche Dann kann ich eingeben und sehen Sie sich das Video "https://www.youtube.com/watch?v=iT6vqeL-ysI" an.
Im Bühnenteil können wir keine Akzente oder seltsamen Zeichen verwenden, und die Variablen sind in doppelte Anführungszeichen eingeschlossen (es sind die Daten, die an unseren Ruby-Code übergeben werden).

Schritt 6
Die Datei step_Youtube.rb ist an der Reihe, Es ist der Ruby-Code, der unsere Tests bestehen wird. Schauen Sie sich den Code an, der (Gegeben, Wann, So) hat, jede Funktion verweist auf eine Zeile, diejenigen, die zuvor "Variablen" hatten, erhalten Parameter (1 für jede Variable in der .feature ) , dafür ist es notwendig, reguläre Ausdrücke zu verwenden. Unter dem Code.

 Seit / bin ich auf der youtube-Seite $ / besuche 'https://www.youtube.com/?hl=de&gl=DE' end When (/ suche ich nach "([^"] *) "$ / ) do | search | fill_in 'search_query',: with => search click_button 'Search' end Dann (/ kann ich das Video eingeben und ansehen "([^"] *) "$ /) do | video | Ergebnisse = alle ('a').map {|a | a ['href']} wenn nicht results.include? (Video) erhöhen "Video nicht gefunden" beenden Besuch (Video) beenden
In diesem Code, in der zweiten Funktion, sehen Sie search_query, dieser Name, den ich nicht erfunden habe, ist das Namensattribut, das das Youtube-Suchfeld hat.

Die Anleitung: Ergebnisse = alle ('a').map {|a | ein ['href']}Was es tut, ist eine Liste aller Elemente a auf der Seite zu erhalten, und aus dieser Liste holt es sich die Werte der href-Attribute, speichert sie in der Ergebnisvariablen, und auf diese Weise können wir sehen, ob das Web wir wollen zu besuchen ist auf der Seite. In diesem Beispiel hängt es davon ab, ob das Lied auf der ersten Seite erscheint, also wenn der Test nicht erscheint, wird es rot und wenn nicht alles grün, zeige ich ein Bild bei das Ende der Ausgabe).

Schritt 7
Wir werden die letzte env.rb-Datei ausfüllen, es ist eine Konfigurationsdatei, die die zu verwendende Sprache, die Treiber usw. In diesem Fall verwenden wir Capybara und Selenium.

 require 'capybara' require 'capybara / dsl' Capybara.default_driver =: Selenium Modul Helfer def ohne_resynchronize page.driver.options [: resynchronize] = false Ausbeute page.driver.options [: resynchronize] = true end World (Capybara :: DSL, Helfer)
Hier hast du den Code.

3. Führen Sie das Projekt aus


Es ist Zeit zu führe unser Projekt durch Youtube zu testen.

Schritt 1
Wir öffnen ein Terminal oder cmd und gehen in den Testing-Selenium-Ordner, in dem sich alle unsere zuvor erstellten Projekte befinden.

Schritt 2
Wir schreiben Gurke und wir geben Enter, sucht Cucumber im Features-Ordner nach den .feature-Dateien (in diesem Fall gibt es nur 1) und den Schritten (Ruby-Dateien) dieser .features. Wenn es richtig ist, sehen wir, wie sich der Browser öffnet und mit der Ausführung der Tests beginnt. Wenn Sie die Ruby-Funktionen nicht definiert haben, wird ein Bildschirm angezeigt, der anzeigt, dass die Schritte nicht definiert sind, wie in der folgenden Abbildung:

Wenn alles richtig läuft, erhalten Sie am Ende einen Bildschirm wie den folgenden:

NotizWenn es Ihnen eine Warnung ausgibt und keine Farbe in Windows malt, besuchen Sie dieses Repository.

Wenn Sie einen schnelleren Test wünschen, benötigen Sie einen Browser ohne grafische Oberfläche (Phantomjs) und Poltergeist, der ein Treiber für Capybara (wie Selenium) ist, aber mit Phantomjs verbunden ist.

  • Poltergeist installieren:
     Edelstein installieren Poltergeist
  • Phantomjs installieren:
     Edelstein installieren Phantomjs

Falls Sie das gesamte Projekt herunterladen möchten, hänge ich eine Zip-Datei an (Denken Sie daran, dass der Test in Ubuntu bestanden wurde):

Testing-Selenium.zip 1.71K 167 Downloads

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave