Vlákno názorů k článku Použití Pythonu pro tvorbu testů: od jednotkových testů až po testy UI od Smazaný profil - Když už tu jsou zmínky o Seleniu, tak...

  • Článek je starý, nové názory již nelze přidávat.
  • 5. 5. 2020 11:16

    Smazaný profil

    Když už tu jsou zmínky o Seleniu, tak bych si taky přihřál polívčičku projektem, na kterém jsem se podílel, když jsem ještě působil v jedné nejmenované firmě :). Vznikl jako konečné řešení testování jednoho produktu, který v té době neměl moc dobré API a prakticky veškerou funkcionalitu bylo potřeba otestovat přes UI. Původní "Javovský styl" Page Object Modelu přerostl přes hlavu a používat ho v Pythonu bylo otravné a věci typu BDD byly mimo, jelikož jsme v rámci testů potřebovali mít hromadu logiky a variae a lepit to v BDD by bylo za trest.

    Je to https://github.com/RedHatQE/widgetastic.core .

    Inspirován Django modely, v podstatě umožňuje rozkomponentizovat celé UI na nezávislé, znovupoužitelné, verzovatelné, děditelné a zanořitelné bloky včetně dynamicky řešeného opakování, které mapuje UI na seznam nebo asociativní pole, které jde s trochou důvtipu poskládat tak, že ta samá data, která člověk sype do API, může sypat do UI. Nejlépe se to kombinuje s knihovnou bývalého kolegy "navmazing, která zase umožňuje namapovat navigaci v UI na jednotlivé entity.
    A obsahuje i poměrně chytrý stand-alone wrapper na Selenium browser, který řeší různé neduhy, některé věci optimalizuje a také zjednodušuje.

    Má dvě objektivní nevýhody:
    1. Rychlost - před každou akcí si kontroluje UI, jestli je ustálené. Byli jsme vyškoleni tím, co nám frontend byl schopen provést, takže žádné StaleElementEx­ception a podobné věci.
    2. Netrivialita - je potřeba vědět, jak to uvnitř funguje, není to sice nic složitého, ale je potřeba si to nastudovat.

  • 5. 5. 2020 13:15

    tisnik

    Aha vidim nejmenovanou firmu, to mi neco pripomina :) Mam pocit, ze se paralelne vyvinulo vic reseni, krome jineho i IQE a mozna i dalsi projekty.

    Urcite se na to podivam v dalsich clancich. Takze diky!