Ezen a héten belemerültem a szögmérővel végzett automatizált tesztelésbe.Mivel egy bankfiók építése mostanában sokszor kudarcot vall az időkorlátok és egyéb problémák miatt, megpróbálok többet megtudni és helyrehozni.

mi az automatizált tesztelés.

az automatizált tesztelés megkönnyíti az életet, ha helyesen van beállítva és hasznos :)az automatizált tesztelés szoftvereket / szerszámokat használ a kód gyors teszteléséhez. Teszthüvelyeket állít be, és azokat a szerszámokon keresztül hajtják végre. Nincs szükség emberi interakcióra a teszteléshez, miután megírta ezeket az eseteket. Meg lehet összehasonlítani, végre egy adja meg az adatokat a teszteket.

A leggyakoribb tesztek és azok különbségei.

a két leggyakoribb vizsgálati módszer, amellyel eddig találkoztam, az egység tesztelés és az E2E tesztelés.

egység tesztelés

Az egység tesztelése az egyes egységek tesztelésére összpontosít.Gondolj erre úgy, mint egy funkcióra vagy a kód egy kis részére.Ön gúnyol (hamis) szolgáltatások, hálózati és egyéb erőforrások, és nem minden a tesztelés elszigetelt.
az Angular Karma és a Jasmine keretrendszer többnyire használjákírni egység tesztek.

E2E tesztelés

az e2e teszteléssel átmehet a GUI-n, mint egy felhasználó.Kattintson a gombok, oldalak, menü,CRUD. (nem a termelés)
leggyakoribb használata E2E tesztelés szögletes szelén web-driver szögmérővel.
tehát a kód teszteléséhez hasznos az egységtesztek használata.Ha tesztelni szeretné webhelye funkcionális használatát, akkor próbálja ki az E2E-t.

miért tesztelje?

a cél az, hogy gyorsan találkozzunk a problémákkal.E2E teszteléshez: szintén nem akarja tesztelni, ha rákattint a képernyőkre, hogy lássa, hogy az ifa gomb továbbra is működik, vagy egy oldal önmagában töltődik be.Ez sok munka lenne, és nem következetes, ha különböző fejlesztők végeznék.

szögmérő beállítása.

hogyan kell telepíteni szögmérő.

a szögmérő telepítéséhez a következőket kell futtatnia a parancssorból:
a szögmérőt a futtatással telepítheti:

npm install -g protractor

ezután telepíti a webdriver manager for selenium programot.

webdriver-manager update

webdriver-manager start

teszt készítése.

először két fájlra van szükség a teszt létrehozásához, egy spec fájlra és egy konfigurációs fájlra.
a konfigurációs fájlban konfigurálhatja a spec fájlok helyét. Tartalmazza azt a böngészőt is, amelyet tesztelni szeretne, az alapértelmezett a Chrome.A szelén serveraddress van benne, hogy kommunikálni.A keret is meg van határozva, ez Jasmine.Akkor így néz ki:

 // conf.jsexports.config = { framework: 'jasmine', seleniumAddress: 'http://localhost:4444/wd/hub', specs: }

a teszt felépítéséhez meg kell határoznia egy esetet. Az esetet a spec fájlba építi. Először meg kell határoznia, hogy mi a teszt do.In ebben az esetben ellenőrizze, hogy a céloldalon megjelenik-e az üdvözlő üzenet.

 describe('Landing page', () => {let page: YourAppbeforeEach(() => { page = new YourApp() page.navigateTo('/login') }) it('should display welcome message', () => { expect(page.containsElement('#welcome')).toBeTruthy() expect(page.getElementText('#welcome')).toEqual('Welcome') })})

először írja le a tesztelni kívánt oldalt vagy elemet, ebben a példában ez a céloldal. A description A testsuite és a Jasmine szintaxis neve.Ez tartalmazza az áramlást a végétől a végéig. Ezen belül vannak’ it ‘ testcases.
ezután határozza meg, hogy mit kell tennie. A ‘ It ‘ A Jasmine globális funkciója. Akkor több’ it ‘ testcases a flow.(description)
ebben az esetben ellenőrizze, hogy a céloldal megkapta-e az üdvözlő üzenetet, ezért a várt módon elérhető. (igaz, toBeThruthy) azt is ellenőrzi, hogy a szöveg megegyezik-e a céloldalon található szöveggel ( toEqual(‘yourText’)

aszinkron vár.

a JavaScript aszinkron, nem tudod, hogy melyik szkript fog először végrehajtani. A szögmérő áramlása szinkron, a lépései egy meghatározott végrehajtási sorrendben vannak. Kattintson erre, majd arra a gombra.
szögmérő áramlások vannak írva egy ígéret. Szögmérő tudja kezelni az ígéret a várakozás, amíg teljes.

az async wait szintaxisa hasonló a TypeScript szintaxisához.
az aszinkron függvényt ‘aszinkron’ és ‘várakozás’betűkkel lehet becsomagolni.
vár előtt használjuk a sort, hogy szeretnénk várni.

 describe('Landing page', () => {let page: YourAppbeforeEach(() => { page = new YourApp() page.navigateTo('/login') }) it('should display welcome message',async () => { expect(await page.containsElement('#welcome')).toBeTruthy() expect(await page.getElementText('#welcome')).toEqual('Welcome') })})

mi volt a fő probléma a buildekkel?

a tesztjeim sok időtúllépéssel kudarcot vallottak. Az async várakozást használtam, és még mindig voltak problémák. Mint látható, a szintaxis szinte azonos a TypeScript async/várják.

ezt találtam a protractortest.org oldal.

ne felejtsd el kikapcsolni a control_flow-t, nem használhatod az async/wait és a control flow keverékét: az async/wait hatására a control flow megbízhatatlanná válik (lásd github kérdés). Tehát, ha aszinkronizálsz / vársz bárhol egy specifikációban, akkor használd a SELENIUM_PROMISE_MANAGER: false

hozzáadtam ezt a konfigurációhoz, és hibakerestem a bal oldali hibákat.
építek néhány várakozási / alvási időt néhány teszt között, és jól fut.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.