oktatas:web:angular:angular_end-to-end_teszt
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
oktatas:web:angular:angular_end-to-end_teszt [2023/04/14 23:37] – [Alrendszerek] admin | oktatas:web:angular:angular_end-to-end_teszt [2023/04/15 22:03] (aktuális) – admin | ||
---|---|---|---|
Sor 10: | Sor 10: | ||
===== Egység tesztek ===== | ===== Egység tesztek ===== | ||
- | A Karma és a Jasmine a JavaScript kódra összpontosítanak, | + | |
- | tesztkörnyezetben futtatnak. Szeretnénk olyanokat is tesztelni, hogy egy | + | * [[oktatas:web:angular:angular_end-to-end_teszt: |
- | kattintásra megtörténik-e valami. | + | |
- | + | ||
- | Ezt általában kézi teszteléssel végezzük. Egy dedikált tesztelő | + | |
- | egy teszt terv szerint végigjárja a teszteket. | + | |
- | + | ||
- | A kézi tesztek lassúak és nem mindig ismételhetők meg. | + | |
- | + | ||
- | Olyan automatizált tesztekre van szükségünk, | + | |
- | oldalról közelíti meg az alkalmazást. Ezeket nevezzük End-to-end | + | |
- | vagy E2E teszteknek. | + | |
- | + | ||
- | Az E2E tesztek gyakran lassúk és hibásak, de ezek tájékoztatnak minket | + | |
- | arról, hogy valóban működi-e az alkalmazás. | + | |
- | + | ||
- | ===== Meghatározott környezet ===== | + | |
- | + | ||
- | Az adatbázist előre elkészített hamis adatokkal töltjük fel, amit utána | + | |
- | törlünk, azaz az adatbázist kezdeti állapotba hozzuk. | + | |
- | + | ||
- | ===== A végpontok közötti tesztek működése ===== | + | |
- | + | ||
- | A teszt utánozza a felhasználói kommunikációt az alkalmazással, | + | |
- | másként szólva, szimulálja a felhasználói műveleteket. | + | |
- | + | ||
- | Például a teszt kitölt egy űrlapot és kattint a küldés gombra. | + | |
- | + | ||
- | ===== E2E keretrendszerek ===== | + | |
- | + | ||
- | Kétféle van: | + | |
- | | + | |
- | * nem használ WebDriver-t | + | |
- | + | ||
- | ==== WebDriver ==== | + | |
- | + | ||
- | A WebDriver lehetővé teszik a böngésző távoli irányítását. | + | |
- | Ilyen a Selenium böngésző automatizáló projekt, amit a | + | |
- | W3C fejleszt. | + | |
- | + | ||
- | Néhány WebDriver parancs: | + | |
- | * navigáljon egy URL-re | + | |
- | * Kattintson egy elemre | + | |
- | * JavaScript kód végrehajtása | + | |
- | * Billentyűzet bevitel küldése egy űrlapelembe | + | |
- | * Egy elemről információkérés | + | |
- | + | ||
- | + | ||
- | A tesztek akár több böngészőben egyszerre is futtathatók. | + | |
- | + | ||
- | + | ||
- | ===== Az Angular ===== | + | |
- | + | ||
- | A 12-es verzióig az Angular a Protactort használta alapértelmezett teljes körű tesztelő | + | |
- | keretrendszernek. A 12 verziótól azonban elavult. A 12 verziótól nincs alapértelmezetten | + | |
- | megadott keretrendszer. Telepítenünk kell egyet. | + | |
- | + | ||
- | A következőket használhatjuk: | + | |
- | + | ||
- | * Cypress | + | |
- | * Nightwatch | + | |
- | * WebdriverIO | + | |
- | + | ||
- | Ha futtatjuk az ng e2e parancsot és még nincs telepítve egyik sem: | + | |
- | + | ||
- | < | + | |
- | ng e2e | + | |
- | + | ||
- | Cannot find " | + | |
- | + | ||
- | You should add a package that implements end-to-end testing capabilities. | + | |
- | + | ||
- | For example: | + | |
- | Cypress: ng add @cypress/ | + | |
- | Nightwatch: ng add @nightwatch/ | + | |
- | WebdriverIO: | + | |
- | + | ||
- | More options will be added to the list as they become available. | + | |
- | </ | + | |
- | + | ||
- | A ng e2e röviden: ng e. | + | |
- | + | ||
- | + | ||
- | ===== A Cypress ===== | + | |
- | + | ||
- | Nyílt forráskódú tesztelő keretrendszer. | + | |
- | Nem használja a WebDrivert, egyéni eszközöket használ. | + | |
- | Egy NodeJS alkalmazás elindítja a böngészőt. A böngésző | + | |
- | ugyan nem vezérelhető távolról, de tesztek közvetlenül a | + | |
- | böngészőben futnak. | + | |
- | + | ||
- | A Cypress hasonlít ugyan a Jasmin-ra, de részleteiben mégis | + | |
- | különbözik. | + | |
- | + | ||
- | A Cypress a Firefoxot és a Chromium alapú böngészőket támogatja, mint | + | |
- | a Google Chrome és a Microsoft Edge. Kísérletileg támogatja a WebKit | + | |
- | Safari által használt motort. A régi Edge és Internet Explorer nem támogatott. | + | |
- | + | ||
- | + | ||
- | ==== Telepítés ==== | + | |
- | + | ||
- | ng add @cypress/ | + | |
- | + | ||
- | + | ||
- | + | ||
- | Mi történik: | + | |
- | * A package.json fájlba beíródik a függőség. | + | |
- | * Létre jön a cypress.config.ts fájl. | + | |
- | * Módosítja az angular.json fájlt, az belül az ng run részt. | + | |
- | * Létre jön egy cypress alkönyvtár. | + | |
- | + | ||
- | A telepítő megkérdezi, | + | |
- | Válaszóljunk " | + | |
- | lehet jó válasz a " | + | |
- | + | ||
- | < | + | |
- | ng add @cypress/ | + | |
- | ℹ Using package manager: npm | + | |
- | ✔ Found compatible package version: @cypress/ | + | |
- | ✔ Package information loaded. | + | |
- | + | ||
- | The package @cypress/ | + | |
- | Would you like to proceed? (Y/n) | + | |
- | + | ||
- | ✔ Package successfully installed. | + | |
- | ? Would you like the default `ng e2e` command to use Cypress? | + | |
- | press Migration Guide: https:// | + | |
- | /n) | + | |
- | ? Would you like to add Cypress component testing? | + | |
- | ed for Cypress component testing. (Y/n) | + | |
- | CREATE cypress.config.ts (288 bytes) | + | |
- | CREATE cypress/ | + | |
- | CREATE cypress/ | + | |
- | CREATE cypress/ | + | |
- | CREATE cypress/ | + | |
- | CREATE cypress/ | + | |
- | CREATE cypress/ | + | |
- | CREATE cypress/ | + | |
- | UPDATE package.json (1220 bytes) | + | |
- | UPDATE | + | |
- | ✔ Packages installed successfully. | + | |
- | </ | + | |
- | + | ||
- | ==== A cypress könyvtár ==== | + | |
- | + | ||
- | < | + | |
- | app01/ | + | |
- | |-cypress/ | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | * e2e/ - A tesztek helye | + | |
- | * fixtures/ - ide írjuk a tesztadatokat | + | |
- | * support/ - egyéni parancsok, teszt segédletek | + | |
- | * tsconfig.json - TypeScript beállítások ehhez a könyvtárhoz | + | |
- | + | ||
- | A tesztek az e2e könyvtárban találhatók .cy.ts kiterjesztéssel. | + | |
- | + | ||
- | ==== Alrendszerek ==== | + | |
- | + | ||
- | A Cypress a Mocha és Chai rendszerekre épül. | + | |
- | A Mocha és a Chai népszerű kombináció. | + | |
- | Nagyjából ugyanazt csinálják mint a Jasmine, | + | |
- | gazdagabb funkciókkal. | + | |
- | + | ||
- | Ha használtunk már Jasmine-t, akkor láthatjuk hasonló teszteket kell írnunk. | + | |
- | + | ||
- | describe('', | + | |
- | + | ||
- | Egy fájl általában egyetlen describe blokkot tartalmaz, | + | |
- | ami újabb beágyazott describe blokkokat tartalmazhat. | + | |
- | + | ||
- | A describe blokkon belül itt is használhatók a következő blokkok: | + | |
- | * beforeEach | + | |
- | * afterEach | + | |
- | * beforeAll | + | |
- | * afterAll | + | |
- | + | ||
- | <code javascript> | + | |
- | describe(' | + | |
- | beforeEach(() => { | + | |
- | //Weblapra navigálás | + | |
- | }); | + | |
- | it(' | + | |
- | // | + | |
- | // | + | |
- | }); | + | |
- | }); | + | |
- | </ | + | |
- | + | ||
- | ==== Teszt futtatása ==== | + | |
- | + | ||
- | Telepítés után van egy cypress/ | + | |
- | + | ||
- | <code javascript> | + | |
- | describe(' | + | |
- | it(' | + | |
- | cy.visit('/' | + | |
- | cy.contains(' | + | |
- | }) | + | |
- | }) | + | |
- | </ | + | |
- | + | ||
- | A futtatást itt tesztelhetjük. Futtatás: | + | |
- | npx cypress run | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Linkek ===== | + | |
- | + | ||
- | * https:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
oktatas/web/angular/angular_end-to-end_teszt.1681508274.txt.gz · Utolsó módosítás: 2023/04/14 23:37 szerkesztette: admin