Bábos automatizálási tesztelés: 6. oktatóanyag

A Puppeteer egy csomópont js könyvtár alapú keretrendszer, amely nyílt forráskódúként érhető el. Használható webkaparó eszközökhöz. Tesztautomatizálási eszközökhöz is használják. Napjainkban a Puppeteer használata rohamosan növekszik az automatizált szoftvertesztelési területen. A megértéshez alapvető ismeretek szükségesek a parancssorról, a Javascriptről és a HTML DOM-struktúráról bábos bemutató. A teljes oktatóanyag az alábbi cikkekre van felosztva. 

Bábos bemutató

1. Tosca oktatóanyag: Bábos áttekintése

Tosca oktatói # 2: Bábos környezeti változók

Tosca oktatói # 3: A Puppeteer Web Scraping és Puppeteer Test Automation áttekintése

Tosca oktatói # 4: Telepítse a Puppeteer programot

Tosca oktatói # 5: Minta bábos projekt

6. Tosca oktatóanyag: Bábos automatizálási tesztelés

Ebben a „Bábos automatizálási tesztelés” oktatóanyagban a kezdetektől fogva elmagyarázzuk a bábos automatizálás részletes lépéseit. Az alábbiakban ismertetjük azokat a funkciókat, amelyek segítségével a bábjátékos automatizálási tesztelést a semmiből megérthetjük –

· Telepítse a Puppeteer programot

· Indítsa el a webalkalmazást

· Az objektum tulajdonságainak azonosítása a Chrome böngészőből

· Az űrlap beküldésének lépései – Szöveg beírása, eseményre kattintás, ellenőrzés

· Képernyőkép rögzítése

· Szkriptek végrehajtása a Puppeteer Automation számára

Bábos automatizálás

A szoftvertermékek minőségének biztosítása érdekében tesztelésre van szükség. A szoftverfejlesztési folyamatokban a tesztelésnek több szintje van meghatározva. Egy szoftver funkcióinak tesztelése történhet manuálisan vagy automatizált folyamaton keresztül. Az automatizált szoftverteszt fő céljai:

  • Gyors tesztvégrehajtási ciklus.
  • Kerülje el az emberi hibák lehetőségét.
  • Csökkentse a teszt végrehajtásának időzítését.
  • Csökkentse a kioldási ciklus idejét.
  • Fedezzen fel több funkcionalitást anélkül, hogy kompromisszumot kellene kötnie a minőséggel.
  • Több végrehajtás is elvégezhető párhuzamosan.

 A Puppeteer egy javascript alapú csomópont-könyvtár, amely magas szintű alkalmazási felületet (API) biztosít a Chrome webböngésző vezérléséhez a Chrome DevTools protokollon keresztül. A Chrome böngészőben végrehajtott kézi műveletek többsége automatizálható a Puppeteer segítségével. Tehát a Puppeteer jó választás webalkalmazásokon végzett egységtesztelésekhez, gyors és egyszerűbb módon. 

Bábjátékos automatizálási tesztelési megközelítés:

A Puppeteer Automation Testing lépéseit alább ismertetjük – 

Step1# Határozza meg a funkcionális teszt forgatókönyvét:

Megmutatjuk lépésről lépésre a Puppeteer automatizálás végrehajtását az alábbi forgatókönyvben - 

· Indítsa el a webböngészőt.

· Az Amazon webalkalmazás elindítása.

  • Keresse meg a „Tesztkönyv” című könyvet.
  • Az eredményből tegye a könyvet a kosárba.
  • Nyissa ki a kosarat, és ellenőrizze, hogy a könyv elérhető-e a kosárban.
  • Képernyő rögzítése és a böngésző bezárása.

2. lépés: Telepítse a Puppeteert és hozzon létre tesztesetet:

Hozzon létre egy üres JavaScript-fájlt „sample_script.js” néven egy adott mappában. Itt a gyökérmappát mintaprojektnek tekintjük. A Puppeteer telepítéséhez az „npm install puppeteer” parancsot fogjuk használni. A telepítési folyamat a hálózat sebességétől függően eltart egy ideig. Körülbelül 350 MB adatot fog letölteni. A telepítés után a különböző puppeteer összetevőket és a package-lock.json fájlt tartalmazó node_modules mappa létrejön a minta Puppeteer projekt gyökérmappájában.

Step3# A tesztobjektum rögzítési azonosító tulajdonságai:

Az azonosítási tulajdonságokat a Chrome webböngésző Developers Tool segítségével rögzíthetjük. A különböző tulajdonságok, például id, név, XPath stb. elemzésekor kiválasztjuk a megfelelőt, amely használható a szkriptben bármilyen művelet végrehajtására. Ebben a „Puppeteer Automation Testing” oktatóanyagban az XPath-ot fogjuk használni a szkriptben. Az XPATH vagy bármely más tulajdonság beszerzéséhez kövesse az alábbi lépéseket,

