Automatischer Webtest mit Ruby, Capybara und Selen

Dieses Tutorial zeigt, wie Sie Projekte erstellen können, um Webseiten automatisch zu testen . Es enthält eine oberflächliche Erklärung mit einem Beispiel für das Testen der YouTube-Seite. Sie müssen Rubys Grundbegriffe haben, um es gut zu verstehen.

Hinweis
Dieser Test wurde in Ubuntu 15.10 veröffentlicht. Daher empfehle ich, Linux für die Ausführung zu verwenden. Ich habe jedoch angegeben, wie die Programme unter Windows installiert werden.

1. Installieren Sie die erforderlichen Voraussetzungen

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

Ruby unter Windows installieren

Um das Installationsprogramm herunterzuladen, klicken Sie auf die folgende Schaltfläche:

RUBIN FÜR WINDOWS HERUNTERLADEN

Zuerst laden wir das RUBY-Installationsprogramm herunter und installieren es (markieren Sie bei der Installation die Option zum Hinzufügen von Ruby zum Windows-Pfad). Anschließend extrahieren Sie den Inhalt des Entwicklungskits auf Festplatte C in einen Ordner, den Sie erstellen müssen. Ich bezeichne ihn als Devkit. Sie können es aber so nennen, wie Sie möchten (siehe nächstes Bild).

test1.jpg

Öffnen Sie nun den Windows-Befehl und führen Sie die folgenden Anweisungen aus :

 chdir C:  Devkitruby dk.rb initruby dk.rb installieren 

test2.jpg

Ruby unter Linux installieren

In den neuesten Versionen ist Ruby bereits installiert, aber nur für den Fall, dass Sie Folgendes ausführen müssen :

 sudo apt-get install rubysudo apt-get install rubygems 

