Soubor scénáře
Scénář je soubor YAML (obvykle v qa/flows/), který popisuje jedno flow: jeho kroky, šipky mezi nimi a to, co má každý krok splnit. Jeho formát je qawalk.scenario.v1; kaloko validate <soubor> soubor podle něj zkontroluje. Jak scénář napsat krok za krokem: Napsat scénář.
schema: qawalk.scenario.v1
id: WEB-12-checkout
title: Checkout
locales: [en, cs]
viewports: { desktop: [1280, 800], mobile: iphone-15 }
environments: [local, staging]
nodes:
- id: cart
kind: screen
title: { en: Cart, cs: Košík }
path: /cart
purpose: The shopper sees what they are buying and can continue.
execution: { strategy: playwright, script: steps/cart.mjs, instructions: Add one product and open the cart. }
criteria:
- { id: AC1, text: Shows the total, check: { type: deterministic, assert: exists, selector: .cart-total } }
- id: payment
kind: screen
title: Payment
path: /checkout/payment
packs: [a11y]
edges:
- { from: cart, to: payment }
Klíče nejvyšší úrovně
Povinné jsou schema, id, title, nodes a edges.
| Klíč | Co obsahuje |
|---|---|
schema | vždy qawalk.scenario.v1 |
id | id scénáře (malá písmena, číslice, pomlčky); úkol v něm (WEB-12-…) propojí issue |
title | název pro lidi |
kind | task (výchozí) nebo flow |
archived | true skryje vyřazený scénář ze seznamu; jeho běhy zůstanou dostupné |
source | cesta k akceptačnímu plánu (ACCEPTANCE.md), používá ji kaloko validate --coverage |
version | číslo, které zvýšíte, když se flow změní |
locales | jazyky, ve kterých se prochází, např. [en, cs] |
viewports | názvy s velikostí ([1280, 800]), předvolba zařízení (iphone-15, ipad-landscape) nebo seznam předvoleb |
browsers | chromium (výchozí), webkit, firefox |
color_schemes | light, dark |
reduced_motion | no-preference, reduce |
forced_colors | none, active (vysoký kontrast ve Windows) |
display_modes | browser, standalone (nainstalovaná webová aplikace) |
devices | scénáře aplikací: emulátory, simulátory nebo telefony, na kterých se prochází |
environments | prostředí z konfigurace, na kterých scénář smí běžet |
readonly | true u scénáře, který jen čte; na prostředí jen pro čtení je povinné |
platform | web (výchozí), android, ios, electron, desktop, windows |
tags | volné štítky |
nodes | kroky (níže) |
edges | šipky mezi kroky (níže) |
lanes | popisky řádků na plachtě, index = číslo řádku |
issue | úkol: number, repo (owner/name), key (Jira nebo Linear, ENG-42), url, title |
sessions | lidé ve flow, každý s title, volitelně mailbox, account, blocked_on |
project | projekt v Kaloku pro jeho běhy; přebije konfiguraci |
product, module | který produkt a modul z products: flow ukazuje, pro changelog a dokumentaci |
capture | kvalita snímků pro všechny kroky (níže) |
Klíče kroku (nodes)
Každý krok potřebuje id, kind a title.
| Klíč | Co obsahuje |
|---|---|
id | id kroku, používá se v odkazech, v --steps a v odkazech na kroky (kaloko:<scénář>/<krok>) |
kind | screen, email, external (obrazovka třetí strany), decision, stack (mnoho stránek jedné šablony) |
title | text, nebo jeden pro každý jazyk ({ en: Cart, cs: Košík }) |
path | adresa vůči base_url, nebo jedna pro každý jazyk; ve scénářích aplikací deep link; {random} vytvoří adresu, která nemůže existovat |
purpose | jedna věta o tom, k čemu krok slouží; čte ji evaluátor |
lane | řádek na plachtě |
readonly | krok jen čte |
execution | strategy (playwright, script, agent, manual), script (cesta ke skriptu kroku), instructions (povinné), requires (např. browser) |
mail | e-mailové kroky: subject a to |
criteria | co má krok splnit (níže) |
session | který člověk ze sessions krok dělá |
affects | masky souborů, které krok ovlivňují, pro kaloko walk --affected, nebo always |
packs | hotové sady kritérií: seo, usability, a11y, perf, console, errors, app, design |
capture | kvalita snímků jen pro tento krok |
record | true nahraje video kroku, i když průchod nenahrává; false nikdy |
ignore | oblasti vynechané z porovnání pixelů: { selector } nebo { rect: [x, y, w, h], viewport }, volitelně omezené přes viewports, locales, s poznámkou note |
items | stack kroky: odkud se berou stránky (urls, file, sitemap s match/exclude, crawl, script) |
fields | stack kroky: až 12 sloupců indexu stacku (id, label, from) |
Kritéria
Každé kritérium má id (AC1, AC12b), text pro lidi, volitelně highlight (CSS selektor, který se na screenshotu orámuje) a právě jednu kontrolu check: deterministic, semantic nebo manual. Všechny typy kontrol a jejich volby najdete v Kritéria, kontroly a packy.
Šipky (edges)
| Klíč | Co obsahuje |
|---|---|
from, to | id kroků |
label | text u šipky, třeba volba v rozhodnutí |
kind | main (výchozí), nebo alt pro alternativní cestu |
Snímky (capture)
| Klíč | Co obsahuje |
|---|---|
format | webp (výchozí), nebo png (bezeztrátový, pro tisk) |
scale | 1 nebo 2 (pixely zařízení na snímku) |
quality | kvalita WebP od 0,3 do 1 |
mask | CSS selektory, které na obrázku zakryje plný obdélník |
annotate | očíslované značky u prvků kritérií s highlight |
full_page | celá stránka (výchozí), nebo s false jen první obrazovka |
record | true, step, flow, failed nebo off; viz kaloko walk --record |
trace | ke každému kroku záznam akcí, požadavků a konzole (výchozí true) |
capture kroku má přednost před scénářem a scénář před konfigurací.