1. Nyissa meg a Fejlesztői eszközöket, amely a „Menü -> További eszközök” alatt érhető el, és lépjen az Elemek fülre.

2. A Finder eszközzel (az Elemek lap bal felső sarkában található nyíl ikonra kattintva) jelölje ki a tesztobjektumot az alkalmazásból. Itt megvizsgáljuk a keresőmezőt.

Puppeteer Automation Testing – Nyissa meg a Chrome fejlesztői eszközt
Puppeteer Automation Testing – Nyissa meg a Chrome Developer eszközt

3. Elemezze a kiemelt forráskódot a vágy tulajdonságainak azonosításához. A tesztobjektum XPATH tulajdonságának beszerzéséhez kattintson a jobb gombbal a kiemelt szakaszra, majd kattintson a „Másolás-> Xpath másolása” elemre az XPATH tulajdonság vágólapra másolásához.

Puppeteer Automation Testing - Copy XPath
Puppeteer Automation Testing – XPath másolása

4. Most illessze be az Xpath-ot a kereső szövegmezőbe, és nyomja meg az Enter billentyűt, hogy ellenőrizze, hogy az Xpath egyedileg azonosítja-e az objektumot.

Puppeteer Automation Testing – Ellenőrizze az XPath-ot
Puppeteer Automation Testing – Ellenőrizze az XPath-t

5. Hasonlóképpen egy másik tesztobjektum azonosító tulajdonságait is rögzítenünk kell.

Step4# Puppeteer Automation fejlesztési lépések:

A teszteset befejezéséhez bizonyos műveleteket kell végrehajtanunk a weboldalakon. Mindegyik művelethez különböző módszerek állnak rendelkezésre. A „Bábos automatizálási tesztelés” forgatókönyvünkben használt módszereket itt ismertetjük.

Alkalmazás indítása – A bábjátékos felvétele után el kell indítanunk a böngészőt a bábjátékos-indítás módszerrel. Objektumhivatkozás átadható ennek a metódusnak a fej nélküli vagy fej nélküli böngésző meghatározásához. Ezután létre kell hoznunk a webböngésző példányát, amely szükséges az URL-ben való navigáláshoz. Itt az async funkciót a await kulcsszó használatára használják a webszinkronizáló kezelésére.

//Tartalmazza a puppeteer csomagot const puppeteer = request('puppeteer'); (async () => { //a fej nélküli böngésző elindítása const browser = await puppeteer.launch({ headless: true }); //A böngésző const oldal példányának létrehozása = await browser.newPage(); //Lépjen a url várja a page.goto('https://www.amazon.in/'); })()

A teljes tesztelés egy fej nélküli böngészőben történik. Ha meg akarjuk nyitni a fejes böngészőt, át kell adnunk az objektumot a as indító metódusnak „{fej nélküli: hamis}”.

Ellenőrizze a létezést – Használnunk kell a módszert page.waitForXpath amely ellenőrzi az Xpath létezését és visszaadja a tesztobjektum hivatkozását. A visszatérési hivatkozás tesztelésével a tesztesetben egy ellenőrző pontot adhatunk hozzá.

	let searchBox = várja az oldalt.waitForXPath("//*[@id='twotabsearchtextbox']",{ látható: igaz }); if (searchBox === null) //A tesztobjektum ellenőrzése { console.log('Az Amazon képernyője nem jelenik meg'); }

Adja meg az adatokat - Használni a típus metódusát az objektumhivatkozáshoz, beírhatjuk a szöveget.

várjon searchBox.type("Tesztkönyv");

Kattintson az elemre  – Hasonlóképpen a kettyenés bármely objektum hivatkozás metódusával kattintási műveleteket végezhetünk.

let btnSearch = várja az oldalt.waitForXPath("//*/input[@id='nav-search-submit-button']",{visible:true }); btnSearch.click();

Üzenet nyomtatása a konzolon  – A módszer segítségével konzol.napló, bármilyen üzenetet kinyomtathatunk a konzolban kimenetként.

console.log('Konzol késés generálva');

Lásd az új lapot – A módszerek alkalmazása page.target és browser.waitforTarget, ellenőrizhetjük és egy változóban tárolhatjuk az új lapra vonatkozó hivatkozást.

	const pageTarget = page.target(); const newTarget = várja böngészőt.waitForTarget(cél => target.opener() === pageTarget); //az új oldal objektum lekérése: const page2 = await newTarget.page();

Képernyőkép készítése – A módszer segítségével oldalon. Képernyőkép, pillanatfelvétel készült az adott oldalról, és mentse az argumentumként megadott fájlnév szerint.

await page.screenshot({ elérési út: 'screenshot1.png' });

Zárja be az oldalt és a böngészőt – A módszer segítségével közel, bezárhatjuk a weboldalt és a böngészőt is.

	oldalra vár.close(); várjon böngésző.close();

