Praktický průvodce: Který nástroj použít pro automatické testování webových aplikací?
Každý, kdo se alespoň trochu seznámil s webovými aplikacemi, ví, že jejich testování je naprosto klíčové a rozhoduje o kvalitě každého vyvíjeného softwaru. Vyhledávání chyb a jejich náprava mnohdy probíhá automaticky (pro opakované spouštění velkého množství testů nebo testů s velkým množstvím generovaných dat je to výhodnější). Jenže pro automatické testování musíte vybrat vhodný software. Pojďme se podívat na dva nástroje, které patří k těm nejpopulárnějším – Selenium a Cypress.

Jednoduchost i chybovost
Selenium je nejrozšířenější open source nástroj, který byl vytvořen v programovacím jazyce Java a podporuje několik běžně používaných programovacích jazyků – Java, Python, Ruby, C# a další. Umožňuje zautomatizovat téměř jakýkoliv test v závislosti na využitém programovacím jazyku a frameworku, například regresní testy, smoke testy, UI testy, testy databází, mobilní testy, unit testy nebo integrační testy. Má několik výhod:
- Jednoduchost použití
- Rozsáhlá dokumentace a komunita
- Mnoho dostupných pluginů a rozšíření
- Podpora testování webových aplikací na různých prohlížečích (Chrome, Firefox, Safari, Opera a Internet Explorer) i headless testování (webový prohlížeč bez grafického uživatelského rozhraní)
- Použití na různých operačních systémech (Windows, Linux a MacOS)
- Možnost automatizovaných testů na mobilních zařízeních za pomoci frameworku Appium (oproti jiným open source nástrojům)
Pro úplnost je ale potřeba dodat, že Selenium má i své limity, které se vám nemusí líbit.
- Někdy může být pomalý a náchylný k chybám.
- Testy mohou být složité na údržbu a rozšíření, což může vadit týmům pracujícím na velkých projektech.
- Nativní reporting běhů a výsledků testů není v Seleniu ideální a je závislý na ostatních nástrojích, jako jsou TestNG nebo Cucumber.
- K jeho používání je nutná silná znalost programování.
Rychlý, ale méně rozšířený
Cypress je v porovnání se Seleniem relativní nováček, ale rychle si získává popularitu díky svým pokročilým funkcím a výkonu (rychlosti). Je vytvořen v JavaScriptu, má intuitivní syntaxi a umožňuje automatizovat unit testy, integrační testy a end to end testy. Chlubí se zabudovanou funkcí zachycení snímku obrazovky během provádění testu. Na rozdíl od jiných nástrojů, kde se k dosažení synchronizace při provádění testů používají funkce „wait“ a „sleep“, má vestavěnou funkci, která ve výchozím nastavení čeká na další akce, a navíc čeká před přechodem na další krok v testu. Mezi jeho výhody patří:
- Rychlost a stabilita (na rozdíl od jiných nástrojů pracuje ve skutečném prohlížeči, ne simulaci)
- Přehledné výsledky testování
- Možnost sledovat testy v reálném čase
- Jednoduchá instalace a nastavení
- Podpora vývojáře při tvorbě testů díky zabudovanému vývojovému prostředí
Co vám ale vyhovovat nemusí?
- Některé pluginy mohou být placené a méně rozšířené.
- Cypress je omezen pouze na testování webových aplikací v prohlížeči Chromium. Vzhledem k tomu, že je vytvořen v JavaScriptu, pro tvorbu automatizovaných testů podporuje pouze tento jazyk.
- Oproti Seleniu lze jako drobnou nevýhodu brát menší uživatelskou komunitu, tím pádem omezenější zdroje pro řešení specifických problémů.
- Chybí možnosti testování nativních mobilních aplikací.
[.infobox]V první řadě myslete na to, že o automatizaci byste se měli pokoušet tam, kde je lehce proveditelná, a to za pomoci vhodných nástrojů. V článku jsme rozebrali rozdíly mezi Cypressem a Seleniem. Oba nástroje mají své výhody a nevýhody, rozhodujte se tedy podle toho, na jakém projektu a s jak zkušeným týmem pracujete. Pokud už používáte Selenium, nemá význam přecházet na Cypress, jestli není v plánu zásadní upgrade aplikace. Protože se tyto dva nástroje od sebe architektonicky liší, mohl by takový upgrade nějakou dobu trvat.[.infobox]