Ich habe versucht, ein paar Grundlegendes und einige nützliche Dinge zusammenzustellen, die ich sehr hilfreich fand, als ich Geb aufnahm.
Einige Groovy Magic . Vor allem, dass Sie Groovy lernen müssen, wird in diesem Handbuch behandelt, aber aus offensichtlichen Gründen, wenn Sie von der Sprache besessen sind, die Sie vielleicht als
Ein kleines Selen. Je mehr, desto besser, aber keine Angst, diese einzelne Seite gibt Ihnen alles, was Sie über den Selenium-Webdriver wissen müssen würde im Allgemeinen verwenden. Aber um zu betonen, je mehr desto besser.
jQuery-Selektoren (jeder sagt, dass es einfach ist, aber ehrlich gesagt, ich verweise auf das Handbuch mindestens zweimal pro Stunde. Ich bin dumm, also ...). Wenn Sie mit jQuery noch nicht vertraut sind, sollten Sie mit grundlegenden Selektoren beginnen und auf die Schaltfläche klicken Linkes Navigationsmenü für mehr. Bitte beachten Sie, dass nicht alle jQuery-Selektoren für Geb anwendbar sind, aber die Selektoren-Sektion von Geb-Tutorial war nicht sehr erschöpfend und ansprechend.
Am Ende meiner Testfälle muss ich einen fantasievollen Bericht erstellen, der sich über mehrere Testfälle erstreckt und Abhängigkeiten zwischen Testfällen aufweist. Also ging ich für TestNG anstelle von Spock. Ehrlich gesagt, gab ich Spock keine große Chance.
PageObjects ist eigentlich keine Voraussetzung für Geb, aber PageObjects sind so großartig, dass Sie es nie tun Ich wollte über Geb außerhalb davon nachdenken. PageObjects ist ein niedliches kleines Muster, das besagt, dass Sie die Struktur Ihrer HTML-Seite in ein Objekt einbinden, damit der eigentliche Test nicht damit umgehen muss. Hah. Hab dich. Lassen Sie mich das einfach auf Englisch sagen.
Sagen Sie, Sie haben ein Registrierungsformular mit Eingabefeld, das die ID "namestext" hat. Wie würdest du den Griff der Textbox bekommen? In DOM-Begriffen würden Sie in Javascript einfach ein
tun %Vor%In Selen würden Sie eine sehr ähnliche Sache machen
%Vor% Also, wenn Sie Jason
in Ihrem Textfeld in Selenium auffüllen möchten, würden Sie a
Wenn Sie das für alle Ihre Eingabefelder tun, werden Ihre Testfälle sehr bald hässlich und hasserfüllt. Stattdessen kapseln Sie in OO-Bedingungen. Sie erstellen eine neue Klasse, sagen Sie RegistrationPage
und wickeln Sie Ihre findElement
und sendKeys
wie in:
und aus Ihrem Testfall würden Sie sagen
%Vor%(Noch besser ist es, die Eingabewerte in eine Klasse zu packen und an die fillRegistrationForm zu übergeben)
Tatsächlich nutzt Geb PageObjects in einer viel besseren Weise - jQuery-Selektoren für die Rettung
%Vor%und in Ihrem Testfall würden Sie einfach
sagen %Vor%Tags und Links testing spock groovy automated-tests geb