Capybara (software) - Capybara (software)
Vývojáři | Thomas Walpole |
---|---|
Stabilní uvolnění | 3.29.0 / 2. září 2019[1] |
Úložiště | |
Napsáno | Rubín |
Operační systém | Cross-platform |
Typ | Vývoj založený na chování rámec / Zkušební nástroj |
Licence | Licence MIT |
webová stránka | teamcapybara |
Kapybara je webový automatizace testů software, který simuluje scénáře pro uživatelské příběhy a automatizuje webová aplikace testování pro řízeno chováním vývoj softwaru. Je to napsáno v Programovací jazyk Ruby.
Capybara může napodobovat akce skutečných uživatelů při interakci s webovými aplikacemi. Může přijímat stránky, analyzovat HTML a odeslat formuláře.[2]
Pozadí a motivace
Během procesu vývoje softwaru (zejména v Agilní a Vývoj řízený testem prostředí), jak se velikost testů zvyšuje, je obtížné řídit testy, které jsou složité a nejsou modulární.[2]
Rozšířením čitelnosti pro člověka vývoj založený na chování styl rámců jako Okurka a RSpec do samotného automatizačního kódu si Capybara klade za cíl vyvinout jednoduché webové automatizované testy.[3]
Anatomy of Capybara
Capybara je knihovna Ruby (označovaná také jako a klenot ), který se používá s podkladovým webovým ovladačem. Skládá se z uživatelsky přívětivého DSL (Domain Specific Language), které popisují akce, které jsou prováděny podkladovým webovým ovladačem.[4]
Když je stránka načtena pomocí DSL (a podkladového webového ovladače), Capybara se pokusí vyhledat příslušný prvek v DOM (Document Object Model) a provést akci, jako je tlačítko kliknutí, odkaz atd.
Řidiči
Ve výchozím nastavení používá Capybara : rack_test
ovladač, který nemá žádnou podporu pro provádění JavaScript. Ovladače lze přepínat před a po blocích. Níže jsou uvedeny některé webové ovladače podporované programem Capybara.
RackTest
Psaný v Ruby, výchozí ovladač Capybara RackTest nevyžaduje spuštění serveru, protože přímo interaguje s Nosič rozhraní. V důsledku toho jej lze použít pouze pro aplikace Rack.
Selen
Selen -webdriver, který se většinou používá ve webových automatizačních frameworkech, podporuje Capybara. Na rozdíl od výchozího ovladače Capybara podporuje JavaScript, má přístup k prostředkům HTTP mimo aplikaci a lze jej také nastavit pro testování v bezhlavém režimu, což je zvláště užitečné pro scénáře CI.[4]
Capybara-webkit
Ovladač Capybara-webkit (klenot) se používá pro true bezhlavý prohlížeč testování s podporou JavaScriptu. Využívá to QtWebKit a je výrazně rychlejší než selen, protože nenačte celý prohlížeč.
Dohazovače
Capybara vyhledá prvek buď pomocí Jazyk specifický pro doménu nebo XPath /Selektory CSS. Částečné shody mohou vést k neočekávaným výsledkům. Dva nebo více zápasů může dokonce vést k selhání s chybou Ambiguous match. Níže jsou uvedeny strategie párování podporované programem Capybara:[4]
za prvé: Vyberte první shodný prvek. Nedoporučuje se používat.
jeden: Povolit pouze shodu jednoho prvku. Při více než jedné shodě došlo k chybě.
chytrý: Pokud je Capybara.exact pravdivá, chová se jako výše uvedená možnost (jeden). Pokud má Capybara.exact hodnotu false, pokusí se nejprve najít přesnou shodu. Pokud je nalezena více než jedna shoda, vyvolá se nejednoznačná výjimka. Pokud není nalezen žádný prvek, je zahájeno nové hledání nepřesných shod. Pokud je nalezena více než jedna shoda, vyvolá se nejednoznačná výjimka.
prefer_exact: Najde všechny odpovídající (přesné a které nejsou přesné) prvky. Pokud je nalezeno více shod, pak je vrácen první přesně shodný prvek a vyřazení dalších shod.
Používání
Proces registrace uživatele[5]
Zde je příklad toho, jak se test registrace uživatelů provádí pomocí Capybary. Existuje test, zda uživatel může pokračovat v procesu registrace nebo zda na něm nejsou pozastavena. Pokud má požadované přihlašovací údaje, bude zaregistrován a poté přesměrován na stránku „Vítejte“.
popsat 'Registrace uživatele' dělat to „umožňuje uživateli registraci“ dělat návštěva new_user_registration_path vyplnit 'Jméno', :s => 'Nový' vyplnit 'Příjmení', :s => 'Uživatel' vyplnit 'E-mailem', :s => „[email protected]“ vyplnit 'Heslo', :s => 'uživatelské heslo' vyplnit 'Potvrzení hesla', :s => 'uživatelské heslo' click_button 'Registrovat' strana.by měl mít_obsah 'Vítejte' konec konec
Kapybara s okurkou
Příklad funkce Capybara používané s okurkou:
Když / ^ Chci přidat / dělat vyplnit 'A', :s => 100 vyplnit 'b', :s => 100 click_button 'Přidat'konec
Kapybara s RSpec
Aby bylo možné používat Capybara s, je nutná nějaká minutová integrace RSpec[4][6]
popsat 'jít na domovskou stránku' dělat to 'otevře domovskou stránku' dělat návštěva (get_homepage) očekávat(strana).na mít_obsah('Vítejte') koneckonec
Podobné nástroje
Rozšíření
Viz také
- Přejímací testování
- Vývoj řízený přejímacími testy
- Vývoj založený na chování
- Automatizace testů
- HtmlUnit
- Seznam nástrojů pro testování webu
- Regresní testování
- Vzhledem k tomu, kdy
Reference
- ^ „Vydání - teamcapybara / capybara“. Citováno 7. října 2019 - přes GitHub.
- ^ A b Inženýrský software jako služba: Agilní přístup využívající cloud computing. ISBN 9780984881246.
- ^ Testování aplikací s Capybarou. ISBN 9781783281268.
- ^ A b C d „Základy kapybary a vylepšování testů“. SitePoint. Citováno 2016-02-08.
- ^ „Integrační testovací řešení s RSpec a Capybara“. garyrafferty.com. Archivovány od originál dne 21.01.2016. Citováno 2016-02-16.
- ^ Liss, Jo. „Capybara (a Selenium) s RSpec & Rails 3: rychlý návod“. www.opinionatedprogrammer.com. Citováno 2016-02-08.