Várakozási idő – Bizonyos esetekben meg kell várni az oldal betöltését vagy bármely függő feladat befejezését; le kell állítani a végrehajtást egy előre meghatározott időre. Ennek végrehajtásához használhatjuk az oldal.waitForTimeout metódus, amely szüneteltetheti a végrehajtást az argumentumban átadott érték (mili-másodpercben) alapján.

await page.waitForTimeout(2000);

Most megismertük a funkcionális forgatókönyvünk automatizálásának alapvető technikai lépéseit. Az ismeretek alapján az alábbiakban végigjárhatjuk a Puppeteer Automation tesztesetet. A leggyakrabban használt osztályok és módszerek részletes áttekintése a következő bejegyzésekben lesz elmagyarázva.

/** * @name Amazon keresés */ const puppeteer = request('puppeteer'); const reportPath = 'C:\\LambdaGeeks\\puppteer_proj_sample\\output\\'; const screenshot = 'screen1.png'; // A fájl exportálására .docx fájlba try { (async () => { const browser = await puppeteer.launch({ headless: false }); const pageNew = await browser.newPage() await pageNew.setViewport( { szélesség: 1280, magasság: 800 }); await pageNew.goto('https://www.amazon.in/'); //Adja meg a keresési feltételeket let searchBox = await page.waitForXPath("//*[@id ='twotabsearchtextbox']",{ látható: igaz }); if (searchBox === null) { console.log('Az Amazon képernyője nem jelenik meg'); } else{ await searchBox.type("Tesztkönyv"); console.log('A keresési feltételek megadva'); } //A keresés gombra kattintva hagyja, hogy a btnSearch = await pageNew.waitForXPath("//*/input[@id='nav-search-submit-button']", { látható: igaz }); if (btnSearch === null) { console.log('A keresés gomb nem jelenik meg'); } else{ await btnSearch.click(); console.log('A keresés gombra kattintott') ; } //Kattintson egy adott keresési eredményre, hagyja, hogy myBook = várja az oldaltNew.waitForXPath("//*[contains(text(),'Selenium Testing Tools Cookbook Second Edition')]",{ látható: igaz}) if (myBook === null) { console.log('A könyv nem elérhető'); } else{ várja myBook.click(); console.log('Kattintson az adott könyvre a megrendeléshez'); } // Annak megállapítása, hogy az új lap megnyílt-e const pageTarget = pageNew.target(); const newTarget = várja böngészőt.waitForTarget(cél => target.opener() === pageTarget); //az új oldal objektum lekérése: const page2 = await newTarget.pageNew(); await page2.setViewport({ szélesség: 1280, magasság: 800 }); //Kosárba helyezés let addToCart = await page2.waitForXPath("//*/input[@id='add-to-cart-button']",{ látható: igaz }); if (addToCart === null) { console.log('Kosárba helyezés gomb nem érhető el'); } else{ console.log('Kattintson a Kosárba tétel gombra'); vár addToCart.click(); } //A kosárba tétel folyamatának ellenőrzése let successMessage = await page2.waitForXPath("//*[contains(text(),'Hozzáadva a kosárhoz')]",{ látható: igaz }); if (successMessage === null) { console.log('Az áru nincs hozzáadva a kosárhoz'); } else{ console.log('Az áru sikeresen bekerült a kosárba'); } // Kosár számának rögzítése let cartCount = await page2.waitForXPath("//*/span[@id='nav-cart-count']",{ látható: igaz}); let value = wait page2.evaluate(el => el.textContent, cartCount) console.log('Kosárszám: ' + érték); cartCount.focus(); await page2.screenshot({ elérési út: képernyőkép }); await pageNew.waitForTimeout(2000); várj oldalra2.close(); wait pageNew.close(); várjon böngésző.close(); })() } catch (err) { console.error(err) }

5. lépés # Puppeteer automatizálási teszt végrehajtása:

A végrehajtást a paranccsal kezdeményezhetjük csomópont sample_script.js a parancssoron keresztül. A végrehajtás során a Chromium böngésző megnyílik, és automatikusan végrehajtja a funkcionális lépéseket, és eltárolja az utolsó oldal képernyőképét. A képernyőkép és a konzol kimenete az alábbiak szerint fog kinézni.

Bábos automatizálási tesztelés - Konzol kimenet
Bábos automatizálás tesztelése – Konzol kimenet
Bábos automatizálási tesztelés – rögzített képernyő
Bábos automatizálási tesztelés – rögzített képernyő

Következtetés:

Ebben a bábjátékos automatizálási tesztelési oktatóanyagban megismerkedtünk a bábjátékos automatizálási tesztelés részletes lépéseivel. A következő Bábos oktatóanyagban a leggyakrabban használt bábos osztályok és módszerek részletes áttekintését ismerjük meg. kérem kattintson itt hogy látogassa meg a Bábos oktatóprogram referenciaportálját. 

Írj hozzászólást

E-mail címed nem kerül nyilvánosságra. Kötelező kitölteni *

Lapozzon a lap tetejére