{"id":3803,"date":"2019-12-13T09:03:41","date_gmt":"2019-12-13T08:03:41","guid":{"rendered":"https:\/\/wp-test.itcraft.pl\/pl\/?p=3803"},"modified":"2021-02-08T10:45:55","modified_gmt":"2021-02-08T09:45:55","slug":"testowanie-cypress","status":"publish","type":"post","link":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/","title":{"rendered":"Testowanie za pomoc\u0105 narz\u0119dzia Cypress"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n    {\n      \"@context\": \"http:\/\/schema.org\",\n      \"@type\": \"Blog\",\n      \"name\": \"itCraftapps.com - Mobile App Development Blog\",\n      \"url\": \"https:\/\/itcraftapps.com\/pl\/blog\"\n    }\n  <\/script>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"http:\/\/schema.org\",\n  \"@type\": \"Article\",\n  \"mainEntityOfPage\": {\n  \"@type\": \"WebPage\",\n  \"@id\": \"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\"\n  },\n  \"headline\": \"Testowanie za pomoc\u0105 narz\u0119dzia Cypress\",\n \n    \"image\": [\n{\n\t\n  \"@type\": \"ImageObject\", \n  \"contentUrl\": \"Cypress-Testing-Tool.png\",  \"url\":\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/xCypress-Testing-Tool.png.pagespeed.ic.usLq-FXUe-.webp\",\n  \"description\": \"Testowanie za pomoc\u0105 narz\u0119dzia Cypress \",\n  \"name\": \"Testowanie za pomoc\u0105 narz\u0119dzia Cypress\"\n\n}\n  \n  \n  ],\n  \n  \"datePublished\": \"2019-12-13\",\n  \"dateModified\": \"2020-03-02\",\n  \"author\": {\n  \"@type\": \"Person\",\n  \"name\": \"Pawe\u0142\",\n  \"jobTitle\": \"Content Writer\",\n  \"description\": \"Creates content.\"\n\n  },\n  \"publisher\": {\n  \"@type\": \"Organization\",\n  \"name\": \"itCraftapps.com\",\n  \"logo\": {\n  \"@type\": \"ImageObject\",\n  \"url\": \"https:\/\/wp-test.itcraft.pl\/wp-content\/uploads\/2019\/04\/placeholder-post.png\"\n  },\n  \"description\": \"itCraftapps.com - Mobile App Development\"\n}}\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">Spis tre\u015bci<\/h3>\n\n\n\n<ol class=\"wp-block-list\"><li><span style=\"text-decoration: underline;\"><a href=\"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#1\">Czym jest Cypress- narz\u0119dzie do automatycznego testowania?<\/a><\/span><\/li><li><span style=\"text-decoration: underline;\"><a href=\"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#2\">\u015arodowisko Windows<\/a><\/span><\/li><li><span style=\"text-decoration: underline;\"><a href=\"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#3\">Interfejs graficzny Cypress<\/a><\/span><\/li><\/ol>\n\n\n\n<br \/>\n\n\n\n<p>Istnieje ogromna r\u00f3\u017cnorodno\u015b\u0107 narz\u0119dzi do<a rel=\"noreferrer noopener\" aria-label=\" testowania oprogramowania mobilnego (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/itcraftapps.com\/pl\/blog\/czemu-testowac-jak-przeciez-powinno-dzialac-quality-assurance-aplikacji-mobilnych\/\" target=\"_blank\"> testowania oprogramowania mobilnego<\/a>. Wyb\u00f3r zale\u017cy w du\u017cej mierze od poziomu do\u015bwiadczenia tester\u00f3w, bieg\u0142o\u015bci w automatyzacji i znajomo\u015bci dost\u0119pnych rozwi\u0105za\u0144. Do tej pory koncentrowali\u015bmy si\u0119 na <a rel=\"noreferrer noopener\" aria-label=\"Appium do automatyzacji test\u00f3w (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/itcraftapps.com\/pl\/blog\/appium\/\" target=\"_blank\">Appium do automatyzacji test\u00f3w<\/a> i dzia\u0142a\u0142o to ca\u0142kiem dobrze dla nas. Okaza\u0142o si\u0119 dobrym narz\u0119dziem do zastosowania w <a rel=\"noreferrer noopener\" aria-label=\"ci\u0105g\u0142ej integracji w po\u0142\u0105czeniu z Jenkins i Fastlane (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/itcraftapps.com\/pl\/blog\/testy-ui-w-technologii-continuous-integration-jenkins-fastlane-appium\/\" target=\"_blank\">ci\u0105g\u0142ej integracji w po\u0142\u0105czeniu z Jenkins i Fastlane<\/a><\/p>\n\n\n\n<h2 class=\"has-text-align-left wp-block-heading\" id=\"1\">Czym jest Cypress &#8211; narz\u0119dzie do automatycznego testowania?<\/h2>\n\n\n\n<p><dfn><a href=\"http:\/\/www.cypress.io\" target=\"_blank\" rel=\"noreferrer noopener nofollow\" aria-label=\"Cypress (otwiera si\u0119 na nowej zak\u0142adce)\">Cypress<\/a><\/dfn> to gotowe narz\u0119dzie kt\u00f3re jest gotowe do pracy od momentu instalacji. Selenium WB oferuje wi\u0119cej mo\u017cliwo\u015bci personalizacji, ale osi\u0105gni\u0119cie podobnego stopnia responsywno\u015bci i szybko\u015bci dzia\u0142ania mo\u017cliwe jest po konfiguracji przez do\u015bwiadczonego w tym \u015brodowisku. Krzywa wej\u015bcia dla osoby bez do\u015bwiadczenia jest \u0142agodniejsza dla Cypressa.&nbsp;<\/p>\n\n\n\n<p>W przypadku wyboru narz\u0119dzia z kt\u00f3rym b\u0119dziemy pracowa\u0107 du\u017c\u0105 rol\u0119 odgrywa wsparcie tw\u00f3rc\u00f3w i spo\u0142eczno\u015bci. W tym wzgl\u0119dzie Cypressowi nie mo\u017cna niczego zarzuci\u0107. Aktualizowany i utrzymywany jest ca\u0142y czas a dzi\u0119ki dobrej dokumentacji i mo\u017cliwo\u015bci wgrywania gotowych rozszerze\u0144 b\u0105d\u017a pisania w\u0142asnych &#8211; mocno podatny na konfiguracj\u0119.U\u017cyty Javascript tak\u017ce pomaga w dostosowaniu \u015brodowiska pod w\u0142asne potrzeby.<\/p>\n\n\n\n<p>Stawiaj\u0105c pierwsze kroki wspomagani b\u0119dziemy przez dok\u0142adne dok\u0142adne komendy oraz filmy z konfiguracji i pierwszych test\u00f3w. Pomocne tak\u017ce okazuj\u0105 si\u0119 repozytoria z przyk\u0142adowymi projektami kt\u00f3re podejmuj\u0105 popularne problemy.&nbsp;<\/p>\n\n\n\n<h2 class=\"has-text-align-left wp-block-heading\" id=\"2\">\u015arodowisko Windows<\/h2>\n\n\n\n<p>Wymagania:  NodeJS i Cypress<\/p>\n\n\n\n<p>Instalacja<\/p>\n\n\n\n<p>\u015aci\u0105gnij i zainstaluj NodeJS<\/p>\n\n\n\n<p>Przy pomocy konsoli sprawd\u017a, czy NodeJS zosta\u0142 poprawnie zainstalowany. Poni\u017csza instrukcja powinna da\u0107 odpowied\u017a informuj\u0105c\u0105 o zainstalowanej wersji:<\/p>\n\n\n\n<p><em>npm -v<\/em><\/p>\n\n\n\n<p>Podaj \u015bcie\u017ck\u0119 do folderu gdzie zainstalowany ma by\u0107  Cypress<\/p>\n\n\n\n<p><em>cd \/your\/project\/path<\/em><\/p>\n\n\n\n<p><em>npm install cypress &#8211;save-dev<\/em><\/p>\n\n\n\n<p>Zgodnie z dokumentacj\u0105 dost\u0119pn\u0105 na stronie Cypress powinien by\u0107 poprawnie zainstalowany oraz skonfigurowany. Wpisujemy wi\u0119c komend\u0119<\/p>\n\n\n\n<p><em>cd node_modules\/.bin\/&nbsp;<\/em><\/p>\n\n\n\n<p><em>cypress open<\/em><\/p>\n\n\n\n<p>Program uruchomi si\u0119, ale je\u015bli u\u017cywamy Windowsa najprawdopodobniej napotkamy na taki b\u0142\u0105d<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"662\" height=\"457\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-Windows-install-server-error.png\" alt=\"\" class=\"wp-image-3807\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-Windows-install-server-error.png 662w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-Windows-install-server-error-300x207.png 300w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/figure>\n\n\n\n<p>&nbsp;Rozwi\u0105zaniem problemu jest utworzenie pliku <strong>&nbsp;package.json <\/strong>w g\u0142\u00f3wnym katalogu projektu<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"scripts\": {\n    \"test\": \"cypress open\"\n  }\n}<\/code><\/pre>\n\n\n\n<p>Otw\u00f3rz konsol\u0119 i wprowad\u017a \u015bcie\u017ck\u0119 do projektu, nast\u0119pnie uruchom testy<\/p>\n\n\n\n<p>Je\u015bli chcesz korzysta\u0107 z interfejsu graficznego najprostrzym rozwi\u0105zaniem na Windowsie jest utworzenie pliku kt\u00f3ry b\u0119dzie skr\u00f3tem do uruchamiania danego projektu.&nbsp;<\/p>\n\n\n\n<p><strong>2a <\/strong>Tworzymy plik nowy plik tekstowy. Dla tego celu u\u017cy\u0142em systemowej aplikacji Notatnik.<\/p>\n\n\n\n<p><em>cd C:\\cypress-projectX<\/em><\/p>\n\n\n\n<p><em>npm run test<\/em><\/p>\n\n\n\n<p>Nast\u0119pnie plik zapisujemy z rozszerzeniem <strong>\u201c.bat\u201d<\/strong><\/p>\n\n\n\n<p> Gdzie pierwsza linijka to komenda przej\u015bcia do katalogu \u201ccd\u201d oraz \u015bcie\u017cka lokalizacji folderu projektu podczas instalacji Cypressa. Dzi\u0119ki komendzie z drugiej linii uruchomi si\u0119 launcher poszczeg\u00f3lnych test\u00f3w kt\u00f3re przygotowali\u015bmy w dla Cypressa. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"375\" height=\"143\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Launching-cypress-from-command-line.png\" alt=\"\" class=\"wp-image-3808\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Launching-cypress-from-command-line.png 375w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Launching-cypress-from-command-line-300x114.png 300w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/figure>\n\n\n\n<p>Przyk\u0142ad okna konsoli dla projektu roboczo nazwanego <em>cypress-s <\/em>po uruchomieniu wcze\u015bniej utworzonego pliku wsadowego<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"782\" height=\"531\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-view.png\" alt=\"\" class=\"wp-image-3806\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-view.png 782w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-view-300x204.png 300w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-view-768x521.png 768w\" sizes=\"(max-width: 782px) 100vw, 782px\" \/><\/figure>\n\n\n\n<p>Po instalacji dost\u0119pne s\u0105 przyk\u0142adowe testy. Je\u015bli nie s\u0105 nam potrzebne mo\u017cemy \u015bmia\u0142o je usun\u0105\u0107. Cypress automatycznie wczytuje foldery oraz pliki znajduj\u0105ce si\u0119 w folderze <em>integration<\/em>. Oprogramowanie monitoruje dodawane pliki &#8211; nie musisz resetowa\u0107 okna g\u0142\u00f3wnego by nowo dodane testy by\u0142y widoczne.&nbsp;<\/p>\n\n\n\n<p>Aby uruchomi\u0107 test kliknij na niego dwukrotnie lub skorzystaj z opcji umieszczonej w prawym g\u00f3rnym rogu &#8211; run all tests.<\/p>\n\n\n\n<p>Jak wi\u0119c wygl\u0105da struktura test\u00f3w?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"317\" height=\"147\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-structure-code.png\" alt=\"\" class=\"wp-image-3811\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-structure-code.png 317w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-structure-code-300x139.png 300w\" sizes=\"(max-width: 317px) 100vw, 317px\" \/><\/figure>\n\n\n\n<p>Po raz kolejny na pocz\u0105tkowym etapie bardzo pomocna jest dokumentacja. Powy\u017cszy kod dobrze zobrazowuje co jest widoczne po wykonaniu testu.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"411\" height=\"103\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-result-screenshot.png\" alt=\"\" class=\"wp-image-3810\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-result-screenshot.png 411w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-result-screenshot-300x75.png 300w\" sizes=\"(max-width: 411px) 100vw, 411px\" \/><\/figure>\n\n\n\n<p>Plik testu oczywi\u015bcie nie musi si\u0119 ogranicza\u0107 do instrukcji zapisanej w definicji fukcji \u201cit\u201d. Pomocne okazuje si\u0119 stosowanie specjalnych funkcji jak \u201cbeforeEach\u201d wykonuj\u0105ce instrukcje jednorazowo przed scenariuszami w danym pliku czy \u201cbefore\u201d kt\u00f3re zawarty kod b\u0119dzie wykonywa\u0107 przed ka\u017cdym scenariuszem. Pami\u0119tajmy, \u017ce korzystamy tutaj z JavScriptu, wi\u0119c do\u0142\u0105czanie fukcji czy zmiennych zdefiniowanych w plikach zewn\u0119trznych jest jak najbardziej mo\u017cliwe.&nbsp;<\/p>\n\n\n\n<p>Je\u015bli chodzi o konfiguracj\u0119 Cypress pr\u00f3cz mo\u017cliwo\u015bci typowych dla tego j\u0119zyka (JS) oferuje wiele u\u0142atwie\u0144:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>cypress.js &#8211; plik konfiguracyjny &#8211; zmienia\u0107 mo\u017cemy bazowy adres testowanej strony, ignorowane b\u0142\u0119dy HTTP czy maksymalny czas oczekiwania na odpowied\u017a<\/li><li>cypress.env &#8211; domy\u015blny plik do gromadzenia zmiennych u\u017cywanych w projekcie. Jego przewaga nad r\u0119cznie dodanymi plikami jest taka, \u017ce jest automatycznie dodawany do ka\u017cdego testu i traktowany priorytetowo<\/li><li>plugins &#8211; plik gdzie mo\u017cemy dodawa\u0107 wtyczki wspierane przez spo\u0142eczno\u015b\u0107<\/li><li>commands &#8211; miejsce gdzie mo\u017cemy zapisa\u0107 napisane przez nas specjalistyczne komendy.&nbsp;<\/li><li>i wiele innych &#8211; po raz kolejny odsy\u0142am do dokumentacji<\/li><\/ul>\n\n\n\n<h2 class=\"has-text-align-left wp-block-heading\" id=\"3\">Interfejs graficzny Cypress<\/h2>\n\n\n\n<p>Tryb graficzny wykonywania test\u00f3w znacznie u\u0142atwia prac\u0119 nad nimi i kontrol\u0119 poprawno\u015bci dzia\u0142ania. W tym trybie Cypress po wykonaniu testu pozwala na cofni\u0119cie si\u0119 do dowolnego jego kroku. Wystarczy wybra\u0107 interesuj\u0105cy nas krok z listy po lewej stronie by zosta\u0142a wy\u015bwietlona strona sprzed wybranej akcji. Pomaga to znacz\u0105co w debugowaniu test\u00f3w.&nbsp;<\/p>\n\n\n\n<p>Je\u015bli wybrali\u015bmy przegl\u0105dark\u0119 Chrome do wykonania testu klikaj\u0105c F12 uruchamiamy konsol\u0119. Dzi\u0119ki wspomnianej wy\u017cej funkcji mo\u017cemy sprawdzi\u0107 czy np przegl\u0105darka znalaz\u0142a interesuj\u0105c\u0105 nas grup\u0119 element\u00f3w i czy ilo\u015b\u0107 odpowiada spodziewanej.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"307\" height=\"33\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-get-pin.png\" alt=\"\" class=\"wp-image-3805\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-get-pin.png 307w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Cypress-console-get-pin-300x32.png 300w\" sizes=\"(max-width: 307px) 100vw, 307px\" \/><\/figure>\n\n\n\n<p>Po klikni\u0119ciu w symbol oka w konsoli wylistowane zostaj\u0105 szukane przez nas elementy<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"796\" height=\"281\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/View-of-test-details.png\" alt=\"\" class=\"wp-image-3812\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/View-of-test-details.png 796w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/View-of-test-details-300x106.png 300w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/View-of-test-details-768x271.png 768w\" sizes=\"(max-width: 796px) 100vw, 796px\" \/><\/figure>\n\n\n\n<p> Oczywi\u015bcie w tym momencie mo\u017cemy wybra\u0107 konkretny element i zbada\u0107 jego szczeg\u00f3\u0142y.  <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"327\" height=\"569\" src=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-report-item-details.png\" alt=\"\" class=\"wp-image-3809\" srcset=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-report-item-details.png 327w, https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/Test-report-item-details-172x300.png 172w\" sizes=\"(max-width: 327px) 100vw, 327px\" \/><\/figure>\n\n\n\n<p>We\u017amy za przyk\u0142ad aplikacj\u0119 kt\u00f3ra wymaga od u\u017cytkownika logowania. Je\u015bli chcemy sprawdzi\u0107 tak\u017ce kolejne jej aspekty mamy do wyboru kilka opcji<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Logowa\u0107 si\u0119 za ka\u017cdym razem manualnie<\/li><li>Poda\u0107 aplikacji gotowe ciastko\/token kt\u00f3ry umo\u017cliwi stronie rozpoznanie u\u017cytkownika jako zalogowanego<\/li><\/ol>\n\n\n\n<p>Pierwsza opcja sprawdzi si\u0119 w przypadku gdy np nie mamy dost\u0119pu do backendu, nie zale\u017cy nam na szybko\u015bci wykonywania test\u00f3w. Zdecydowanie lepsz\u0105 opcj\u0105 jest rozwi\u0105zanie wymagaj\u0105ce podania r\u0119cznie aktywnego tokenu u\u017cytkownika. Mamy pewno\u015b\u0107, \u017ce w przypadku zmiany ekranu logowania\/tymczasowych problem\u00f3w z nim zwi\u0105zanych nadal b\u0119dzie mo\u017cliwe wykonanie dalszych test\u00f3w aplikacji. W omawianym przyk\u0142adzie strona korzysta z autentykacji w standardzie Auth0. Poni\u017cej kod testu logowania w taki spos\u00f3b:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>describe('login using token\/cookie', () => {\n\n       it('should successfully log into our app', () => {\n         cy.login()\n           .then(() => {\n             window.location.replace(\"https:\/\/lab4.itcraft.pl:XYZ\/web\");\n             cy.visit('web')\n           })\n           debugger\n       });\n})<\/code><\/pre>\n\n\n\n<p>Oraz definicja funkcji login()<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cypress.Commands.add('login', () => {\n   Cypress.log({\n     name: 'loginViaAuth0'\n   })\n\nreturn cy.request({\n   method: 'POST',\n           url: '\/admin-api\/login',\n           headers: {\n               \"Content-Type\": \"application\/json\"\n           },\n           body: {\n               username: Cypress.env('correctUsername'),\n               password: Cypress.env('correctPassword'),\n           },\n        })\n        .then((resp) => {\n           document.cookie = `AuthUser=${resp.body.accessToken}`\n        })\n})<\/code><\/pre>\n\n\n\n<p> &nbsp;Zapytanie by\u0142o sprawdzone wcze\u015bniej w Postmanie. Wykonuj\u0105c kod wida\u0107, \u017ce serwer zwraca ciastko z aktywnym tokenem &#8211; te\u017c sprawdzane p\u00f3\u017aniej r\u0119cznie. Problem pozostaje jeden &#8211; aplikacja nie chce przej\u015b\u0107 do kolejnego ekranu. Zostaje na podstronie logowania.<\/p>\n\n\n\n<p>To jedna z pyta\u0144 na kt\u00f3re nie znalaz\u0142em odpowiedzi. W konsoli nie log\u00f3w potwierdzaj\u0105cych nieprawid\u0142owe dzia\u0142anie. Mimo tego, zar\u00f3wno na przegl\u0105darce Electron jak i Chrome rezultat jest taki sam. Wiem jednak, \u017ce w przypadku prostszych serwis\u00f3w &#8211; lub bardziej do\u015bwiadczonych programist\u00f3w &#8211; problem ten nie powinien wyst\u0119powa\u0107. Mockowanie danych to pot\u0119\u017cne narz\u0119dzie i u\u017cywane z rozmys\u0142em potrafi zaoszcz\u0119dzi\u0107 du\u017co czasu na planowaniu skomplikowanych nie-koliduj\u0105cych si\u0119 test\u00f3w czy czyszczeniu bazy danych przed ka\u017cdym uruchomieniem.&nbsp;<\/p>\n\n\n\n<p>Kolejn\u0105 kwesti\u0105 specyficzn\u0105 dla Cypressa mo\u017ce na pocz\u0105tku wydawa\u0107 si\u0119 brak mo\u017cliwo\u015bci kontynuowania wykonywania jednego przypadku testowego w momencie, gdy otwierane jest nowe okno przegl\u0105darki. Tetsy wykonywane s\u0105 tylko w oknie, w kt\u00f3rym zosta\u0142y na pocz\u0105tku uruchomione. Wymusza to na testerze przygotowywanie takich przypadk\u00f3w, kt\u00f3re nie b\u0119d\u0105 od siebie zale\u017cne &#8211; czyli tak, aby niepowodzenie wykonania jednego testu nie przekre\u015bla\u0142o z g\u00f3ry wykonania kolejnych. Problem omin\u0105\u0107 mo\u017cna sprawdzaj\u0105c, czy odno\u015bnik prowadzi do szukanej podstrony i t\u0105 testowa\u0107 w oddzielnym scenariuszu.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8222;image&#8221;: [ { &#8222;@type&#8221;: &#8222;ImageObject&#8221;, &#8222;contentUrl&#8221;: &#8222;Cypress-Testing-Tool.png&#8221;, &#8222;url&#8221;:&#8221;https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/xCypress-Testing-Tool.png.pagespeed.ic.usLq-FXUe-.webp&#8221;, &#8222;description&#8221;: &#8222;Testowanie za pomoc\u0105 narz\u0119dzia Cypress &#8222;, &#8222;name&#8221;: &#8222;Testowanie za pomoc\u0105 narz\u0119dzia Cypress&#8221; } ], &#8222;datePublished&#8221;: &#8222;2019-12-13&#8221;, &#8222;dateModified&#8221;: &#8222;2020-03-02&#8221;, &#8222;author&#8221;: { &#8222;@type&#8221;: &#8222;Person&#8221;, &#8222;name&#8221;: &#8222;Pawe\u0142&#8221;, &#8222;jobTitle&#8221;: &#8222;Content Writer&#8221;, &#8222;description&#8221;: &#8222;Creates content.&#8221; }, &#8222;publisher&#8221;: { &#8222;@type&#8221;: &#8222;Organization&#8221;, &#8222;name&#8221;: &#8222;itCraftapps.com&#8221;, &#8222;logo&#8221;: { &#8222;@type&#8221;: &#8222;ImageObject&#8221;, &#8222;url&#8221;: &#8222;https:\/\/wp-test.itcraft.pl\/wp-content\/uploads\/2019\/04\/placeholder-post.png&#8221; }, &#8222;description&#8221;: &#8222;itCraftapps.com&hellip;<\/p>\n","protected":false},"author":12,"featured_media":10374,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[5,29],"tags":[],"class_list":{"0":"post-3803","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-news","8":"category-testowanie"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testowanie za pomoc\u0105 narz\u0119dzia Cypress - itCraft blog<\/title>\n<meta name=\"description\" content=\"Automatyzacja test\u00f3w, Cypress, \u015brodowisko Windows, interfejs graficzny.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testowanie za pomoc\u0105 narz\u0119dzia Cypress - itCraft blog\" \/>\n<meta property=\"og:description\" content=\"Automatyzacja test\u00f3w, Cypress, \u015brodowisko Windows, interfejs graficzny.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/\" \/>\n<meta property=\"og:site_name\" content=\"Aplikacje mobilne i webowe dla firm | itCraft\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-13T08:03:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-08T09:45:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/itcraft_header_automation_tool_PL.png\" \/>\n\t<meta property=\"og:image:width\" content=\"831\" \/>\n\t<meta property=\"og:image:height\" content=\"401\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"itcseo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testowanie za pomoc\u0105 narz\u0119dzia Cypress - itCraft blog","description":"Automatyzacja test\u00f3w, Cypress, \u015brodowisko Windows, interfejs graficzny.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/","og_locale":"pl_PL","og_type":"article","og_title":"Testowanie za pomoc\u0105 narz\u0119dzia Cypress - itCraft blog","og_description":"Automatyzacja test\u00f3w, Cypress, \u015brodowisko Windows, interfejs graficzny.","og_url":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/","og_site_name":"Aplikacje mobilne i webowe dla firm | itCraft","article_published_time":"2019-12-13T08:03:41+00:00","article_modified_time":"2021-02-08T09:45:55+00:00","og_image":[{"width":831,"height":401,"url":"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/itcraft_header_automation_tool_PL.png","type":"image\/png"}],"author":"itcseo","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/","url":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/","name":"Testowanie za pomoc\u0105 narz\u0119dzia Cypress - itCraft blog","isPartOf":{"@id":"https:\/\/itcraftapps.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#primaryimage"},"image":{"@id":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#primaryimage"},"thumbnailUrl":"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/itcraft_header_automation_tool_PL.png","datePublished":"2019-12-13T08:03:41+00:00","dateModified":"2021-02-08T09:45:55+00:00","author":{"@id":"https:\/\/itcraftapps.com\/pl\/#\/schema\/person\/d2fc85f8fb53798d0b727d373f9e39b7"},"description":"Automatyzacja test\u00f3w, Cypress, \u015brodowisko Windows, interfejs graficzny.","breadcrumb":{"@id":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#primaryimage","url":"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/itcraft_header_automation_tool_PL.png","contentUrl":"https:\/\/itcraftapps.com\/pl\/wp-content\/uploads\/sites\/5\/2019\/12\/itcraft_header_automation_tool_PL.png","width":831,"height":401,"caption":"Testowanie za pomoc\u0105 narz\u0119dzia Cypress"},{"@type":"BreadcrumbList","@id":"https:\/\/itcraftapps.com\/pl\/blog\/testowanie-cypress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/itcraftapps.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Testowanie za pomoc\u0105 narz\u0119dzia Cypress"}]},{"@type":"WebSite","@id":"https:\/\/itcraftapps.com\/pl\/#website","url":"https:\/\/itcraftapps.com\/pl\/","name":"Aplikacje mobilne i webowe dla firm | itCraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itcraftapps.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/itcraftapps.com\/pl\/#\/schema\/person\/d2fc85f8fb53798d0b727d373f9e39b7","name":"itcseo","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/itcraftapps.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/itcraftapps.com\/pl\/wp-content\/litespeed\/avatar\/5\/8d5121d60f83294679f3ed7498971492.jpg?ver=1775153629","contentUrl":"https:\/\/itcraftapps.com\/pl\/wp-content\/litespeed\/avatar\/5\/8d5121d60f83294679f3ed7498971492.jpg?ver=1775153629","caption":"itcseo"},"url":"https:\/\/itcraftapps.com\/pl\/blog\/author\/itcseo\/"}]}},"_links":{"self":[{"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/posts\/3803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/comments?post=3803"}],"version-history":[{"count":0,"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/posts\/3803\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/media\/10374"}],"wp:attachment":[{"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/media?parent=3803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/categories?post=3803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itcraftapps.com\/pl\/wp-json\/wp\/v2\/tags?post=3803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}