Portace testů

Migrace ze Selenia na Playwright: co zahrnuje

Testovací sadu postavenou na Seleniu jste budovali roky. Funguje – jen ji musíte neustále udržovat při životě. Přibývají pevná čekání, selektory se lámou při každém redesignu a nikdo se už neodváží zasáhnout do jádra, protože by se všechno zhroutilo najednou. Rozhodli jste se přejít na Playwright. Otázkou je, co to reálně znamená.

Častou představou je, že se sada „přepíše“ – vezme se test po testu a přepíše se do nového jazyka. Mechanický přepis bývá drahý a může do nového nástroje přenést slabiny původní sady.

Běžný problém: doslovný přepis přenese i staré nedostatky

Hodnotu sady nesou především platné scénáře a ověření: znalosti o tom, jak se má produkt chovat, co se má stát po odeslání formuláře, jaké hlášení se má zobrazit při neplatné platbě a které kombinace vstupů v minulosti selhaly. Kód, integrace a diagnostické mechanismy je však třeba posoudit samostatně, protože i ony mohou obsahovat znovu použitelné části nebo technická omezení.

Kód je pouze jejich zápisem. A právě tento zápis vám dnes působí problémy – pevná čekání, nestabilní selektory, chybějící struktura. Kdybychom ho mechanicky přeložili, získali byste stejné problémy, jen v novějším nástroji. Zaplatíte za migraci a za rok budete tam, kde jste dnes.

Proto ze staré sady vybíráme platné scénáře a ověření a samostatně posoudíme kód, integrace i diagnostiku. Nepřenášíme je automaticky ani je bez kontroly celé nezahazujeme.

Jak přenést hodnotné scénáře

Nejprve projdeme současnou sadu a zjistíme, co skutečně pokrývá. Část testů bývá mrtvá – ověřují funkci, která už v produktu neexistuje, nebo se celé roky přeskakují. Ty se nepřenášejí. Jiné testují totéž třikrát různými cestami. I na to je užitečné upozornit dříve, než se začne pracovat.

Zbytek přenášíme na základ navržený pro snazší údržbu:

Přenos probíhá postupně podle priority, kritické cesty jako první. Stará a nová sada mohou nějakou dobu běžet vedle sebe a mapa pokrytí určuje, která z nich kontroluje jednotlivé regresní scénáře. Tím lze předejít plánovanému období bez kontroly všech dohodnutých kritických cest.

Co vám nový základ přinese

Playwright před akcemi provádí kontroly připravenosti prvku a podporuje opakované vyhodnocování očekávání. To může odstranit mnoho pevných čekání. Stabilita však stále závisí na datech, prostředí, selektorech a návrhu scénáře.

Playwright podporuje projekty pro několik prohlížečových jader. Podle konfigurace může při selhání uložit snímek obrazovky, video nebo trace, které pomohou při diagnostice; ne každý výstup vzniká automaticky při každém nastavení.

Novou sadu píšeme v jazyce, který vyhovuje vašemu týmu – nejčastěji v Pythonu, případně v TypeScriptu, pokud mají testy žít vedle frontendu. Zapojujeme ji do CI/CD od prvního přeneseného scénáře, ne až na konci projektu.

Kdy migrace nedává smysl

Pokud máte rozsáhlou grid infrastrukturu a tým, který Selenium dobře zná, nemusí být správným rozhodnutím tento nástroj opustit. Pak se vyplatí přepracovat pouze architekturu nebo jazyk a nástroj ponechat. A pokud je sada v pořádku, pouze nestabilní, bývá levnější opravit ji než přenášet.

Řekneme vám to i tehdy, když se portace nevyplatí.

Další krok

Ukažte nám současnou sadu a řekněte, co vás na ní nejvíce trápí. Ozvěte se nám – podíváme se, co má smysl přenést, co zahodit a v jakém pořadí.

Související témata

Mohlo by vás také zajímat

Zachováme roky znalostí uložené ve vašich testech

Sada stojí na nástroji po konci podpory nebo v jazyce, kterému ve firmě nikdo nerozumí? Přeneseme ji postupně a snížíme riziko mezery v klíčových kontrolách.