Mi az a szögmérő teszt?
A PROTRACTOR egy automatizálási és végpontok közötti viselkedésvezérelt tesztelő eszköz, amely fontos szerepet játszik az AngularJS alkalmazások tesztelésében, és olyan megoldásintegrátorként működik, amely olyan erős technológiákat ötvöz, mint a szelén, a jázmin, a webes illesztőprogram stb. nem csak az AngularJS alkalmazások tesztelésére szolgál, hanem automatizált regressziós tesztek írására a normál webalkalmazások számára is.
Ebben a kezdő oktatóanyagban megtanulod-
- Miért van szükség szögmérőre?
- Szögmérő telepítése
- Minta AngularJS alkalmazás tesztelés Protractor segítségével
- A kódex végrehajtása
- Jelentéseket generálhat a Jasmine Reporters segítségével
Miért van szükség szögmérőre?
A JavaScriptet szinte minden webalkalmazásban használják. Az alkalmazások növekedésével a JavaScript mérete és összetettsége is növekszik. Ebben az esetben a tesztelők számára nehéz feladat lesz a webalkalmazás különböző forgatókönyvek tesztelése.
Néha nehéz a webes elemeket rögzíteni az AngularJS alkalmazásokban a JUnit vagy a Selenium WebDriver használatával.
A Protractor egy NodeJS program, amelyet JavaScript-ben írtak, és a Node-szal együtt futtatja az AngularJS alkalmazások webelemeinek azonosításához, és a WebDriver segítségével a böngészőt felhasználói műveletekkel is vezérli.
Ok, jó, most beszéljük meg, mi is az az AngularJS alkalmazás?
Az AngularJS alkalmazások olyan webalkalmazások, amelyek kiterjesztett HTML-szintaxist használnak a webalkalmazás-összetevők kifejezésére. Főleg dinamikus webalkalmazásokhoz használják. Ezek az alkalmazások kevesebb és rugalmas kódot használnak, mint a normál webalkalmazások.
Miért nem találunk Angular JS webes elemeket a Normal Selenium Web illesztőprogram használatával?
A szögletes JS alkalmazások tartalmaznak néhány extra HTML attribútumot, például ng-repeater, ng-controller, ng-model ... stb., Amelyek nem szerepelnek a Selenium lokátorokban. A Selenium nem képes azonosítani azokat a webes elemeket a Selenium kód használatával. Tehát a szelén tetején lévő szögmérő képes kezelni és vezérelni ezeket az attribútumokat a webalkalmazásokban.
A szögmérő egy végpontok közötti tesztelési keretrendszer az Angular JS alapú alkalmazásokhoz. Míg a legtöbb keretrendszer az Angular JS alkalmazások egységtesztjeinek végrehajtására összpontosít, a Protractor az alkalmazás tényleges funkcionalitásának tesztelésére összpontosít.
A Protractor elindítása előtt a következőket kell telepítenünk:
- Szelén
A Selenium telepítési lépéseit a következő linkeken találja meg: (https://www.guru99.com/installing-selenium-webdriver.html)
- NPM (Node.js)
NodeJS telepítése, telepítenünk kell a NodeJS-t a Protractor telepítéséhez. Ezeket a telepítési lépéseket a következő linken találja meg. (https://www.guru99.com/download-install-node-js.html)
Szögmérő telepítése
1. lépés: Nyissa meg a parancssort, írja be az „npm install -g protractor” parancsot, és nyomja meg az Enter billentyűt .
A fenti parancs letölti a szükséges fájlokat, és telepíti a Protractort az ügyfélrendszerre.
2. lépés: Ellenőrizze a telepítést és a verziót a " Protractor --version " paranccsal . Ha sikeres lesz, akkor az alábbi képernyőképen megjelenő verzió jelenik meg. Ha nem, hajtsa végre újra az 1. lépést.
(A 3. és 4. lépés opcionális, de ajánlott a jobb gyakorlat érdekében)
3. lépés: Frissítse a webillesztő-kezelőt. A webillesztő-kezelőt a szögletes webalkalmazás elleni tesztek futtatására használják egy adott böngészőben. A Protractor telepítése után a webillesztő-kezelőt frissíteni kell a legújabb verzióra. Ezt úgy teheti meg, hogy a következő parancsot futtatja a parancssorban.
webdriver-manager update
4. lépés: Indítsa el a webillesztő-kezelőt. Ez a lépés a webes illesztőprogram-kezelőt futtatja a háttérben, és meghallgatja a szögmérőn keresztül futó teszteket.
Miután a Protractort bármilyen teszt futtatására használták, a webillesztő automatikusan betöltötte és lefuttatja a tesztet a megfelelő böngészőben. A webillesztő-kezelő elindításához a következő parancsot kell végrehajtani a parancssorból.
webdriver-manager start
Most, ha a böngészőben a következő URL-re megy ( http: // localhost: 4444 / wd / hub / static / resource / hub.html ), akkor a háttérben futó web-illesztőprogram-kezelőt látja.
Minta AngularJS alkalmazás tesztelés Protractor segítségével
A szögmérő futtatásához két fájlra van szükség, egy specifikációs fájlra és a konfigurációs fájlra.
- Konfigurációs fájl : Ez a fájl elősegíti a szögmérőt a tesztfájlok helyén (specs.js) és a Selenium szerverrel (Selenium Address) való beszélgetéshez. A Chrome a Protractor alapértelmezett böngészője.
- Spec fájl: Ez a fájl tartalmazza az alkalmazással való kommunikáció logikáját és lokátorait .
1. lépés: Be kell jelentkeznünk a https://angularjs.org webhelyre, és a "Gépeljen be egy nevet ide" szövegmezőbe írja be a szöveget "GURU99" néven.
2. lépés) Ebben a lépésben
- Írta be a "Guru99" nevet
- A kimeneti szövegben a "Hello Guru99" látható.
3. lépés) Most meg kell ragadnunk a szöveget a weboldalról, miután megadtuk a nevet, és igazolnunk kell a várt szöveggel .
Kód:
Előkészítenünk kell a konfigurációs fájlt (conf.js) és a spec fájlt (spec.js) a fent említettek szerint.
A spec.js logikája:
describe('Enter GURU99 Name', function() {it('should add a Name as GURU99', function() {browser.get('https://angularjs.org');element(by.model('yourName')).sendKeys('GURU99');var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));expect(guru.getText()).toEqual('Hello GURU99!');});});
Kód A spec.js magyarázata:
- írják le ( 'Enter GURU99 neve', function ()
A leíró szintaxis a jázmin keretrendszerből származik. Itt a "description" ('Írja be a GURU99 nevet') tipikusan meghatározza az alkalmazás összetevőit, amelyek lehetnek osztályok vagy függvények stb. Az "Enter GURU99" nevű kódkészletben ez csak egy karakterlánc, és nem kód.
- it ('hozzá kell adnia egy nevet GURU99 néven', function ()
- browser.get ('https://angularjs.org')
A Selenium Webdriver böngészőhöz hasonlóan a browser.get új böngészőpéldányt nyit meg az említett URL-címmel.
- elem (by.model ('a te neved')). sendKeys ('GURU99')
Itt találjuk azt a webelementet, amely a Model nevet használja "yourName" néven, ami a weboldalon az "ng-model" értéke. Ellenőrizze az alábbi képernyőképet-
- var guru = elem (by.xpath ('html / body / div [2] / div [1] / div [2] / div [2] / div / h1'))
Itt találjuk meg a web elemet az XPath segítségével, és az értékét egy "guru" változóban tároljuk .
- várható (guru.getText ()). toEqual ('Helló GURU99!')
Végül ellenőrizzük a weblapról kapott szöveget (a gettext () használatával) a várt szöveggel.
A conf.js logikája:
exports.config = {seleniumAddress: 'http://localhost:4444/wd/hub',specs: ['spec.js']};
Kód A conf.js magyarázata
- szeléncím: "http: // localhost: 4444 / wd / hub"
A konfigurációs fájl megmondja a szögmérőnek a Selenium Address helyét, hogy beszéljen a Selenium WebDriver programmal.
- specifikációk: ['spec.js']
Ez a sor megadja a szögmérőnek a spec.js tesztfájlok helyét
A kódex végrehajtása
Itt először megváltoztatjuk a könyvtár elérési útját, vagy navigálunk arra a mappára, ahol a confi.js és spec.js a rendszerünkben található .
Kövesse a következő lépést.
1. lépés: Nyissa meg a parancssort.
2. lépés: Győződjön meg arról, hogy a szelén web-illesztőprogram-kezelő működik és működik. Ehhez adja meg a parancsot "webdriver-manager start" néven, és nyomja meg az Enter billentyűt .
(Ha a szelén web-illesztőprogram nem működik és fut, akkor nem folytathatunk tesztet, mivel a szögmérő nem találja a web-illesztőprogramot a webalkalmazás kezeléséhez)
3. lépés: Nyisson meg egy új parancssort, és adja meg a parancsot "protractor conf.js" néven a konfigurációs fájl futtatásához.
Magyarázat:
- Itt a Protractor végrehajtja a konfigurációs fájlt, benne megadott specifikációs fájllal.
- Láthatjuk a " http: // localhost: 4444 / wd / hub " címen futó szelén szervert, amelyet a conf.js fájlban adtunk meg.
- Itt láthatja az eredményt, hogy hány túllépett és meghibásodott, mint a fenti képernyőképen .
Rendben, ellenőriztük az eredményt, amikor az megfelel, vagy ahogy az várható volt. Most nézzük meg a sikertelen eredményt is.
1. lépés: Nyissa meg és változtassa meg a spec.js-t a "'Hello change GURU99" -re.
A spec.js változása után :
describe('Enter GURU99 Name', function() {it('should add a Name as GURU99', function() {browser.get('https://angularjs.org');element(by.model('yourName')).sendKeys('GURU99');var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));expect(guru.getText()).toEqual('Hello change GURU99!');});});
2. lépés: Mentse a spec.js fájlt, és ismételje meg a "Kód végrehajtása" szakasz fenti lépéseit
Most hajtsa végre a fenti lépéseket.
Eredmény:
Láthatjuk, hogy az eredmény sikertelen, és a képernyőn 'F' jelzéssel szerepel, és ennek oka: "Várható" Hello GURU99! " egyenlő „Hello change GURU99!”. Ez azt is megmutatja, hogy hány hiba történt a kód futtatásakor.
Elérhetjük ugyanezt a Selenium web-illesztőprogrammal?
Néha azonosítani tudjuk az AngularJS alkalmazások webelemeit a Selenium web-illesztőprogramból származó XPath vagy CSS választóval. De az AngularJS alkalmazásokban az elemeket dinamikusan generálják és megváltoztatják. Tehát a szögmérő a jobb gyakorlat az AngularJS alkalmazásokkal való együttműködéshez.
Jelentéseket generálhat a Jasmine Reporters segítségével
A szögmérő támogatja a Jasmine újságírókat tesztjelentések készítésében. Ebben a szakaszban a JunitXMLReporter segítségével fogjuk létrehozni a tesztfuttatási jelentéseket automatikusan XML formátumban.
Kövesse az alábbi lépéseket a jelentések XML formátumban történő létrehozásához.
A Jasmine Reporter telepítése
Ezt kétféleképpen teheti meg, lokálisan vagy globálisan
- Nyissa meg a parancssort, hajtsa végre a következő parancsot a helyi telepítéshez
npm install --save-dev jasmine-reporters@^2.0.0
A fenti parancs telepíti a jázmin jelentéseket. A csomópont-modulok lokálisan azt a könyvtárat jelentik, ahonnan a parancsot a parancssorban futtatjuk.
- Nyissa meg a parancssort, hajtsa végre a következő parancsot a globális telepítéshez
npm install -g jasmine-reporters@^2.0.0
Ebben az oktatóanyagban a jázmin riportereket helyben telepítjük .
1. lépés: Hajtsa végre a parancsot.
npm install --save-dev jasmine-reporters@^2.0.0
a parancssorból, mint alább.
2. lépés: Ellenőrizze a telepítési mappákat a könyvtárban . A "Node_modules" elérhetőnek kell lennie, ha sikeresen telepítve van, mint az alábbi pillanatképben.
3. lépés: Adja hozzá a következő színes kódot egy létező conf.js fájlhoz
exports.config = {seleniumAddress: 'http://localhost:4444/wd/hub',capabilities: {'browserName': 'firefox'},specs: ['spec.js'],framework: 'jasmine2' ,onPrepare: function() {var jasmineReporters = require('C:/Users/RE041943/Desktop/guru/node_modules/jasmine-reporters');jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter(null, true, true));}};
A kód magyarázata:
Kódban generáljuk a " JUnitXmlReporter " jelentést, és megadjuk az elérési utat, ahol a jelentést tárolni kell.
4. lépés: Nyissa meg a parancssort, és hajtsa végre a conf.js szögmérőt.
5. lépés: A fenti kód végrehajtásakor a junitresults.xml generálódik az említett útvonalon.
6. lépés: Nyissa meg az XML-t, és ellenőrizze az eredményt. A hibaüzenet az eredményfájlban jelenik meg, mivel a tesztesetünk sikertelen. A teszteset sikertelen volt, mivel a "spec.js" várható eredménye nem egyezik a weboldal tényleges eredményével
7. lépés: Használja a junitresult.xml fájlt bizonyítékokra vagy eredményfájlokra.
Összegzés:
Noha a szelén képes elvégezni a szögmérő néhány dolgát, a szögmérő az ipari szabvány és a legjobb gyakorlat az AngularJS alkalmazások tesztelésére. A szögmérő számos képességet kezelhet benne, és kezelheti a webes elemek dinamikus változását az ng-model, ng-click… stb. Használatával (amely a szelén nem képes).
A cikket Ranjith Kumar Enishetti készítette