ano skutečně sebe na to souboj indikuje uši moje příjmení nasvědčuje že má tím že

to tak

ten můj kolega pavel macík to méno prvky k náhodou vzniklo takže jsme si říkali

že uděláme to výkonnostní testování jak sem dycky říká písek a

takže od toho je tam taky kapr jako

performance

taky půjdu tak

l dobré ráno ještě jednou my sme rádi ste přišli jednak takhle

brzo že jste si vybral jako první prezentaci právě tu naši

a vy sám neska chtěli ukázat nástroje který jsme s pavlem vyvinuli převážně s pavlem

mám eště zhruba asi deset lidí co se nám na tom projektu tak mihlo

ten projekt je opensource takže bych chtěl apelovat i na vás kdyby se vám něco

tam líbilo nebo naopak neznal chtěli se to opravit můžete se potom přidat a přiložit

ruku k dílu

a ten

projekt celý vzniknou takže úmyslné red hatu byly

totálně jestli bysme nespustil nějaké performer jste s ty na nějakých miliardových řešení chodbě točej

zejména na jboss produktech jako aplikační server nebo

platforma pro jsem děsně orientovanou architekturu a podobně

a my sme zjistili že ten úkol jak sme si na začátku mysleli jo to

vezmu nějakej činitele nebo cokoliv a pustíme ta ono to pojede

tak nebylo vůbec tak jednoduchý protože

tím že jsme testovali vlastně

ten miler přímo tu vrstvu na to praštím systém na čem vlastně nové programátor staví

aplikace tak

a neudělá tak aby byla strašně rychle

a my sme

tech nás to jejich co byli

dostupný naráželi na to že ty názvy nebyly schopny vygenerovat dostatečně velkou zátěž vůbec

džemy toto se to se vůbec nedá nedalo srovnat ten výsledek s tím a

tím že ty nástroje naráželi na strop svých možností tak

to způsobovalo taky velké rostly těch výsledcích

že třeba

dvakrát nepustil ten stejný test

a rozdíl v tech čísle byl deset procent a

red hatu je to nastavení takže když výkon nějakej nějaké novější verze produktu je o

tři procenta horší než ta předchozí jak se to vůbec nesmí vydat takže takhle ve

taky testování prostě dost k ničemu

aha

právě proto sme začali

programovat prvky kde sme se

snažili odstranit ty

problémy s těmi ostatními nástroji

a snažili jsme se udělal taky

jednoduchý

lehký s minimálním vlivem na ten měřený systém

a

tak modulární tomu se ještě vrátím

tak podívejme se třeba jak je definovaný nějakým projekt requirement dokumentu takový požadavek na ten

systém co já chci měřit

a

vypadá to že nějaká služba teda musí odpovídat za me ne šest milisekund devadesáti procentech

čas

je to dostatečný požadavek nebo není

tam třeba se vůbec neříká o tom kolik já tam budu mít paralelních klientů že

jako vy tam vidíme přistupovat zároveň

na

jak třeba velkou zprávu sem do té nové velký požadavky vůbec to té aplikace budu

posílat všechno no tak

na vodě ale můžeme se zkusit po jedna to se s tím dá dělat

tak

dejme tomu že teda to vyzkouším pro různý počet

klientů

a jestli mi neřekli často před

na takže si definuju nějaký rozmezí té rychlosti jako já bych o to je zřejmě

systému požadoval

a

toho nám vypadnou takovejdle graf

takže sme dycky řekli tak mi potom systému chceme no my tam budeme posílat zátěž

v jednom dvou váš dvě stě klientech zároveň

a budeme potom se budu chtít nějakých na tom grafu jsme si definovali asi osum

a různých

rychlosti kterou sme dostali začali generovat na tam jsme tohle dostali tak sme poslali osumdesát

osum

různých spuštění to perform s testu

a to je poměrně náročná není to jako jednoduchej způsob jak dojít k tomu vlastně

co zaměřenej systém umí ve skutečnosti

na tom grafu je taky jedna zvláštní věc

a to je to že ono to vypadá že vlastně zaměřenej systém

je schopnej odpovídat nějakým čase bez ohledu na to jakou rychlost já po něm požaduje

a tak sme se kromě na kamery spousta jednu taky podívali na to jakou rychlostí

