{"id":13745,"date":"2022-05-16T07:00:57","date_gmt":"2022-05-16T05:00:57","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=13745"},"modified":"2023-05-30T15:39:54","modified_gmt":"2023-05-30T13:39:54","slug":"z-pamietnika-inzyniera-wydajnosci","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/z-pamietnika-inzyniera-wydajnosci\/","title":{"rendered":"Z pami\u0119tnika In\u017cyniera Wydajno\u015bci"},"content":{"rendered":"\n<p>Czy zastanawia\u0142e\u015b si\u0119 kiedy\u015b, jak wygl\u0105da\u0142by \u015bwiat, w kt\u00f3rym nikt nie przejmowa\u0142by si\u0119 wydajno\u015bci\u0105?<\/p>\n\n\n\n<p>Wyobra\u017cacie sobie na przyk\u0142ad, \u017ce Wasza poranna kawa nie wyp\u0142ywa z ekspresu zaraz po naci\u015bni\u0119ciu przycisku, a dopiero po godzinie? Co by\u015bcie czuli, gdyby ulubione lody w lodziarni trzeba by\u0142o zam\u00f3wi\u0107 kilka dni wcze\u015bniej?<\/p>\n\n\n\n<p>Potraficie zrozumie\u0107, jak \u017cyli ludzie w czasach, gdy podr\u00f3\u017cowa\u0142o si\u0119 pieszo albo konno, a przebycie kilkunastu czy kilkudziesi\u0119ciu kilometr\u00f3w zajmowa\u0142o wiele godzin lub nawet dni?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego wybra\u0142em t\u0119 \u015bcie\u017ck\u0119?<\/h2>\n\n\n\n<p>Zajmuj\u0119 si\u0119 wydajno\u015bci\u0105 w informatyce od 15 lat, ale zanim jeszcze zorientowa\u0142em si\u0119, \u017ce informatyka to co\u015b wi\u0119cej ni\u017c sk\u0142adanie komputer\u00f3w z podzespo\u0142\u00f3w kupionych w sklepie, ju\u017c wiedzia\u0142em, \u017ce tamte czasy nie s\u0105 dla mnie. <strong>Od zawsze dostrzega\u0142em detale, kt\u00f3re nie pasowa\u0142y do ca\u0142o\u015bci <\/strong>i oczekiwa\u0142em wi\u0119cej od rzeczy, kt\u00f3rych u\u017cywa\u0142em. Dlatego moja \u015bcie\u017cka kariery od samego pocz\u0105tku skierowa\u0142a si\u0119 na tory <strong>testowania i to w trybie ekspresowym!<\/strong><\/p>\n\n\n\n<p>Rozsi\u0105d\u017acie si\u0119 wygodnie i pozw\u00f3lcie, \u017ce zabior\u0119 Was w podr\u00f3\u017c w czasie. Opowiem, jak wygl\u0105da\u0142a moja przygoda, podczas kt\u00f3rej dba\u0142em o to, \u017ceby nasze systemy spe\u0142nia\u0142y oczekiwania u\u017cytkownik\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czasy Staro\u017cytne \u00adi pierwszy b\u0142\u0105d wydajno\u015bciowy<\/h2>\n\n\n\n<p>Wspomnia\u0142em ju\u017c, \u017ce wydajno\u015bci\u0105 zajmuj\u0119 si\u0119 od naprawd\u0119 d\u0142ugiego czasu. Ledwie odkry\u0142em, \u017ce jest wiele j\u0119zyk\u00f3w programowania, a kod potrafi wi\u0119cej ni\u017c tylko wydrukowa\u0107 na ekranie \u201eHello World\u201d, a ju\u017c wyl\u0105dowa\u0142em w wydziale, kt\u00f3ry dumnie nazywa\u0142 si\u0119 Quality Assurance.<\/p>\n\n\n\n<p>Sta\u0142em si\u0119 tym samym <strong>stra\u017cnikiem jako\u015bci<\/strong>. Maj\u0105c do\u015bwiadczenie zdobyte przez cztery lata na studiach, czu\u0142em si\u0119 przygotowany do tego, aby wytyka\u0107 b\u0142\u0119dy innym. Ju\u017c po trzech miesi\u0105cach pracy i ze statystyk\u0105 na poziomie 95% odrzuconych defekt\u00f3w zrozumia\u0142em, \u017ce testy funkcjonalne nie s\u0105 i raczej nie stan\u0105 si\u0119 moj\u0105 dziedzin\u0105 na ca\u0142e \u017cycie. <strong>Wymaga\u0142em bowiem od testowanych system\u00f3w znacznie wi\u0119cej ni\u017c opisuj\u0105ca je dokumentacja.<\/strong><\/p>\n\n\n\n<p>Do tego nic mnie tak nie wyprowadza\u0142o z r\u00f3wnowagi, jak powtarzanie tych samych scenariuszy testowych w k\u00f3\u0142ko, udowadniaj\u0105c, \u017ce te pozosta\u0142e 5% b\u0142\u0119d\u00f3w nadal wyst\u0119puje, mimo, \u017ce system zosta\u0142 zrestartowany, a u programisty wszystko dzia\u0142a. Gdy moje zdrowie psychiczne by\u0142o ju\u017c na skraju wytrzyma\u0142o\u015bci, zacz\u0105\u0142em automatyzowa\u0107 swoje testy.<\/p>\n\n\n\n<p>Dzi\u015b, patrz\u0105c na to co wydarzy\u0142o si\u0119 chwil\u0119 p\u00f3\u017aniej, nie mog\u0119 uwierzy\u0107 w taki zbieg okoliczno\u015bci.<strong> System<\/strong>, za testy kt\u00f3rego by\u0142em w\u00f3wczas odpowiedzialny, <strong>nie wytrzyma\u0142 intensywno\u015bci moich test\u00f3w automatycznych.<\/strong><\/p>\n\n\n\n<p>Wol\u0119 nawet nie my\u015ble\u0107, na czyjej kozetce dzi\u015b opowiada\u0142bym o swoich do\u015bwiadczeniach z m\u0142odo\u015bci, gdybym w\u00f3wczas, zaintrygowany awari\u0105, jak\u0105 wywo\u0142a\u0142em, nie zacz\u0105\u0142 docieka\u0107, co si\u0119 sta\u0142o, dlaczego system zachowa\u0142 si\u0119 tak, a nie inaczej <strong>i co to znaczy, \u017ce dosz\u0142o do wycieku pami\u0119ci\u2026<\/strong> Tak oto znalaz\u0142em sw\u00f3j <strong>pierwszy b\u0142\u0105d wydajno\u015bciowy<\/strong> i sta\u0142em si\u0119 pierwszym testerem wydajno\u015bci w organizacji.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u015aredniowiecze, czyli za d\u0142ugi czas odpowiedzi i \u201epotencjalnie w\u0105skie gard\u0142o\u201d<\/h2>\n\n\n\n<p>Z b\u0142ogos\u0142awie\u0144stwem swoich zwierzchnik\u00f3w, zacz\u0105\u0142em testy wydajno\u015bci. Ten okres jest najtrudniejszy do opisania. Z jednej strony pami\u0119tam, jak bardzo cieszy\u0142em si\u0119 w\u00f3wczas, \u017ce sam sobie by\u0142em sterem, statkiem i okr\u0119tem. Z drugiej jednak w Internecie nie by\u0142o wielu informacji o testach wydajno\u015bciowych, nie by\u0142o setek filmik\u00f3w i instrukcji o tym, jak testowa\u0107 dan\u0105 technologi\u0119. Je\u015bli pami\u0119\u0107 mnie nie myli, <strong>do dyspozycji by\u0142y w\u00f3wczas trzy narz\u0119dzia, z czego tylko jedno umia\u0142em uruchomi\u0107.<\/strong><\/p>\n\n\n\n<p>Ma\u0142ymi krokami odkrywa\u0142em, jak tworzy\u0107 testy wydajno\u015bciowe i uczy\u0142em si\u0119 na w\u0142asnych b\u0142\u0119dach. <strong>Do dzi\u015b wstydz\u0119 si\u0119<\/strong>, jak mocno upiera\u0142em si\u0119 wtedy przy tym, \u017ce testy wydajno\u015bciowe nale\u017cy wykonywa\u0107 tylko na sko\u0144czonym systemie i tylko na produkcji. Kosztowa\u0142o to mnie i administrator\u00f3w wiele zarwanych nocy, podczas kt\u00f3rych zmuszeni byli wspiera\u0107 moje fanaberie na temat test\u00f3w nocnych.<\/p>\n\n\n\n<p>Szczeg\u00f3lnie, \u017ce w\u00f3wczas moje <strong>testy opiera\u0142em wy\u0142\u0105cznie na czasach odpowiedzi<\/strong> i ci\u0105g\u0142ych pytaniach np. \u201eDlaczego w 53 minucie testu system nagle zacz\u0105\u0142 odpowiada\u0107 znacznie d\u0142u\u017cej?\u201d. Po jakim\u015b czasie testy robi\u0142em ju\u017c sam, a rano dostawa\u0142em w arkuszach zestaw danych, kt\u00f3re zbierane by\u0142y z serwer\u00f3w. W moich raportach poza czasami odpowiedzi pojawi\u0142y si\u0119 jeszcze statystyki z obci\u0105\u017cenia procesora, zu\u017cycia pami\u0119ci, utylizacji dysk\u00f3w czy sieci. Zacz\u0105\u0142em r\u00f3wnie\u017c nadu\u017cywa\u0107 zdania: <strong>\u201ePotencjalne w\u0105skie gard\u0142o\u201d.<\/strong><\/p>\n\n\n\n<p>W\u00f3wczas my\u015bla\u0142em, \u017ce <strong>osi\u0105gn\u0105\u0142em ju\u017c szczyt diagnostyki wydajno\u015bci<\/strong>. Przez wiele lat wykonywa\u0142em testy wydajno\u015bciowe coraz to nowszych technologii, kt\u00f3re pojawia\u0142y si\u0119 jak grzyby po deszczu, a ka\u017cda z nich by\u0142a coraz trudniejsza w testowaniu. Wci\u0105\u017c jednak wysy\u0142a\u0142em wyniki, opisuj\u0105c \u201epotencjalne w\u0105skie gard\u0142a\u201d. P\u0119ka\u0142em z dumy, gdy uda\u0142o mi si\u0119 tak uzasadni\u0107 moje przypuszczenia, \u017ce wdro\u017cenia by\u0142y op\u00f3\u017aniane o kolejne miesi\u0105ce, podczas kt\u00f3rych ja wykonywa\u0142em kolejne iteracje tych samych test\u00f3w i produkuj\u0105c setki stron raport\u00f3w, przygotowuj\u0105c i analizuj\u0105c ka\u017cdy wykres, statystyk\u0119 i miar\u0119 r\u0119cznie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nowo\u017cytno\u015b\u0107 i wywr\u00f3cenie przekona\u0144 do g\u00f3ry nogami<\/h2>\n\n\n\n<p>Systemy zaczynaj\u0105 rozwija\u0107 si\u0119 zwinnie, <strong>znika podzia\u0142 mi\u0119dzy ich rozwojem a utrzymaniem. <\/strong>Na pierwsz\u0105 lini\u0119 walki z wydajno\u015bci\u0105 i stabilno\u015bci\u0105 system\u00f3w wychodz\u0105 r\u00f3\u017cne narz\u0119dzia wspieraj\u0105ce ich monitoring. Z dotychczas zbieranych kilku metryk i przekonania, \u017ce <strong>Garbage Collector to tylko mityczny stw\u00f3r<\/strong> nawiedzaj\u0105cy aplikacje napisane w Javie, wyrywaj\u0105 mnie narz\u0119dzia typu <strong>Application Performance Management.<\/strong><\/p>\n\n\n\n<p>Setki statystyk i metryk zbieranych przez ca\u0142y czas, nie tylko w trakcie test\u00f3w, wykresy i dashboardy gotowe do tego, aby na nie patrze\u0107, zupe\u0142nie wywracaj\u0105 m\u00f3j \u015bwiatopogl\u0105d. Z moich raport\u00f3w znikaj\u0105 wspomniane ju\u017c wcze\u015bniej legendarne s\u0142owa \u201ePotencjalne w\u0105skie gard\u0142o\u201d. W codziennej pracy znajduj\u0119 <strong>wi\u0119cej czasu na rozw\u00f3j i optymalizacj\u0119<\/strong>. Dzi\u0119ki graficznej prezentacji metryk zbieranych z r\u00f3\u017cnych warstw testowanego systemu cz\u0119sto nie musz\u0119 pisa\u0107 raportu albo tworz\u0119 tylko jeden na koniec test\u00f3w. B\u0142\u0119dy znajdowane s\u0105 i poprawiane nawet w trakcie test\u00f3w.<\/p>\n\n\n\n<p>W bardzo kr\u00f3tkim czasie zupe\u0142nie zrewidowa\u0142em podej\u015bcie do test\u00f3w. Przesta\u0142em dzieli\u0107 testy na fazy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>przygotowanie skrypt\u00f3w,<\/li>\n\n\n\n<li>uruchomienie test\u00f3w,<\/li>\n\n\n\n<li>raport.<\/li>\n<\/ul>\n\n\n\n<p>Zostaj\u0105 one zast\u0105pione samym uruchomieniem test\u00f3w. Wykonywane s\u0105 na tyle cz\u0119sto, \u017ce ju\u017c nie trzeba co chwil\u0119 wraca\u0107 do poprawy albo ponownego nagrywania skrypt\u00f3w. Brak raport\u00f3w na ka\u017cdym kroku sprawia, \u017ce mog\u0119 testy te uruchamia\u0107 znacznie cz\u0119\u015bciej.<\/p>\n\n\n\n<p>B\u0142yskawicznie <strong>dochodz\u0119 do wniosku, \u017ce zn\u00f3w wr\u00f3ci\u0142em do punktu wyj\u015bcia i robi\u0119 ca\u0142y czas to samo \u2013 uruchamiam testy<\/strong>. A poniewa\u017c historia lubi zatacza\u0107 ko\u0142o, zn\u00f3w przechodz\u0119 do automatyzacji, tym razem jednak automatyzuj\u0119 uruchamianie test\u00f3w i zbieranie wynik\u00f3w.<\/p>\n\n\n\n<p>W tym miejscu r\u00f3wnie\u017c pojawia si\u0119 pierwsza my\u015bl o w\u0142\u0105czeniu sztucznej inteligencji w testy wydajno\u015bciowe. Pierwsze idee kr\u0105\u017c\u0105 wok\u00f3\u0142 nauki uruchamiania test\u00f3w, dobierania danych testowych czy analizowania zale\u017cno\u015bci w wynikach kolejnych test\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wsp\u00f3\u0142czesno\u015b\u0107 i \u201eshift left\u201d<\/h2>\n\n\n\n<p>W moich testach pojawia si\u0119 <strong>najnowsza wersja Dynatrace<\/strong> \u2013 najlepszego narz\u0119dzia do monitorowania aplikacji na ka\u017cdym jej poziomie. Od dnia, w kt\u00f3rym po raz pierwszy go uruchomi\u0142em, mia\u0142em dost\u0119p do wszystkich danych zbieranych z system\u00f3w, a poznawanie nowych technologii nie wymaga\u0142o ju\u017c szukania informacji jak i co monitorowa\u0107. Te dane po prostu mia\u0142em dost\u0119pne od r\u0119ki.<\/p>\n\n\n\n<p>Wci\u0105\u017c jednak czu\u0142em, \u017ce nie mog\u0119 stwierdzi\u0107, i\u017c umiem robi\u0107 testy wydajno\u015bciowe. Przez te 15 lat mojej podr\u00f3\u017cy pozna\u0142em dziesi\u0105tki r\u00f3\u017cnych aplikacji wspieraj\u0105cych testy wydajno\u015bciowe \u2013 od generator\u00f3w obci\u0105\u017cenia, narz\u0119dzi do monitorowania, przez aplikacje do automatyzacji test\u00f3w. <strong>A ja nadal tworzy\u0142em i wykonywa\u0142em testy na ostatniej prostej<\/strong> wytwarzania oprogramowania, sporadycznie testuj\u0105c poszczeg\u00f3lne elementy systemu, gdy nie by\u0142 on jeszcze sko\u0144czony.<\/p>\n\n\n\n<p>Oczywi\u015bcie, w ten spos\u00f3b dostarcza\u0142em wyniki test\u00f3w p\u00f3\u017ano, wstrzymuj\u0105c wdro\u017cenia. Teraz jednak wiedzia\u0142em ju\u017c, \u017ce nikt w organizacji nie jest z tego powodu zadowolony, a koszty moich test\u00f3w i poprawy ich wynik\u00f3w s\u0105 bardzo wysokie.<\/p>\n\n\n\n<p>Przyszed\u0142 wi\u0119c czas na \u201e<strong>Shift left<\/strong>\u201d, czyli przesuwanie test\u00f3w jak najbardziej w lewo w procesie wytw\u00f3rczym \u2013 w kierunku jego pocz\u0105tku. Oznacza\u0142o to dla mnie <strong>przyznanie si\u0119 do wieloletniego b\u0142\u0119du<\/strong>, jakim by\u0142o twierdzenie, \u017ce testy tylko na ko\u0144cowym produkcie, jak najbli\u017cej produkcji.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Etap za\u015blepek i Ci\u0105g\u0142e testy wydajno\u015bciowe<\/h3>\n\n\n\n<p>Mia\u0142em jednak ogromne problemy z wymy\u015bleniem, w jaki spos\u00f3b wykonywa\u0107 testy wydajno\u015bciowe wcze\u015bniej, kiedy system nie dzia\u0142a wcale albo tylko cz\u0119\u015bciowo, gdy nie ma GUI, albo \u015brodowisko testowe postawione jest na u\u0142amku tego, czym system b\u0119dzie dysponowa\u0142 na produkcji\u2026<\/p>\n\n\n\n<p>Z czasem zrozumia\u0142em, \u017ce nie ma znaczenia na jakim \u015brodowisku robimy testy. <strong>Wa\u017cne jest, aby testy by\u0142y powtarzalne<\/strong>. Z tym za\u0142o\u017ceniem dopu\u015bci\u0142em do siebie my\u015bl, \u017ce za\u015blepki mog\u0105 by\u0107 wr\u0119cz pomocne w testach, bo zachowuj\u0105 si\u0119 deterministycznie.<\/p>\n\n\n\n<p>Zatem <strong>testuj\u0105c na za\u015blepkach<\/strong> i wykonuj\u0105c bardzo cz\u0119sto testy bardzo ma\u0142ych kawa\u0142k\u00f3w aplikacji, mog\u0142em \u015bledzi\u0107 zmiany w wydajno\u015bci ju\u017c na wczesnym etapie wytwarzania aplikacji.<\/p>\n\n\n\n<p>Pozosta\u0142o jedynie znale\u017a\u0107 odpowiednie narz\u0119dzie, kt\u00f3re pozwoli mi na tworzenie test\u00f3w w ma\u0142ych kawa\u0142kach, uruchamianie ich automatycznie, a potem, na koniec, wsp\u00f3lne zbiorcze testy na gotowej na wdro\u017cenie aplikacji. Wszystkie te potrzeby zaadresowa\u0142o narz\u0119dzie do generowania obci\u0105\u017cenia \u2013 <strong>NeoLoad<\/strong>. Tak oto powsta\u0142y <strong>Continious Performance Tests (Ci\u0105g\u0142e testy wydajno\u015bciowe)<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Niedaleka przysz\u0142o\u015b\u0107 i z\u0142oty wiek in\u017cynier\u00f3w wydajno\u015bci<\/h2>\n\n\n\n<p>Dzi\u015b jestem In\u017cynierem Wydajno\u015bci i spokojnie mog\u0119 powiedzie\u0107, \u017ce <strong>znajduj\u0119 si\u0119 jedn\u0105 nog\u0105 w przysz\u0142o\u015bci test\u00f3w wydajno\u015bciowych<\/strong>. Dzi\u0119ki do\u015bwiadczeniu, kt\u00f3re zdoby\u0142em oraz selekcji narz\u0119dzi dost\u0119pnych na rynku, dla klient\u00f3w Sii przygotowuj\u0119 rozwi\u0105zania, kt\u00f3re nie tylko potrafi\u0105 przeprowadza\u0107 testy wydajno\u015bciowe, ale robi\u0105 to automatycznie \u2013 zar\u00f3wno w zakresie uruchamiania, jak i analizy wynik\u00f3w i raportowania. <strong>Zastosowanie in\u017cynierii<\/strong> poskutkowa\u0142o tym, \u017ce wydajno\u015b\u0107 system\u00f3w jest precyzyjnie mierzona, a wszelkie anomalie b\u0142yskawicznie wy\u0142apywane i poprawiane ju\u017c na wczesnym etapie wytwarzania oprogramowania.<\/p>\n\n\n\n<p>W niedalekiej przysz\u0142o\u015bci ka\u017cdy in\u017cynier wydajno\u015bci przestanie w k\u00f3\u0142ko wykonywa\u0107 te same czynno\u015bci, jak przygotowanie skryptu, jego uruchomienie i pisanie raport\u00f3w. Nadchodz\u0105 czasy, w kt\u00f3rych ka\u017cdy <strong>pasjonat wydajno\u015bci b\u0119dzie m\u00f3g\u0142 skupi\u0107 si\u0119 na analizie konkretnych miar, wykres\u00f3w i skupi si\u0119 na rozwi\u0105zywania powa\u017cnych problem\u00f3w wydajno\u015bciowych.<\/strong><\/p>\n\n\n\n<p>Tego Wam wszystkim \u017cycz\u0119!<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>A je\u015bli chcesz dowiedzie\u0107 si\u0119, co o swoich zadaniach pisz\u0105 inni specjali\u015bci, polecamy: <a href=\"https:\/\/sii.pl\/blog\/z-zapiskow-mlodego-tl-a\/?category=testowanie&amp;tag=sciezki-karier,team-leader,teamwork,testing\">zapiski Team Leadera<\/a>, <a href=\"https:\/\/sii.pl\/blog\/rola-resource-managera-w-procesie-rekrutacji-i-nie-tylko\/?category=zarzadzanie-projektami&amp;tag=rekrutacja,salesforce,sciezki-karier\">przemy\u015blenia Resource Managera<\/a> i <a href=\"https:\/\/sii.pl\/blog\/slodkie-kotki-przeklenstwa-i-dentysta-na-linii-czyli-kilka-slow-o-roli-sprawdzajacych-technicznie-w-rekrutacji-do-sii\/?category=development-na-miekko&amp;tag=praca-w-it,rekrutacja,rozwoj-w-it,sciezki-karier\">wyzwania rekruter\u00f3w technicznych<\/a>.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;13745&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;15&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.4&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;4.4\\\/5 ( votes: 15)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Z pami\u0119tnika In\u017cyniera Wydajno\u015bci&quot;,&quot;width&quot;:&quot;122.1&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 122.1px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            4.4\/5 ( votes: 15)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Czy zastanawia\u0142e\u015b si\u0119 kiedy\u015b, jak wygl\u0105da\u0142by \u015bwiat, w kt\u00f3rym nikt nie przejmowa\u0142by si\u0119 wydajno\u015bci\u0105? Wyobra\u017cacie sobie na przyk\u0142ad, \u017ce Wasza &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/z-pamietnika-inzyniera-wydajnosci\/\">Continued<\/a><\/p>\n","protected":false},"author":357,"featured_media":14765,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1317],"tags":[103,1265,1095,146,1257],"class_list":["post-13745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testowanie","tag-autoamtyzacja-testow","tag-inzynieria-wydajnosci","tag-sciezki-karier","tag-testing","tag-testy-wydajnosci"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/05\/Z-pamietnika-Inzyniera-Wydajnosci-1.png","category_names":["Testowanie"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/13745"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/357"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=13745"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/13745\/revisions"}],"predecessor-version":[{"id":22060,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/13745\/revisions\/22060"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/14765"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=13745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=13745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=13745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}