Pokud se zabýváte testováním webových aplikací, na některé prvky webů během dne kliknete nespočetněkrát. V případě regresních testů (ať je regrese prováděna v rámci smoke testu anebo v rámci větších samostatných regresních testů ověřujících funkcionalitu značné části webu) jste nuceni stejné testy opakovat třeba s každou novou verzí aplikace. Během takových testů chcete ověřit, jestli nějaká modifikace (oprava, změna atp.) v aplikaci nezpůsobila nějaký nechtěný efekt. Velmi stroze ono kliknutí na tlačítko a kontrola, že to stále funguje. Zvláštní význam pak mají tzv. E2E (End2End, End to End) regresní testy, během nichž je zkoumáno, že integrované aplikační komponenty fungují podle očekávání – aplikace je pak testována na bázi reálných scénářů.

Naštěstí existují možnosti pro automatizaci regresních testů webových aplikací, které dokonce vycházejí vstříc E2E testům. Jednou z možností je nástroj Cypress, který umožňuje automatizovat scénáře jednoduché i složitější.

Tedy zkusme namísto manuálních regresních testů využít automatizované testování Cypressem!

Proč Cypress?

Cypress oproti některým jiným nástrojům usnadňuje automatizaci testování. Zatímco třeba Selenium (bez ohledu na jeho nesporné jiné výhody) vyžaduje složitější proces zprovoznění i následné údržby, Cypress, zjednodušeně řečeno, zkrátka máte (velmi jednoduše nainstalujete) a zabýváte se „jen“ psaním testů. 

Začínáme

V PowerShellu:

cd [můj projekt]
npm install cypress --save-dev

(Co to je NPM? Resp. Node.js. Možná malinká komplikace.)

Následně si mohu vyzkoušet, jak to běží:

node_modules/.bin/cypress open

A hned si to mohu vyzkoušet na mnoha příkladech uvedencýh pod "examples".

Všechny příklady jsou zapsány v adresáři ./cypress/integration/examples. V adresáři ./cypress/integration/ si mohu vytvořit zkušební test.

Doporučené odkazy:

Můj první test

mkdir .\cypress\integration\silencepleasecz\

new-item .\cypress\integration\silencepleasecz\test_1.js

(Soubor lze vytvořit i jinými způsoby, než přes new-item. Např. pomocí touch aj.)

describe('Muj prvni test', function() {
it('Zatim toho moc neumi', function() {
expect(true).to.equal(true)
})
})