ten systém opravdu pracuje

a ono se ukázalo že

vždycky dojde nějakým bodě odklonu vlasy z toho o toho ideálu o té požadované rychlosti

se ta rána začne

když je protože to prostě pro ten daný počet klientů narazíme na slunci

když tyhlety dvě informace spojíme dohromady

tak zjistíme že

realita je vlastně takováhle že to

že to někde končí

ale pořád na to abysme dokázali tohleto zjistit tak sem poslali těch osumdesát osum spuštění

zhruba

a

to pořád nepovažujeme za optimální

proto přichází na pomoc prvky tak

jak jsem říkal prvky ke poměrně minimalistický má minimální vliv na ten měření systém na

podporu celé škále různých pointu

upozornili chlap na jednu věc my se nesmíme zaměřujeme na testování webového von ten du

že mi do té aplikace nejdeme jako přesto můj protože ta naše výdaje vtom že

ten webový von ten málokdy je skutečně

toho co tu aplikaci brzdí co snižuje její výkon chápu že některý aplikace dyž to

nevyplo jako jedno horko tak sem těžko dostává dovnitř potom tebou vrstva bych komunikovat přímo

se službou ale tohletomu napsaný pro komplexnější systémy kde ty služby jsou jakoby trochu rozděleny

je dá se k nim skutečně dostat

pokud vás a zajímá testování přímo přes ten pře sto webový můj tak mi doporučené

že konkurence a teď jet link se ve skále krásně píšou ty scénáře

tak

prvé celé škále těch pointu perfect je taky modulární jak se zmínil o začátku a

to znamená že je možný si napsat vlastní rozšíření

myslel jste zjistili že spousta vývojáře to dělá tak že si nějaký performer jste s

ty svoje tak nějak napíše mezi umí testy a no protože abyste tam poslal něco

takhle trochu jinak a to mi žádnej nastolit stačí a teprve dobrý

proto sme napsali ten prchej tak abyste si do toho mohli dát jednoduše nějaký pluginy

tam je vlastně rozhraní tady jsme nejsem bere stačí implementovat tři metody otevření spojení poslání

zprávy a zavření spojení a najednou mi to uplně novy protokol

pokud chcete třeba každé iteraci poslat nějakou

na požadavek někam jinam nebo a

nebo trochu jinou tu zprávu máme tam třeba sekvence který umí automaticky doplňovat nějaký hodnoty

nebo se

tom jsem do docker lokální proměnná vložit

jaký stav a pak na tom stavět

tady jedna ještě důležitá věc ačkoli prvky ke napsaným javě

tak

je možný s ním testovat

cokoliv není to zaměřeného na javové systémy můžete klidně testovat prostou službu nebo web servisu

napsanou dotkne tu

do databáze tam máme konektor máme tam na máme tam

chytli ty protokol například

což používáme testování ten je tu věcí

a

praktikuje pár

užitečných

algoritmu některý z nich jsou dokonce patentovaný

a je to na to že on umí chytře zjistit by se tam je řada

aplikace zahřál opustí ten trest a sleduje jak se vyvíjí ten výkon té aplikace a

ve chvíli kdy podle nějakýho

nastavení dojde k tomu že ta aplikace zahřát evan tebe spustit znova pokračuje se tom

měření už jako by normálně bylo sem ten začátek toho trestu jako

neovlivnila ty výsledky

pak máme možnost měřit paměť spotřebou paměti to teda aktuálně u javový programu ale ta

komunikace probíhá přes nějak jednoduchej ty si vysoké takže se to dá na police python

nebo

cokoliv jinýho

a

tam se opět provádí nějaká lineárně regresní analýza která sleduje si ta paměť nahoru tak

pomalinku neustále nestoupá a kvůli tomu ste schopni odhalit nemodlí k daleko dřív než on

se ve skutečnosti projeví

tak

poďme se teďka na to jak se ve zvyku specifikuje ten

my máme

studenti nám probrali v rámci diplomových a bakalářských prací

pluginy do jak vypsala do intelligent dialogitech a nejsou nějakým úplně super stavu takže

to není řešení který by jsme doporučovali ale takže pane příležitost kdyby si chtěl zapli

do té komunity že ty pleny trochu si nějak

