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