Hat Python etwas Ähnliches wie Capybara / Gurke?
Ruby hat diese tolle Abstraktionsschicht auf der Oberseite von Selen genannt Capybara, die Sie verwenden können, Funktions - /Annahme - /integration-Tests. Es hat auch eine andere Bibliothek namens Gurke, die geht noch einen Schritt weiter und können Sie tatsächlich einen Test schreiben in Englisch.
Beide Bibliotheken basieren auf der Selen, und kann verwendet werden, um zu testen, gegen alle großen browser, sondern wegen Ihrer Abstraktion-Layer es ist super einfach zu schreiben tests mit Ihnen (gut, so einfach wie die funktionale Prüfung wird mindestens).
Meine Frage ist: funktioniert die Python so etwas wie? Ich habe festgestellt Pythonistas tun funktionelle Tests mit verschiedenen tools, aber ...
A) Splitter: nicht mit Selen (und nicht mit einem DH-Fahrer)
-BEARBEITEN-
Es erscheint Spliter jetzt nicht verwenden, Selen (siehe Antworten unten).
B) Alfajor: wurde nicht aktualisiert, in über einem Jahr, sieht tot
C) Selen (raw): eine Menge Leute zu sein scheinen mit Selen direkt, aber wie es scheint, eine Abstraktions-Schicht, könnte es viel einfacher zu verwenden
So, weiß jemand etwas Capybara-like, oder noch besser, Gurken-wie für Python (es muss nicht wirklich verwenden, Selen, aber es braucht die Unterstützung aller gängigen Browser)?
* EDIT *
Für diejenigen, die nicht vertraut sind mit Capybara, es im Grunde nur fügt eine API, so dass statt des normalen Selen-API können Sie etwas wie das hier tun:
When /I sign in/ do
within("#session") do
fill_in 'Login', :with => '[email protected]'
fill_in 'Password', :with => 'password'
end
click_link 'Sign in'
end
Es Gurke, welche Euch weitere abstrakte (fast auf Englisch):
Scenario Outline: Add two numbers
Given I have entered <input_1> into the calculator
And I have entered <input_2> into the calculator
When I press <button>
Then the result should be <output> on the screen
Examples:
| input_1 | input_2 | button | output |
| 20 | 30 | add | 50 |
Ich würde gerne ein Python-Gurken-äquivalent, aber auch nur ein "Capybara" entspricht, wäre hilfreich.
InformationsquelleAutor der Frage machineghost | 2012-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie testen, Python-code mit Gurken - siehe Gurken-wiki auf github für mehr Informationen.
Wenn Sie möchten, eine Reine Python-Lösung, check-out Kopfsalat. Ich habe es nie benutzt, aber es ist eine ziemlich nützliche suchen blog Eintrag über ihn und splinter hier.
InformationsquelleAutor der Antwort D_Bye
A. Gurke wie: ( Englisch)
(Zusätzliche Info: RF ist größer als das englische, Wie Kriterien. Seine Schlüsselwort-basiert und bietet Lasten der helper-Methode und die eingebaute Bibliotheken. Große öko-sysstem für die externen Bibliotheken. Python-Skript kann auch geändert werden und verwendet werden, zusammen mit RF)
RedwoodHQ (Ansatz keyword-Basis)
(RedwoodHQ hat Eigenschaften, die größer als "English-Like" - Kriterien und umfasst die folgenden Funktionen: Keyword-basierte, web-basiertes test-framework, unterstützt von python-als einer von Sprachen und vieles mehr.
Weitere info auf RedwoodHQ: Theoretisch möglich sein, alle vorhandenen robot-framework eingebauten Bibliotheken und alle Roboter-framework-externer test-Bibliotheken oder für diese Angelegenheit jedes python-Bibliothek, aufgerufen werden können oder von diesem web-basierten test-Frameworks mit der kleinen Modifikation)
Gauge (Gurken-Ansatz): Referenz für python: (https://gauge-python.readthedocs.io/en/latest/index.html)
Unter Gurken konnte man Capybara wie Abstraktionsschicht, die versteckt/Gruppen viele von Selen Aktionen
B. Capybara wie: ( Abstraktion: versteckt /Gruppen-Aktion)
Als eine Email.g klicken Sie auf ein element, dessen ausreichende Befehl wie " klicken Sie auf(locator), anstatt die Arbeit mit raw -
selenium api
, wo man finden muss, um ein element, und klicken Sie dann auf. Viele weitere solche Abstraktion existieren in der optionalen Bibliotheken unterMeiner recherche: Es gibt fast ein halbes Dutzend ein. aktive, b. Reifen c.entwickelt Optionen.
Option-1: Selenium2Library
Github-url: https://github.com/rtomac/robotframework-selenium2library
Entwicklung:
Aktive
Zweck:
einer der vielen Bibliotheken der
robotframework
, kann auch als "standalone" - Bibliothek für Ihr framework (e-Check.g unten für die Nutzung).Gedanken:
Verwendung:
import in Ihre ipython oder idle-Konsole und beginnen Sie zu spielen
e.g:
Option-2: Pageobjects
Github-url:
https://github.com/ncbi/robotframework-pageobjects
Entwicklung:
Inaktiv (keine show-Stopper mit der aktuellsten Version)
Zweck:
Eine der Bibliotheken des
robotframework
. Bietet ein page-Objekt Abstraktion überSelenium2Library
. Kann verwendet werden, als Standalone für Ihr framework (e-Check.g unten Nutzung) oder kann verwendet werden, zusammen mit robotframework.Gedanken:
Verwendung:
e.g:
in ipython oder Leerlauf zu tun:
Option-3: robotframework-pageobjectlibrary
Github-Url:
https://github.com/boakley/robotframework-pageobjectlibrary
Entwicklung:
Aktive
Hoffentlich Autor unterstützt die LTS (Long Term Support) : )) , drücke die Daumen !!
Verwendung:
Gedanken:
Option-4: Splitter
Github-url:
https://github.com/cobrateam/splinter
Entwicklung:
Aktive
Verwendung:
splinter.readthedocs.org/en/latest/index.html
Auf ipython oder Leerlauf zu tun:
Option-5: SST-Bibliothek
Github-url:
https://github.com/Work4Labs/selenium-simple-test
Entwicklung:
Feature complete /Active
Verwendung:
testutils.org/sst/
auf ipython oder Leerlauf zu tun:
Option-6: helium
Nicht open source (Commercial)
Option-7: holmium.Kern
Github-url:
https://github.com/alisaifee/holmium.core
Option-8: wtframework
Github-url:
https://github.com/wiredrive/wtframework
Option-9: webium
Github-url:
https://github.com/wgnet/webium
Option-10: elementium
Github-url:
https://github.com/actmd/elementium
Option-11: schlendern
Github-url:
https://github.com/Element-34/py.saunter
Verwendung:
schlendern
Option-12: webdriverplus
Github-url:
https://github.com/tomchristie/webdriverplus
Verwendung:
webdriverplus
Kommentare:
repository nicht gepflegt, aber anständige Referenz
Option-12: Einfach-Pageobject
Github-url:
https://github.com/rama-bornfree/simple-pageobject/tree/master/PageObjectLibrary
Kommentare:
Einfachste pageobject-wrapper gebaut, um die selenium2library. Ich bin der Besitzer des repo -
Test-setup:
"Alle" Test-Bibliotheken in der Option-1-13; kann ausgeführt werden, mithilfe einer der folgenden Rahmen:
Lettuce, Behave, Robotframework
oder für diese Angelegenheit, jede unit test framework(e.gPyUnit
,Nose
)...so weiter .Test-Framework wird im Allgemeinen verwendet, um zu verwalten Testfälle e.g
Was Angelegenheiten ist, wie sicher man bekommt mit Bibliotheken im oben genannten Optionen.
Option-5: soweit
SST
betroffen ist, es hat die Eigenschaften von einem framework selbst, e.g Sie können den Bericht generieren und viele weitere Dinge.Also die definition von Bibliothek und framework im Falle der SST ist unscharf, je nach dem Umfang der Funktionen, die man verwenden möchte aus diesem Paket
Einige Math for Fun:
Gesamtzahl der Wege, könnte man einen gute, bad, und hässlich Test-setup = (Test-Frameworks UND Test-Bibliothek + Sie Ihre benutzerdefinierten code eingeklemmt, b/w, Rahmen und Bibliothek ):
7 * 13 = 91 Möglichkeiten
Wählen Sie die beste Kombination (von Test-Frameworks Und Test-Bibliothek), die Anzüge brauchen !!
Ich würde persönlich gehen für Roboter-framework mit Selenium2Library oder Roboter-framework mit einigen pageobject-Bibliothek
ofcourse, ich bin gelehnt und positiv voreingenommen in meinem Beitrag über Roboter-framework und Selenium2Library
InformationsquelleAutor der Antwort Steve Harrison
Während der OP war glücklich mit der Suche nach einem Python-Gurken-äquivalent, was hat mich hierher geführt, war die Frage, Titel: ein Python-äquivalent von Capybara. Während Gurken verwendet, Capybara, Cucumber selbst ist eine ganz andere "Lösung", die nur zufällig im Zusammenhang zu Capybara.
Wenn Sie auf der Suche nach etwas Capybara-wie die zimmerreserviereung, ohne das Angebot mit Gurke, check-out Splitter. Ich weiß nicht, was wahr war, als die Frage gepostet wurde, aber Splinter ist nun gebaut, Selen und unterstützt andere engines (Webkit, PhantomJS, zope).browsertest, und andere), und unterstützt sowohl visuelle und headless testing.
InformationsquelleAutor der Antwort Jim Stewart
Wie etwa Robot Framework. Es ist ziemlich genial. Und mit Selenium2Library es funktioniert wirklich gut mit SE2. http://robotframework.org/
InformationsquelleAutor der Antwort Aaron
Haben Sie überprüft, erfrischen, oder Erbse?
Erbse, die nicht mit der syntax von Gurken, aber der Autor sagt, dass ist einfacher
https://github.com/gfxmonk/pea
Und Erfrischen Sie versucht zu Klonen, Gurke syntax und Funktionalitäten
https://github.com/rlisagor/freshen
InformationsquelleAutor der Antwort Tony S.
Gibt es nicht es gibt jetzt eine Portierung von Capybara selbst zu Python:
https://github.com/elliterate/capybara.py
Finden Sie die Dokumentation hier:
https://elliterate.github.io/capybara.py/
InformationsquelleAutor der Antwort Brandon Rhodes
Den OP gebeten, für die Python-Implementierungen von Gurken oder Capybara aber als Jim Stewart wies darauf hin, in seine Antwort, Cucumber und Capybara sind sehr verschiedene Dinge. Da der Titel der Frage ist, Capybara, das ist, was ich beantworte.
Ich bin einer der Entwickler von einem kommerziellen Selen wrapper genannt Helium. Wie Capybara, bietet es einen sehr high-level-API für web-Automatisierung. Zum Beispiel, hier ist ein Skript, dass die updates von Ihrem Facebook-status:
Anrufe zu Helium können frei gemischt werden mit anrufen zu Selen. ZB. wir erweitern das obige Skript:
InformationsquelleAutor der Antwort Michael Herrmann