vyladit určitou vítáme

ste nás můžeme specifika dvěma způsoby první je tady tohleto d se oko

to nám říká že ten scénář vlastně má běžet

minutu padesáti vláknech

defaultně si že generátory věcech které

se za chvilku zmíním podrobněji která nám vlastně říká jakým způsobem se ty zprávy budou

posílat nebo ty požadavky budeme to posílá na toto to přesně jako pust metodou bych

si budeme deportovat

počet iterací za vteřinu do konzole každou vteřinu a beze poslat pěti kilo bajtů a

xml zpráva

tak to je vlastně všechno ze potřeb tomu testu říct

i možnost a napsat tom xmlku to bude potom pavel ukazovat tom demu a

je to nákladní komu se líbí víc jedno nebo počítat výrazová schopno se tam úplně

stejná

tak a když sme tenhle ten scénář

pustili proti tomu systému proti tomu co sem ukazovali před tím

tak sme došli k těmto výsledkům

vlastně zároveň během jednoho běhu jsem byli schopni změřit ten

to propustnost a three spousta není pomoci toho defaultně řeč generátoru které napsaný takže je

schopný zjistit ten takzvaný si víc po té aplikace tobě ta aplikace ještě schopná pracovat

a rozumně posílat ty odpovědi

když tohle to spojíme s tím co jsme naměřili předtím

tak

že s tím že sme vlastně zjistili to

co nás nejvíc zajímat to kde sou ty krajní možnosti té aplikace

akorát že jsme na to potřeli jenom jeden spuštění protože pro kde nás různých počtu

těch paralelních klientů nebo vláken

takže tomhletom vidíme tu hlavní hodnotu toho prvky kůže

jsme schopni to co nás nejvíc zajímá zjistit opravdu rychle

že máme tu podporu pro celou řadu těch

pointu minimální vliv na ten daný systém

můžeme se podívat třeba dyž bysme to ten požadavek na začátku měli definovaný trochu podrobněji

a on třeba na mluvil už o

tom že chceme konkrétní se zaměřit na těch padesát prvních klientů

tak by nám stačilo spustit ten pes vlastněn jednou

a perfect na podporu pro histogram takže bysme se tam nastavený histogram a viděli bysme

že

nějakých štyryceti devíti procentech případů sme odpovídali mezi třema šesti milisekunda má ve čtyřiceti

čtyřech necelých sme odpovídali mezi nula tři

a dohromady sme před stě devatenáct takže sme ten požadavek splnili

a

teďka máme teďka bych bysme vám chtěl ještě ukázat jednu důležitou věc a ne pro

vás důležitou

a nedávno jsme udělali takovou

menší akvizici spojili jsme se ještě

s kolegy kteří vyvíjejí nástroje co se menuje refe po

a

té aplikaci která slouží pro uchovávání výsledku těch performance testu

prvky má přímou možnost zapisovat i výsledky té aplikace ta aplikacema restaura rozhraní dá se

použít i samostatně podprvky ku pro ukládání těch výsledků a

co není super je to že vona je schopná vlastně vy máte nastartováno na běží

nějaké automatizovaný systém vám poušti ty performer s testy sype do toho nový čísla

a kdokoliv kdykoliv přidal té aplikace podívá se a vidí graf srovnání toho výkonu pro

já nevím různou verzi ta aplikace pro aktuální byl

pro cokoliv prostě aktuální stav beztoho že vy byste museli ty čísla nikam kopírovat nebo

udělá slováky

brečí zdrav máma nebo cokoliv

to je prácu takže můžete komukoliv koho to zajímá je super levná chtěli poslat jenom

ten odkaz a sledu si to už tento doběhne tak to tam uvidí že budou

nazdar

tak

další věc co by sem rád zmínil je něco co nás

čeká ještě mi aktuálně jsme schopni se napouš ty testy v klastru tu zátěži věnovat

více uzlu ale ta práce je manuální musíme se mi po spouštět instance toho prvky

u namířit to

na

tu aplikaci kterou měříme a potom nějak ručně posbírat ty data a dá při je

dohromady

tady třeba na tomletom bych aktuálně děláme chtěli bysme to

do

patrně jarního releasů

zařadit vždycky když jdeme na podzim měli jarní rovnodennost tak je

dyby se ale někdo kdo to chtěl přiloží tak to taky uvítáme

a další města na ten a teďka pracuje jeden student snažíme se zapojí ten prvky

kdo co největšího množství

testovací nástroj aby se dal snadno použít

máme se nyní plením je tam a bič bojové takže bych si z nějakýho test

uklidnil fu že ten

perských zavolat a spustit

integrace dva roky janu představovali bysme si to že to bude fungovat nějak takhle jednoduše

pomocí anotace a kde nás to vyděsilo neznáte pro

spouštění

jeli testu přímo kontejneru to znamená že on třeba když máte aplikaci na typu jo

na aplikační server on ten pes prostě přímo vtom aplikačním seru výhoda je že vy

si pak může to vlastně u té aplikace

jenže to what zdroje ste

do to testů že ten že to stres té aplikace

tak

to je asi všechno denně

jsem na nic nezapomněla a pak vám teďka ukáže demo

přímo s perfect do teda bude používat s příkazové řádky

pro nás je ta zvedne nejjednodušší z hlediska to je automatizace conti mínus integration systému

co použijeme tušení jenkins

protože se tam prostě zadá

když skripta nebo se to pustí mi nemá

takhle není to nic hroznýho idnes to grafický rozhraní

pavel vám to ukáže asi se to popisu tak tím ti předal slovo

kdy jsem nahoru

chtěl eště něco

tak takže box

miliony

takže rivalita přibylo jakým způsobem se vlastně ten prvky používala

angažovat a na konkrétním příkladu nám tady dvě nohy destičky raspberry páry ve plus a

raspberry pipě zrovna to jsou ty dvě jsou celkem stejně byla tam je lepší procesor

a na každý z nich běží restaura služba to stat ta stejná

a já jí pomocí prvky ku otestuji výkon

a každý si destiček a tím no tři srovnám po tím se chci podívat jakým

způsobem

jaký výkon těchto u těch dvou destiček v rámci týdle služby

prvky budu pouštět jako špatně říká se s konzole

a

co ještě důležitý je že prvky ty výsledky bude ukládat do toho performance repozitáře nima

tě mluvil a to srovnání s to chodila na to zavání za podíváme společně v

něm

tak ten byl konec repozitář

jenom jestli víte na to dobře zezadu ty písmenka jsou dost velký

tady na webu

tak to vidět

takle vypadá je to je to je to webová aplikace ty čísle přihlásí

je tam se tam vrátit definice testu maminka tady sou

pro kedy tý a provede stojí rozhraní

a na

tady pak

se dá podívat na ty na televizi těch test rozum to nějaký trik nějaký sou

který sem zkoušel prašť před prezentaci

pak potom in pokaždý mi na ten byl u toho graphic se tady podíváme

a

je na ten výsledek a pak on každé diskusi stejně a jednoduchý report který jste

viděli jehož ten čas jste viděli prezentaci

tak

podíváme se nejprve

na

scénář který budeme pouštět

tak mu to není a nebo s podobným

takže vpodstatě ten scénář se koukat tom xmlku bude běžet dvacet vteřin bude používat endif

obří generátor který hledáte s pískot aplikace

poběží deseti vláknech bude posílat do požadavky na to tou do co šel vlastně adresa

toho s adresa toho jednotlivýho rez bryčka to konkrétní adresu já zadám s konzole přes

pro ty která se ne server host

guru měřit počet zpráv za sekundu a ty výsledky průběžné posílat každých pět vteřin na

konzole

pak tady máme nějaké grafy které tak jak umí generovat sám o sobě tak trims

opak vidět krásně

průběh celého toho testu

a pak tady je destinace která posílá ty reporty do toho prd konec repozitáře co

je nejdůležitější je

specifikace

nich temu pro daný oběh podle kterého se to pak tom repozitáři dá filtrovat a

specifikovat ty reporty nebudem tím peckem označovat tu destičku na které to lossy poběží že

to má z bri pája rozbili pipě

dobrá zpráva krásko je posílal petra bude se dáte to po požadavek přes poušť metodu

a bude to jednoduché dal že krátká zpráva

tak

ta službami tady na hrozby lišku zběžně se mi nestartovalo voš předtím protože to chvilku

trvá přeci jenom je to omezený zařízení

a je to implementovaný jenom ti commit nejen i jednoduchém kimonem firmu arrow tě hodnej

té to taky moje vlastně ty dražší platforma opensource o to opačně

která umožňuje nad tím způsobem

integrovat různé věci mi stahovat služby přes za rozhraní a já to používám jako proto

implementaci jednoduché testové služby

tak

služba nám blíží

poďme se podívat jak se pustí trest kterému my vlastně tak jako říkam scénář

je to jednoduché zavolá se skript prvky jako parametr jestli je jméno scénáře seš našem

případě s

adresa toho serveru dosud toho serveru respektive to služby

specifikován pomocí této pro ty

ještě větší

jasně že u toho

vidíte to takle nemluví potřeba zvětšit ještě

že adres to je za na adresu toho

chvilička a specifikem ten to proměnnou tech

kterou po run

posteli páni na naší se podíváme do toho repozitáře bys věděl jakým jsme stavu tady

vše jaké jsou sou tady tři a po skončení toho testu se to mělo objevit

nový

tak prvky už běží

já stavem vybízel dvacet sekund a že to nebude dlouho trvat jak vidíte každých pět

vteřin

to posílat průběžné výsledky je to konzole když mu kde se tělák nech

a

jiřina ne takže ta která si zase zajímavý střet mbed na začátku změří jak rychle

vůbec ten systém tak tento běžíte je nebo jako maximální rychlost neschopné naměřit kde se

de rozlišovací schopnost čína chtěl časovače cestu ti na ten hardvér myslel to co mezi

vykázat mi snad třem narazili

kastrovaný prostředí na hlavu vyzkoušet ať nějaký pitomec městě ukázalo se že ta to virtualizovány

prostředí vůbec ne to vize ten časovač tak často je ten operační systém pod tím

a

takže jsme tam dost omezení do maximální rychlostí

tak test na nebylo

takže vidíte tak nám tady přibyl nový výsledek jo mě se hodnota

tak kolem třiceti zpráv za sekundu

tak pustíme ten samý test

a tentokrát na rozbili pipě

nenasycenou síťový switch

tak nastartujeme to službu

tady by to mělo by rychlejší

ten prst spuštění toho testu bude vpodstatě úplně stejné akorát jediný bude se lišit adrese

toho

ty služby a vtom to jako že to poďme nebo z británie

a co máme meta

celá ta služba

s tím i ten test a uvidíme

jak i na tom reply oproti dvojka oproti té předchozí

ta slova nastartován

zase každý pes takže

ještě tam je vidět těch tyhle portech o ten formát je spoleh je vypnutý protože

chceme rychle ukázat jak to funguje reálný testy se pak dělají takže si nechejte že

delší dobu běžně puštěný prostě kolem pěti minut

a zapínáme tu funkci toho mapou protože testujeme žaluj aplikace java aplikace vlastně

běží virtuální stroje který používá takzvanou času ten kompilaci

a

to znamená že slovo bytekódu se to

se to

překompilovat do nativního kódu váš po nějaký době když se ten daný kolovat pouští dostatečně

krát tak se teda překompilován byly rychlejší takže ta aplikace celá

a je potřeba pustit i pro nějaký ty jaký ten kód nechat běžet

opakovaně tak aby se

jak my říkáme se řádek že

to chvíli trvá

ten prvky k náš ní ten bot toho kdy dojde k tomu úvodu mapu identifikovat

automaticky je takže není potřeba nastavovat že chceme dělat vona tu první část třeba deset

sekund nebo první chtít snese tisíce iterací toho trestu

prostě řekneme detekuji formát nebo zapne neformátovaný duše on už to detekuje sám

na celkem

ten jednoduchý ale dost mocný algoritmus tak ten test už proběhl

se podíváme mezi výsledky tak vidíme že se nám tady mobil

výsledek pro dvojku

a hodnota je

o dost vyšší nějaký šescet

iterací jestli půjdeš vidíme že rozbili pár velkého dost roste vhodnější pro

nějakým ten věcí na resetu

také se poďme podívat na

asi skutečnou sílo a přínos toho repozitáře s kterým asi spolupracujeme a to je že

