{"id":21665,"date":"2023-05-29T05:00:00","date_gmt":"2023-05-29T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=21665"},"modified":"2023-05-29T12:01:15","modified_gmt":"2023-05-29T10:01:15","slug":"trace-viewer-w-playwright-jak-uzyskac-szczegolowy-raport-z-testow","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/trace-viewer-w-playwright-jak-uzyskac-szczegolowy-raport-z-testow\/","title":{"rendered":"Trace Viewer w Playwright \u2013 jak uzyska\u0107 szczeg\u00f3\u0142owy raport z test\u00f3w?"},"content":{"rendered":"\n<p>W pierwszej cz\u0119\u015bci serii artyku\u0142\u00f3w o Playwright pokaza\u0142em Wam, jak skorzysta\u0107 z narz\u0119dzia wraz z C#. <a href=\"https:\/\/sii.pl\/blog\/playwright-dlaczego-warto-zainteresowac-sie-narzedziem-od-microsoftu\/?category=testowanie&amp;tag=playwright,przeglad-narzedzi,zalety-i-wady\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Artyku\u0142 mo\u017cna przeczyta\u0107 na blogu Sii<\/a>. Tym razem chc\u0119 opowiedzie\u0107 o przydatnej funkcji dost\u0119pnej w Playwright. Jest ni\u0105 tzw. Trace Viewer, kt\u00f3ry wyr\u00f3\u017cnia Playwrighta na tle innych narz\u0119dzi i sprawia, \u017ce u\u017cytkownik uzyskuje dost\u0119p do szczeg\u00f3\u0142owego raportu z testu. Pozwala nam to znale\u017a\u0107 b\u0142\u0119dy i skrupulatnie prze\u015bledzi\u0107, co posz\u0142o nie tak oraz umo\u017cliwia wychwycenie b\u0142\u0119du aplikacji jeszcze dok\u0142adniej i dostarcza szczeg\u00f3\u0142owych informacji dla developer\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Do czego s\u0142u\u017cy Trace Viewer?<\/strong><\/h2>\n\n\n\n<p>Trace Viewer wspiera nas poprzez:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sceenshots \u2013 po ka\u017cdej akcji Playwright tworzy zrzut ekranu. Dzi\u0119ki znacznej liczbie zrzut\u00f3w ekranu, kt\u00f3re s\u0105 robione podczas testu, Playwright dostarcza nam dok\u0142adny przebieg testu.<\/li>\n\n\n\n<li>Snapshots \u2013 pobierany jest ca\u0142y HTML-owy DOM dla ka\u017cdej z akcji.<\/li>\n\n\n\n<li>Sources \u2013 ta w\u0142a\u015bciwo\u015b\u0107 pozwala nam na ustawienie w Trace Viewerze informacji, jaka linia kodu wywo\u0142a\u0142a okre\u015blon\u0105 akcj\u0119.<\/li>\n<\/ul>\n\n\n\n<p>Te wszystkie informacje s\u0105 u\u017cyteczne w sytuacji, gdy test z jakiego\u015b powodu raz dzia\u0142a, a raz nie. <strong>R\u00f3wnie\u017c, gdy test dzia\u0142a poprawnie, prezentowanie testu w tej formie mo\u017ce by\u0107 u\u017cyteczne dla ca\u0142ego zespo\u0142u lub kiedy b\u0142\u0105d pojawia si\u0119 w aplikacji, a nie w samym te\u015bcie, \u0142atwiej jest prze\u015bledzi\u0107, co posz\u0142o nie tak.<\/strong> \u0141atwiej nam odnale\u017a\u0107 przyczyn\u0119, z powodu kt\u00f3rej dany test nie przechodzi. Mo\u017cemy sami poprzez pliki konfiguracyjne Playwrighta decydowa\u0107, czy chcemy w\u0142\u0105cza\u0107 u\u017cycie Trace Viewera podczas test\u00f3w, czy nie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zaczynamy!<\/strong><\/h2>\n\n\n\n<p>\u017beby m\u00f3c otrzyma\u0107 przydatne logi, musimy zainicjalizowa\u0107 u\u017cycie \u201eTracingu\u201d podczas naszych test\u00f3w.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-2.png\"><img decoding=\"async\" width=\"605\" height=\"153\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-2.png\" alt=\"inicjacja Tracingu\" class=\"wp-image-21666\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-2.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-2-300x76.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/figure>\n\n\n\n<p>W ustawieniach metody <em>Context.Tracing.StartAsync()<\/em> definiujemy, jakie logi maj\u0105 si\u0119 zapisywa\u0107 podczas uruchomienia naszych test\u00f3w automatycznych. <strong>Screenshots<\/strong> pozwalaj\u0105 na zapis zrzut\u00f3w ekran\u00f3w pomi\u0119dzy akcjami w czasie testu.<strong> Snapshots<\/strong> zapisuj\u0105 DOM HTML-owy z ka\u017cdej akcji, kt\u00f3ra si\u0119 dzieje. <strong>Sources<\/strong> pozwalaj\u0105 zbiera\u0107 informacje, kt\u00f3ra linia kodu odpowiada za konkretn\u0105 akcj\u0119.<\/p>\n\n\n\n<p>Poza skorzystaniem z metody <em>StartAsync()<\/em> na ko\u0144cu w klasie musimy zdefiniowa\u0107 zako\u0144czenie zapisywania log\u00f3w w metodzie <em>TearDown<\/em>, kt\u00f3ra umo\u017cliwia wskazanie pod jak\u0105 nazw\u0105 zapiszemy plik .zip z logami. <strong>Warto w nazwie doda\u0107 tzw. Guida<\/strong> \u2013 dzi\u0119ki temu przy ka\u017cdym uruchomieniu testu otrzymamy unikaln\u0105 nazw\u0119 pliku z logami. W sytuacji, gdy nazwa b\u0119dzie sta\u0142a, np. tylko \u201eblog_sii_meetup\u201d, to ka\u017cde uruchomienie testu podmieni nam raport.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-2.png\"><img decoding=\"async\" width=\"605\" height=\"226\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-2.png\" alt=\"fragment kodu\" class=\"wp-image-21668\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-2.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-2-300x112.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/figure>\n\n\n\n<p>Po uruchomieniu testu plik .zip z logami zapisze si\u0119 w katalogu bin projektu. <a href=\"https:\/\/github.com\/sii-poland\/PlaywrightCSharp\/blob\/main\/PlaywrightTests\/Tests\/BaseSetup.cs\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >W kodzie, kt\u00f3ry jest dost\u0119pny na GitHubie Sii<\/a>, w klasie BaseSetup.cs znajdziecie te metody wraz z przyk\u0142adowymi testami, kt\u00f3re polecam pobra\u0107 i sprawdzi\u0107 lokalnie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Uruchomienie testu<\/strong><\/h2>\n\n\n\n<p>Najpierw polecam przej\u015bcie w systemie do katalogu, w kt\u00f3rym znajduj\u0119 si\u0119 plik z logami. Standardowo jest to katalog bin, chyba, \u017ce wybrali\u015bmy inn\u0105 \u015bcie\u017ck\u0119 podczas setupu Trace Viewera. Otwieram w tym miejscu PowerShella i uruchamiam skrypt <em>.playwright.ps1<\/em>, kt\u00f3ry zawiera r\u00f3\u017cne przydatne opcje, z kt\u00f3rych mo\u017cna skorzysta\u0107.<\/p>\n\n\n\n<p>W tym przypadku, aby zobaczy\u0107 Trace Viewera, uruchamiam polecenie:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">playwright.ps1 show-trace nazwa_pliku_z_logami.zip <\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nazwa_pliku_z_logami.zip \u2013 jest to nowo generowany plik z logami, powstaj\u0105cy przy ka\u017cdym uruchomieniu testu.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-2.png\"><img decoding=\"async\" width=\"755\" height=\"411\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-2.png\" alt=\"Nowo wygenerowany plik z logami\" class=\"wp-image-21670\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-2.png 755w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-2-300x163.png 300w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Nowo wygenerowany plik z logami<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-1.png\"><img decoding=\"async\" width=\"605\" height=\"199\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-1.png\" alt=\"widok konsoli\" class=\"wp-image-21672\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-1.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-1-300x99.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Wy\u015bwietlanie raportu<\/strong><\/h3>\n\n\n\n<p>Po uruchomieniu skryptu naszym oczom ukazuje si\u0119 menu z r\u00f3\u017cnymi opcjami. W tym wypadku interesuje nas opcja \u201eshow-trace\u201d, kt\u00f3ra na podstawie danego pliku .zip umo\u017cliwia wy\u015bwietlenie raportu. Na pocz\u0105tku widzimy ekran, w kt\u00f3rym po lewej stronie znajduj\u0105 si\u0119 wszystkie akcje zebrane podczas uruchomionego testu.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/7.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/7.png\" alt=\"Show trace \u00ac\u2013 wy\u015bwietlanie raportu\" class=\"wp-image-21674\" width=\"756\" height=\"425\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/7.png 756w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/7-300x169.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/7-555x312.png 555w\" sizes=\"(max-width: 756px) 100vw, 756px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Show trace \u00ad\u2013 wy\u015bwietlanie raportu<\/figcaption><\/figure>\n\n\n\n<p>Pierwsza zak\u0142adka w Trace Viewerze odpowiada za zbi\u00f3r akcji, kt\u00f3re by\u0142y wykonywane podczas naszego testu. Druga, znajduj\u0105ca si\u0119 obok to \u201eMetadata\u201d. Zawiera ona podstawowe informacje o tym, ile trwa\u0142 test automatyczny, jaka by\u0142a rozdzielczo\u015b\u0107 i kiedy si\u0119 wykona\u0142.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/5-1.png\"><img decoding=\"async\" width=\"213\" height=\"266\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/5-1.png\" alt=\"Zak\u0142adka Metadata w Trace Viewerze\" class=\"wp-image-21676\"\/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Zak\u0142adka Metadata w Trace Viewerze<\/figcaption><\/figure>\n\n\n\n<p>W kolejnych krokach na \u015brodku ekranu Trace Viewer udost\u0119pnia nam zrzutu ekranu z przebiegu testu. W tym wypadku ta przestrze\u0144 jest jeszcze pusta, dlatego, \u017ce test w tym kroku dopiero wystartowa\u0142 i nie zosta\u0142a jeszcze uruchomiona przegl\u0105darka.<\/p>\n\n\n\n<p>Po prawej stronie Trace Viewera dost\u0119pne s\u0105 r\u00f3wnie\u017c inne przydatne opcje. S\u0105 to informacje na temat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>akcji,<\/li>\n\n\n\n<li>konsoli,<\/li>\n\n\n\n<li>informacji z konsoli,<\/li>\n\n\n\n<li>odniesienia do kodu.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/6.png\"><img decoding=\"async\" width=\"334\" height=\"249\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/6.png\" alt=\"Przebieg testu w Trace Viewerze \" class=\"wp-image-21678\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/6.png 334w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/6-300x224.png 300w\" sizes=\"(max-width: 334px) 100vw, 334px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 4 Przebieg testu w Trace Viewerze<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Call \u2013 zawiera potencjalne logi oraz informacje o tym, jaka akcja si\u0119 wykona\u0142a i ile trwa\u0142a.<\/li>\n\n\n\n<li>Console \u2013 zawiera informacje (je\u017celi jakie\u015b s\u0105) z konsoli.<\/li>\n\n\n\n<li>Network \u2013 zawiera informacje (je\u017celi jakie\u015b s\u0105) na temat poszczeg\u00f3lnych \u017c\u0105da\u0144.<\/li>\n\n\n\n<li>Source \u2013 zawiera informacje o tym, kt\u00f3ra linia w kodzie odpowiada za obecny krok. W tym przypadku jest to linia 17, kt\u00f3r\u0105 Playwright w tym miejscu pod\u015bwietla. Ka\u017cda kolejna akcja, kt\u00f3r\u0105 wybierzemy z menu po lewej stronie, b\u0119dzie mo\u017cliwa do prze\u015bledzenia. Zrzut ekranu b\u0119dzie dost\u0119pny dla akcji przej\u015bcia na okre\u015blon\u0105 stron\u0119 (w tym wypadku w linii 19).<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/8.png\"><img decoding=\"async\" width=\"605\" height=\"580\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/8.png\" alt=\"Wynik testu w Trace Viewerze\" class=\"wp-image-21680\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/8.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/8-300x288.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 5 Wynik testu w Trace Viewerze<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>W dzisiejszym wpisie pokaza\u0142em Wam, jak skorzysta\u0107 z Trace Viewera i wygenerowa\u0107 dok\u0142adny raport z uruchomienia test\u00f3w. Trzeba pami\u0119ta\u0107, \u017ce sam raport jest domy\u015blnie generowany dla ka\u017cdego testu osobno oraz \u017ce wp\u0142ywa na czas uruchomienia test\u00f3w. Mo\u017cemy jednak decydowa\u0107, kiedy chcemy go generowa\u0107, np. w sytuacji, gdy co jaki\u015b czas pojawia si\u0119 b\u0142\u0105d.<\/p>\n\n\n\n<p>W nast\u0119pnym artykule poka\u017c\u0119, jak mo\u017cemy nagrywanie video z testu oraz integrowa\u0107 Playwrighta z Allurem \u2013 popularnym narz\u0119dziem do tworzenia raport\u00f3w z test\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Playwright Trace Viewer w praktyce<\/strong><\/h2>\n\n\n\n<p>Na koniec Playwright Trace Viewer w praktyce \u2013 zobaczcie sami \ud83d\ude42<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-cb609afe-3356-4025-a5d8-52f23d37e10c\" href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/playwright_trace_viewer.mp4\">playwright_trace_viewer<\/a><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/playwright_trace_viewer.mp4\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-cb609afe-3356-4025-a5d8-52f23d37e10c\">Pobierz<\/a><\/div>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Na naszym blogu znajdziesz r\u00f3wnie\u017c <a href=\"https:\/\/sii.pl\/blog\/all\/playwright\/\" target=\"_blank\" aria-label=\"inne artyku\u0142u dot. Playwrighta (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">inne artyku\u0142u dot. Playwrighta<\/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;21665&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;6&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;2&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Trace Viewer w Playwright \u2013 jak uzyska\u0107 szczeg\u00f3\u0142owy raport z test\u00f3w?&quot;,&quot;width&quot;:&quot;159&quot;,&quot;_legend&quot;:&quot;{score}\\\/5&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: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 159px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            5\/5    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>W pierwszej cz\u0119\u015bci serii artyku\u0142\u00f3w o Playwright pokaza\u0142em Wam, jak skorzysta\u0107 z narz\u0119dzia wraz z C#. Artyku\u0142 mo\u017cna przeczyta\u0107 na &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/trace-viewer-w-playwright-jak-uzyskac-szczegolowy-raport-z-testow\/\">Continued<\/a><\/p>\n","protected":false},"author":215,"featured_media":21684,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":4,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[1579,1546,932],"class_list":["post-21665","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-playwright","tag-przeglad-narzedzi","tag-testy-automatyczne"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/Trace-Viewer-w-Playwright-\u2013-jak-uzyskac-szczegolowy-raport-z-testow.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/21665"}],"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\/215"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=21665"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/21665\/revisions"}],"predecessor-version":[{"id":21964,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/21665\/revisions\/21964"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/21684"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=21665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=21665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=21665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}