[/color] [color = # a9a9a9] Installations-Ruby [/ color]

Installieren Sie den Rest der erforderlichen Programme (gültig für alle Betriebssysteme)

Wir müssen Cucumber installieren, ein Testtool , mit dem wir BDD durchführen können.

 Edelstein installieren Gurke 

Wir müssen auch Capybara installieren , eine spezielle Sprache, die uns bei der Interaktion mit Webseiten hilft.

 Edelstein installieren Capybara 

Und schließlich müssen Sie Selenium installieren , einen Treiber für Capybara, der die JavaScript-Engine des Browsers verwendet und uns ermöglicht, zu sehen, wie der Test auf visuelle Weise bestanden wird.

 gem install selenium-webdriver 

Es ist etwas langsam.

See also  Ermöglichen Sie mehreren Personen, das Zoom-Meeting gleichzeitig zu teilen

2. Erstellen Sie das Projekt

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

Schritt 1

Wir erstellen einen Ordner, nennen wir ihn Testing-Selen . Es wird der Ordner sein, der alle Dateien enthält, die wir benötigen. Daher können wir ihn als Stammordner des Projekts betrachten.

Schritt 2

Im Testing-Selenium- Ordner (Stammordner) erstellen wir einen Ordner mit dem Namen features . Dies enthält alles, was zur Ausführung des Prozesses erforderlich ist.

Schritt 3

Innerhalb der Ordnerfunktionen haben wir zwei weitere Ordner ( step_definitions und support ) sowie eine Datei namens test.feature erstellt .

Schritt 4

Innerhalb von step_definitions erstellen wir eine Ruby-Datei mit dem Namen step_Youtube.rb . Jetzt erstellen wir im Support-Ordner eine weitere Ruby-Datei mit dem Namen env.rb.

Schritt 5

Füllen Sie die Datei test.feature aus . Sie wird in der offiziellen Sprache ( Gherkin ) geschrieben. Sie definiert den Test, den wir bestehen möchten, in einer Sprache, die von allen verstanden wird. (Der Test selbst ist Teil des Szenarios, der Rest ist eine Beschreibung.) In. Sein Inhalt ist der folgende:

 #sprache: ist Feature: Gehen Sie zu YouTube Als Tester Ich möchte YouTube eingeben, um die Suche zu starten Zu wissen, ob alles gut funktioniert Szenario: Testen Sie YouTube Da bin ich auf der Youtube Seite Wenn ich nach "Metallica One" suche Dann kann ich das Video "https://www.youtube.com/watch?v=iT6vqeL-ysI" ansehen. 

Im Teil des Szenarios können wir keine Akzente oder seltsame Zeichen verwenden und die Variablen werden in doppelte Anführungszeichen gesetzt (dies sind die letzten Daten in unserem Ruby-Code).

Schritt 6

Die Datei step_Youtube.rb ist an der Reihe . Sie ist der Ruby-Code, der unsere Tests bestehen wird. Schauen Sie sich den Code an (Gegeben, Wann, Dann). Jede Funktion bezieht sich auf eine Zeile. Diejenigen, die zuvor “Variablen” hatten, erhalten Parameter (1) Für jede Variable in der .feature) ist es erforderlich, reguläre Ausdrücke zu verwenden. Als nächstes den Code.

 Vorausgesetzt, ich bin auf der Youtube-Seite $ / do Besuchen Sie 'https://www.youtube.com/?hl=de&gl=DE' ende Wenn (/ ^ Ich suche "([^"] *) "$ /) | suche | Füllen Sie 'search_query' ,: mit => search click_button 'Suche' ende Also (/ ^ Ich kann hineingehen und das Video "([^"] *) "$ /) do | video | anschauen results = all ('a'). map {| a | ein ['href'] wenn nicht Ergebnisse.einschließen? (Video) erhöhen "Das Video wurde nicht gefunden" ende Besuch (Video) ende 

In diesem Code, in der zweiten Funktion können Sie search_query sehen, dieser Name, den ich nicht erfunden habe, ist das Namensattribut, das das Suchfeld von Youtube hat.

See also  3 Möglichkeiten zum Bereinigen von Google Sheets-Daten

test3.jpg

Die Anweisung: results = all (‘a’). Map {| a | a [‘href’] zeichnet eine Liste aller Elemente a der Seite und extrahiert aus dieser Liste die Werte der href-Attribute, indem sie in der Ergebnisvariablen gespeichert werden. Auf diese Weise können wir feststellen, ob das Web dies tut wir wollen besuchen ist auf der Seite, in diesem Beispiel kommt es darauf an, ob der Song auf der ersten Seite rauskommt, wenn er also nicht rauskommt, wird der Test rot und wenn nicht alles in grün, werde ich am Ende der Ausgabe ein Bild zeigen).

Schritt 7

Wir füllen die letzte Datei env.rb aus , es handelt sich um eine Konfigurationsdatei, die die zu verwendende Sprache, die Treiber usw. angibt. In diesem Fall verwenden wir Capybara und Selen.

 benötigen "Capybara" erfordern 'capybara / dsl' Capybara.default_driver =: Selen Modul Helfer def without_resynchronize page.driver.options [: resynchronize] = false Ausbeute page.driver.options [: resynchronize] = true ende ende Welt (Capybara :: DSL, Helfer) 

Hier hast du den Code.

3. Führen Sie das Projekt aus

Es ist Zeit, unser Projekt zum Testen von Youtube durchzuführen.

Schritt 1

Wir öffnen ein Terminal oder einen Befehl und gehen in den Testing-Selenium-Ordner, in dem sich alle zuvor erstellten Projekte befinden.

Schritt 2

Wir schreiben Gurke und geben ein , Gurke wird in den Ordner-Features .feature-Dateien (in diesem Fall gibt es nur 1) und Schritten (Ruby-Dateien) dieser .features suchen. Wenn es korrekt ist, sehen wir, wie der Browser geöffnet wird und starten die Tests. Wenn Sie die Ruby-Funktionen nicht definiert haben, wird ein Bildschirm angezeigt, der angibt, dass die Schritte nicht definiert sind, wie in der folgenden Abbildung dargestellt:

See also  Wie erfahre ich, wie viel Speicherplatz die Programme in Windows 10, 8, 7 belegen?

test5_sinRB.jpg

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

test_exito.jpg

Hinweis
Wenn Sie eine Warnung erhalten und in Windows keine Farbe malen, besuchen Sie dieses Repository .

Wenn Sie schneller testen möchten, benötigen Sie einen Browser ohne grafische Benutzeroberfläche (Phantomjs) und Poltergeist, der ein Treiber für Capybara ist (wie Selenium), der sich jedoch mit Phantomjs verbindet.

  • Installieren Sie Poltergeist:
     Edelstein installieren Poltergeist 
  • Installieren Sie Phantomjs:
     Edelstein installieren Phantombilder 

Falls Sie das gesamte Projekt herunterladen möchten, werde ich eine Zip-Datei anhängen (denken Sie daran, dass der Test in Ubuntu bestanden wurde) :

Angehängte Datei 86 Descargas Testing-Selenium.zip 1,71K 86 Downloads

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *