Web Performance Training

Aby webová aplikace mohla správně fungovat, musí mít webový prohlížeč dostatek prostředků jako jsou CPU, RAM a propustnost.

Proč #webPerf ?

Testování webových aplikací pouhým automatizovaným klikáním nestačí, protože pokud je aplikace pomalá, je pro uživatele nepoužitelná.

Na prvním místě musí být prohlížeč nastaven do takových podmínek jaké má uživatel a až následně testovat funkce webové aplikace. Během testování je ale potřeba měřit to, kolik aplikace spotřebuje zdrojů webového browseru a jak dlouho trvají jednotlivé fáze načítání a vykreslení.

Pokud takto k testování nepřistupujeme, nezjistíme jak webová aplikace funguje reálnému uživateli na pomalém či rychlém počítači, na mobilním či pevném připojení k internetu a nezjistíme chyby, které mohou reální uživatelé zažívat.

Web Performance Testing (WPT) je evolucí běžného automatizovaného testování webových aplikací z pohledu uživatele. Přináší spoustu nových typů chyb a informací. Například, proč je webová aplikace pomalá, proč "zamrzla", kdy se zobrazuje hlavní obrázek či za jak dlouho lze produkt přidat do košíku.

Nejbližší #webPerf trénink

  • Od 04. března do 21. března 2024.
  • Vždy v pondělí a ve čtvrtek od 17:00 - 20:00.
  • Trénink je online přes Google Meet.
  • Zbývá 15 volných míst.
  • Cena 11.500 CZK s DPH.

Web Performance vs. Performance Tests

Dnes již běžný performance testing prováděný pomocí nástrojů typu JMeter či k6.io se zaměřuje na nastavení infrastruktury a na to, jak je backendová část webové aplikace napsaná. Nedokáže odpovědět na otázky typu: za jak dlouho se uživatel přihlásí, protože vynechává pro uživatele důležité prvky jako je webový prohlížeč a internet. Zjistíme pouze to, jak dlouho trvají backendové procesy.

Web Performance Testing by měl být předřazený před běžným performance testováním, protože je výrazně jednodušší na správu a přináší reálnější pohled na performance z pohledu uživatele.

Web performance testy spouštíme zásadně společně s performance testy, protože vygenerovaná zátěž směrem na backend přímo ovlivňuje performance na frontendu.

#webPerf používá reálný a plnohodnotný prohlížeč a díky tomu je nejlepším volbou pro observabilitu produkce z uživatelské perspektivy.

Web Performance vs. Browser Automation Tests

Klasické funkcionální testy pomocí Cypressu nebo Playwrightu efektivně testují pouze to, že testovaná aplikace funguje. Nezjistíme, jak dlouho trvá, než se aplikace zobrazí, kolik je spotřebováno paměti, jak dlouho trvají jednotlivé requesty, jak dlouho uživatel čeká na zobrazení tabulky nebo jak dlouho trvá vykreslení komponenty třetí strany či jestli webová aplikace funguje plynule a jestli nezamrzá. Takže nevíme, jak webová aplikace bude fungovat na reálném zařízení uživatele, protože naše běžné testovací prostředí a webový prohlížeč na reálném zařízení uživatele se bude lišit.

Ověřovat výsledek automatizovaného testu pouze podle toho, zda test prošel či ne, vůbec nic neříká o tom, jak bude webová aplikace fungovat reálnému uživateli. Pro správné vyhodnocení webových automatizovaných testů je nutné vyhodnotit i metriky výkonu. Proto je nezbytné začít s Web Performance Testingem.

Web Performance vs. Manual Testing

Manuální testeři díky nástrojům integrovaným ve webovém prohlížeči získávají podstatně více informací o chování a kvalitě webové aplikace. Bez těchto nástrojů unikají problémy, které se později mohou projevit uživatelům v produkčním prostředí. Když má navíc tester k dispozici RUM (Real-User Monitoring), automatizovaně získává přehled o klíčových výkonnostních metrikách, což značně zvyšuje efektivitu manuálního testování.

Co se naučíš

První den Úvod
Co se naučíš a jak bude trénink probíhat. Získáš přehled o celkovém průběhu, co budeme dělat, kdy budou přestávky a navzájem se seznámíme.
Co je web performance testing a proč se mu věnovat. Jaké jsou důvody a způsoby. Manuální a automatizovaný Web Performance Testing.
Web Performance Testing
O co jde a jak to využiješ. Zjistíš, že při testování webových aplikací jsou na prvním místě performance charakteristiky a až potom, jestli aplikace funguje.
Testování a monitoring vitality webové aplikace. Testuj z pohledu reálného uživatele se zařízením jako má uživatel.
Performance kultura. Jak je to dnes s (web)performance testováním ve firmách a jak jej zavést.
Manuální web performance testing. Automatizované nástroje nejsou hned důležité, browser jich má vestavěných spoustu.
Automatizovaný web performance testing. Jaké automatizované nástroje existují a kdy a jaký využiješ.
Jaké use cases web performance testing pokrývá. Budeš se divit, kdo všechno ve firmě informace z WPT využije.
Jak funguje browser a webové aplikace
Jak funguje browser uvnitř. Browser není black-box, ale obsahuje spoustu procesů a různých parserů, které mají za úkol uživateli připravit a zobrazit webovou stránku.
Jak funguje webová aplikace, která běží v prohlížeči. Aby webová aplikace správně fungovala, musíme splnit určité prerekvizity, které browser vyžaduje.
Jak vypadá a funguje spojení klient - server a dozvíš se o hromadě nových metrik, které ti řeknou, jak webová aplikace funguje. Každá aktivita v browseru má svou metriku a že jich je. Podíváme se na drtivou většinu z nich, co znamenají a jak jsou důležité.
Jaké jsou fáze zpracování požadavku v prohlížeči a co se ve které z nich odehrává. Browser si musí stáhnout data pro konstrukci webové stránky a následně je musí zpracovat a výsledek zobrazit.
Debriefing
Projdeme vaše poznatky a dotazy.
Druhý den Browser jako IDE
Webový browser obsahuje spoustu zajímavých nástrojů a některé jsou tak expertní, že se musejí zapnout speciálním příkazem. Co třeba skryté nástroje, které jsou mocnější než DevTools?
Porozumění nástrojům v browseru a jejich výstupům. Projdeme všechny vestavěné nástroje a řekneme si, co ukazují a proč.
Javascript - jak funguje a ukážeme si pár základních příkazů, které využiješ. Pokud chceš testovat webové aplikace - práce s Javascriptem je nutností.
Browser jako editor pro programování a automatizaci. Víš, že lze automatizovaně testovat webové aplikace i bez testovacího frameworku?
Metodika měření a monitorování vitality webových aplikací
Vyvrátíme dezinformace a povíme si jak testovat a měřit správně. Testovat a měřit 1x denně a po půlnoci je opravdu málo a prakticky nám utíká spousta chyb.
Jak nastavit podmínky, pro správné provedení web performance testování. Pro testování webových aplikací existují přesně stanovené podmínky, které musejí být dodrženy, jinak dostaneme neúplný a zkreslený pohled na to, jak naše aplikace funguje.
Spojení web performance testování a klasického performance testování. JMeter, Gatling či K6.io nestačí a proč.
Jak definovat nefunkcionální požadavky. Chyť testování webové aplikace a její použitelnost pevně do ruky a definuj pomocí prahových hodnot, jak má přesně uživatelům fungovat.
Debriefing
Projdeme vaše poznatky a dotazy.
Třetí den Nástroje pro měření rychlosti webových aplikací
Jak fungují webové laboratoře. Jaké jsou mezi nimi rozdíly.
Lighthouse Google a jeho nejznámnější a nejpoužívanější nástroj pro měření rychlosti webových aplikací.
Online nástroje pro měření rychlosti webu.
Canarytrace Synthetic
Playwright obohacený o WebPerf funkce. Seznamte se se stackem, který byl postaven pro měření a testování WPT na Playwrightu.
Bezúdržbový provoz, nebo user journey pro měření a monitoring průchodů. Dva nejpoužívanější módy, které využijete každý den.
Ukládáme live data a výsledky agregujeme do grafů - vytvoř si graf z metrik, které tě zajímají. Je jedno, jestli jsi tester, test manažer, projekťák nebo DevOpsák - data z WPT využije více lidí.
Projdeme vizualizace a dashboardy. Připravené dashboardy, které stačí do Kibany pouze nainstalovat a hned víš, jak si testovaná aplikace vede.
Projdeme různé výkonnostní metriky. Jejich skutečně hodně, některé jsou více důležité a některé třeba poukazují na pomalý server nebo pomalý Javascript.
Digitální checklist, Thresholdy, Alerting a Anomaly Detection. Canarytrace nabízí hned několik způsobů, jak upozorní na problém s Vaší webovou aplikací.
Debriefing
Vaše poznatky a dotazy.
Čtvrtý den Canarytrace RUM (Real User Monitoring)
Pasivní měření, monitorování a testování webových aplikací pomocí RUM. Jak RUM funguje a jaké metriky sbírá.
Nastavení RUM. Projdeme si implementaci a oživení RUM do webové aplikace.
Interpretace a analýza RUM metrik. Projdeme jednotlivé metriky a řekneme si co znamenají.
Debriefing
Projdeme vaše poznatky a dotazy.
Pátý den Spustíme Canarytrace pro testování, měření a reportování.
Možnosti spuštění Canarytrace a doprovodné nástroje. Projdeme si strategii, jak Canarytrace začít používat.
Projdeme si nástroje a frameworky, které v tréninku budeme následně používat. Codespace, Linux, Docker, Kubernetes, Elasticsearch stack, Prometheus, Grafana, ...
Co je Docker a naučíme se základní příkazy.
Seznámíme se s Kubernetes v cloudu a projdeme si prostředí. Naše veškerá testování a měření budou probíhat právě v Kubernetes.
Připravíme si virtualizované pracovní prostředí Codespace. Díky Codespace bude všichni pracovat ve stejném prostředí bez ohledu na to, jestli používáte Windows, Linux či MacOS.
Nastavíme si přístupy do našich Kubernetes clusterů.
Canarytrace
Smoke Spustíme Canarytrace v režimu smoke a začneme sbírat první rychlostní metriky.
User Journey Napíšeme si několik scénářů, jak projít webovou aplikaci pomocí Playwrightu a jak změřit důležité metriky.
RUM Nasadíme RUM do webové aplikace a budeme měřit na reálných zařízeních jako je počítač nebo mobil.
Elasticsearch stack
Co je to Elasticsearch a co umí. Pro naše testování si rozjedeme Elasticsearch stack v cloudu.
Co je Kibana a jak se používá.
Projdeme data, metriky a způsob logování Canarytrace.
Nastavíme si základní alerting v Kibaně.
Automatické odstraňování dat, které již nepotřebujeme.
Debriefing
Projdeme vaše poznatky a dotazy.
Šestý den Canarytrace Listener.
Povíme si o chytristice, kterou Listener provádí nad nasbíranými daty z Canarytrace. Manuální vyhodnocení spousty rychlostních metrik by bylo náročné, proto je potřeba je vyhodnocovat automatizovaně.
Defaultní sada thresholdů, které to jsou a jak je můžeme rozšířit o vlastní. Projdeme vestavěné thresholdy, které automatizovaně vyhodnocují, jestli je webová aplikace použitelná a jestli vyhovuje NFR.
Možnosti nastavení thresholdů a notifikací. Nastavíme alerting pro posílání notifikací, pokud se překročí nastavené thresholdy.
Spustíme si Canarytrace Listener.
Debriefing
Projdeme vaše poznatky a dotazy.

Co si z tréninku odneseš

#webPerf je evoluce a budoucnost v testování webových aplikací a ty budeš mezi prvními, kdo to umí. Zvýšíš svou cenu na trhu, získáš certifikát, zkrátíš si dobu samostudia ze dvou až tří let na pár hodin, dozvíš se to nejpodstatnější, budeš testovat správně a dostaneš pořádný boost do začátku.

  • Certifikát o absolvování tréninku.
  • Veškeré zdrojáky a konfigurace které použiješ či napíšeš si odneseš.
  • Trial licenci Canarytrace.
  • Zdarma konzultaci po tréninku.