nejenom že ukládáme ty výsledky někde nějaký databázi

ale že jsme schopni z nich vygenerovat nějaké ty reporty které spadají

které se pak dají někomu ukázat poslat odkaz neboli přímo integrovat v nějakém jiném sportu

prostřednictvím odkazů na graf a podobně

takže vytvoříme si

report vlastně stačí

přidat

pes který se nehraje s

vtom na našem report to budeme chtít mít zobrazené výsledky které odpovídají kombinací tegu tady

tedy byly ale u tý

to je

tech který má bohužel ne teďka vlastně pro všechny testy a

rozbili po jednáte ten náš tech který jsme zadali rámci našeho testu

a druhý

který bude dnes rovná

je

se to místo aplikace není ještě úplně ta p f po není ještě úplně vyzrálé

co kamarádem je tam ještě pár takže jsme z většiny debat na je se tady

vyskytoval jeden tak navíc protože už tam nějaký výsledky mám a vám přijde kombinaci si

s tím vám to když povíme no a

a to by nám mělo vadit

přesto tímto prozrazení to je taky jako na tři písmenka

je to všechno že klíče si je fází

máme to tam ty výsledky

teďka tam přidáme to srovnání se musel matice

deskriptory je versus to a nesmím zapomenout pojmenovat ne protože další chybička

systém ty ten kontejner činnost tenhle

tam je

já není tam dobře a radši uložen ten report

ještě jednou

jako tak výsledek

takže

odkaz na tento report se pak dá poslat

dá se nastavit by

nějaké

chtěli asi character vopršelý na tom na tom proto by se nastavil

kdo smí ten report je děda se to nastavit jako že to může je každý

můžete ten trest

ten na odkaz a ten report poslat

poslat jinam

opět architektura to vezmete modulární to znamená že je možný jednoduše doplňovat

jakoby platím to nějakej jinej si to report

máme tady nějakej nějaké výsledky pro kritiky jako kam je tady pro skrip leničko ještě

neběžel je

teda tedy právě je ta chvíle že vtom reportu ve chvíli kdy by tam to

kdyby to nějaké teze proto to číslo ste rozbili paničky tom let koukáš

todle jinak report které se mi to ještě před co to máš prezentaci dneska někde

jsem právě zadefinovat i tu službu pro děti ty místo té mi starostou a stihl

jsem pustit jenom to na jedničku

a tady vidíte že dnes ty výsledky sou ty nové které jsem pouštěl dneska nebo

teďka při dva menší peklo podíváte tak tu ty výsledky sou zaregistrovaný oba to co

jsem pouštěl ráno i teď

s tím že trefili po

tam vtom reportu zobrazuje tu

lepší z nich to znamená tam se dá specifikovat u metriky jestli

jestli lepší je že dyž ta hodnota je větší nebo jestli je případě také propustnosti

nebo pokud je lepší ten výsledek pokud ta hodnota je menší jak například je spousta

no tak podobně

takže odklon pozná která je nejlepší a stě který tam sou a když to bereš

tento spoustě znova tak se tam zase zaregistruju výsledky jo tam vtom report ukáže tu

nejlepší z nich vás

nedá se to nakonfigurovat samozřejmě jiným způsobem to chování na slastně zobrazit poslední nebo první

touž porušuje tou show

pak záležet tanku funguje

ty vy mezi mentality graf rotopedu

je taky

tady se podíváme tady nám prvky vygeneroval graf pro ty dva by se sem vám

tady

jako ukazoval

a můžete tady res můžeme s metrů po to rozbili pane znáte paní je

takle vypadal ten bych tady vidět jasně ten formát ještě

ale vypadal ten pro jedničku rozbil íčko

a takle totiž stranu vedle sebe je prvky ty grafy umí srovnávat když tam teďka

pustil ten test eště jednou tak se přidá mezi ně a vidím wiki srovnání

já bych i já používám prostě nějaký stejný metriky nesmaže ten adresář ti

grafu byla nastavený že mi to má deportovat akce ten automaticky do toho

připojí vždycky to znamená že není potřeba zase utopil styku používat openfile po aby to

abyste dotazy získat nějaký grafický výstupy reprezentuje ty výsledky

o

to je ode mě takhle základu všechno teďka