Praktický průvodce: Který nástroj použít pro automatické testování webových aplikací?

No items found.
16.7.2023

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.

You might also enjoy

Read more

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:

  1. Jednoduchost použití
  2. Rozsáhlá dokumentace a komunita  
  3. Mnoho dostupných pluginů a rozšíření
  4. 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í)  
  5. Použití na různých operačních systémech (Windows, Linux a MacOS)  
  6. 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ří:

  1. Rychlost a stabilita (na rozdíl od jiných nástrojů pracuje ve skutečném prohlížeči, ne simulaci)
  2. Přehledné výsledky testování
  3. Možnost sledovat testy v reálném čase
  4. Jednoduchá instalace a nastavení  
  5. 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]

Written by

No items found.

Read more insights