Vodič za ispitivanje kutomjera: Okvir alata za automatizaciju

Sadržaj:

Anonim

Što je ispitivanje kutomjerom?

PROTRACTOR je alat za automatizaciju i ponašanje usmjeren na ponašanje koji igra važnu ulogu u testiranju aplikacija AngularJS i djeluje kao integrator rješenja kombinirajući moćne tehnologije poput selena, jasmina, web upravljačkog programa itd. Svrha testiranja kutomjera nije samo za testiranje aplikacija AngularJS već i za pisanje automatiziranih regresijskih testova za normalne web aplikacije.

U ovom početnom vodiču naučit ćete-

  • Zašto nam treba okvir kutomjera?
  • Ugradnja uglomera
  • Uzorak testiranja aplikacije AngularJS pomoću kutomjera
  • Izvršenje Kodeksa
  • Generirajte izvješća pomoću jasmin reportera

Zašto nam treba okvir kutomjera?

JavaScript se koristi u gotovo svim web aplikacijama. Kako aplikacije rastu, tako se i JavaScript povećava u veličini i složenosti. U tom slučaju testerima postaje težak zadatak testirati web aplikaciju za različite scenarije.

Ponekad je teško uhvatiti web elemente u aplikacijama AngularJS pomoću JUnit ili Selenium WebDriver.

Kutomjer je NodeJS program koji je napisan na JavaScript-u i radi s Nodeom za prepoznavanje web elemenata u aplikacijama AngularJS, a također koristi WebDriver za upravljanje preglednikom pomoću korisničkih radnji.

Ok, dobro, hajde da razgovaramo što je točno aplikacija AngularJS?

Aplikacije AngularJS su web aplikacije koje koriste proširenu HTML sintaksu za izražavanje komponenata web aplikacija. Uglavnom se koristi za dinamičke web aplikacije. Te aplikacije koriste manje i fleksibilni kod u usporedbi s uobičajenim web aplikacijama.

Zašto ne možemo pronaći kutne JS web elemente pomoću upravljačkog programa Normal Selenium Web?

Kutne JS aplikacije imaju neke dodatne HTML atribute poput ng-repetitora, ng-kontrolera, ng-modela ... itd. Koji nisu uključeni u selenijske lokatore. Selenium ne može identificirati te mrežne elemente pomoću selenijskog koda. Dakle, kutomjer na vrhu Selenija može upravljati i kontrolirati te atribute u web aplikacijama.

Kutomjer je okvir za kraj ispitivanja za kutne JS aplikacije. Iako se većina okvira usredotočuje na provođenje jediničnih testova za Angular JS aplikacije, Protractor se fokusira na testiranje stvarne funkcionalnosti aplikacije.

Prije nego što pokrenemo kutomjer, moramo instalirati sljedeće:

  1. Selen

    Korake instalacije Selenium možete pronaći na sljedećim poveznicama, (https://www.guru99.com/installing-selenium-webdriver.html)

  2. NPM (Node.js)

    Instalacija NodeJS-a, za instalaciju kutomjera moramo instalirati NodeJS. Ove korake za instalaciju možete pronaći na sljedećoj poveznici. (https://www.guru99.com/download-install-node-js.html)

Ugradnja uglomera

Korak 1) Otvorite naredbeni redak i upišite "npm install -g kutomjer" i pritisnite Enter .

Gornja naredba će preuzeti potrebne datoteke i instalirati Protractor na klijentski sustav.

Korak 2) Provjerite instalaciju i verziju pomoću " Kutomjer - verzija ". Ako uspije, prikazat će se verzija kao na donjem snimku zaslona. Ako nije, ponovite korak 1 ponovno.

(Koraci 3 i 4 nisu obavezni, ali se preporučuju za bolju praksu)

Korak 3) Ažurirajte upravitelja web upravljačkih programa. Upravitelj web-upravljačkim programima koristi se za pokretanje testova protiv kutne web-aplikacije u određenom pregledniku. Nakon što se instalira Protractor, upravitelj web upravljačkog programa treba ažurirati na najnoviju verziju. To se može učiniti pokretanjem sljedeće naredbe u naredbenom retku.

webdriver-manager update

Korak 4) Pokrenite upravitelj web upravljačkog programa. Ovaj će korak pokrenuti upravitelja web upravljačkog programa u pozadini i preslušat će sve testove koji se izvode putem kutomjera.

Jednom kada se kutomjer koristi za pokretanje bilo kojeg testa, web upravljački program automatski će se učitati i pokrenuti test u odgovarajućem pregledniku. Da biste pokrenuli upravitelja web upravljačkog programa, iz naredbenog retka treba izvršiti sljedeću naredbu.

webdriver-manager start

Ako u svom pregledniku otvorite sljedeći URL ( http: // localhost: 4444 / wd / hub / static / resource / hub.html ), u pozadini ćete zapravo vidjeti upravitelja web upravljačkih programa.

Uzorak testiranja aplikacije AngularJS pomoću kutomjera

Kutomjer treba pokretati dvije datoteke, spec datoteku i datoteku za konfiguraciju .

  1. Datoteka za konfiguraciju : Ova datoteka pomaže kutomjeru do mjesta na kojem su postavljene testne datoteke (specs.js) i razgovora sa Selenium poslužiteljem (Selenium Address). Chrome je zadani preglednik za kutomjer.
  1. Datoteka sa specifikacijama: Ova datoteka sadrži logiku i lokatore za interakciju s aplikacijom .

Korak 1) Moramo se prijaviti https://angularjs.org i unijeti tekst kao "GURU99" u okvir za tekst "Unesite ime ovdje".

Korak 2) U ovom koraku,

  1. Upisao ime "Guru99"
  2. U izlaznom tekstu se vidi "Hello Guru99".

Korak 3) Sada moramo uhvatiti tekst s web stranice nakon unosa imena i treba ga potvrditi s očekivanim tekstom .

Kodirati:

Moramo pripremiti konfiguracijsku datoteku (conf.js) i spec datoteku (spec.js) kao što je gore spomenuto.

Logika spec.js:

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!');});});

Objašnjenje koda spec.js:

  1. opisati ('Unesite naziv GURU99', funkcija ()

    Sintaksa je opisana iz okvira Jasmine. Ovdje "descri" ('Enter GURU99 Name') obično definira komponente aplikacije, koje mogu biti klasa ili funkcija itd. U paketu koda koji se naziva "Enter GURU99", to je samo niz, a ne kôd.

  2. it ('treba dodati ime kao GURU99', funkcija ()
  3. browser.get ('https://angularjs.org')

    Kao i u Selenium Webdriver browser.get otvorit će novu instancu preglednika sa spomenutim URL-om.

  4. element (by.model ('vašeIme')). sendKeys ('GURU99')

    Ovdje pronalazimo web element koji koristi naziv modela kao "yourName", što je vrijednost "ng-model" na web stranici. Pogledajte snimku zaslona ispod -

  1. var guru = element (by.xpath ('html / body / div [2] / div [1] / div [2] / div [2] / div / h1'))

    Ovdje pronalazimo web element koristeći XPath i pohranjujemo njegovu vrijednost u varijablu "guru" .

  2. očekivati (guru.getText ()). toEqual ('Pozdrav GURU99!')

    Napokon provjeravamo tekst koji smo dobili s web stranice (koristeći gettext ()) s očekivanim tekstom.

Logika conf.js:

exports.config = {seleniumAddress: 'http://localhost:4444/wd/hub',specs: ['spec.js']};

Objašnjenje koda conf.js

  1. seleniumAddress: 'http: // localhost: 4444 / wd / hub'

    Datoteka za konfiguraciju kutomjeru kaže mjesto Selenium adrese za razgovor sa Selenium WebDriver.

  2. specifikacije: ['spec.js']

    Ovaj redak kaže Kutomjeru mjesto testnih datoteka spec.js

Izvršenje Kodeksa

Ovdje ćemo prvo promijeniti put do direktorija ili otići do mape u kojoj su smješteni confi.js i spec.js u našem sustavu .

Slijedite sljedeći korak.

Korak 1) Otvorite naredbeni redak.

Korak 2) Provjerite je li pokrenut i radi li upravitelj upravljačkog programa selena. Za to dajte naredbu kao "webdriver-manager start" i pritisnite Enter .

(Ako mrežni upravljački program selena nije pokrenut, ne možemo nastaviti s testom jer Protractor ne može pronaći web upravljački program za rukovanje web aplikacijom)

Korak 3) Otvorite novi naredbeni redak i dajte naredbu kao "protractor conf.js" za pokretanje konfiguracijske datoteke.

Obrazloženje:

  • Ovdje će Protractor izvršiti konfiguracijsku datoteku s datom specifikacijskom datotekom.
  • Možemo vidjeti da se selenov poslužitelj izvodi na " http: // localhost: 4444 / wd / hub " koji smo naveli u datoteci conf.js.
  • Također, ovdje možete vidjeti rezultat koliko je proslijeđenih i kvarova kao na gornjoj snimci zaslona .

U redu, provjerili smo rezultat kad je prošao ili kako se očekivalo. Pogledajmo sada i neuspješni rezultat.

Korak 1) Otvorite i očekujte da će promjena rezultirati spec.js u "'Hello change GURU99" kao u nastavku.

Nakon promjene u spec.js :

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!');});});

Korak 2) Spremite datoteku spec.js i ponovite gornje korake u odjeljku "Izvršenje koda"

Sada izvršite gornje korake.

Proizlaziti:

Rezultat možemo vidjeti kao neuspjeli, a na snimci zaslona označen je s "F", a razlog je "Očekivano" Pozdrav GURU99! " jednak 'Pozdrav, promijeni GURU99!'. Također, pokazuje koliko se neuspjeha susreće prilikom izvršavanja koda.

Možemo li to postići s web upravljačkim programom Selenium?

Ponekad možemo prepoznati web elemente aplikacija AngularJS pomoću XPath ili CSS selektora iz web-pokretačkog programa Selenium. Ali u aplikacijama AngularJS, elementi će se generirati i mijenjati dinamički. Dakle, Protractor je bolja praksa za rad s aplikacijama AngularJS.

Generirajte izvješća pomoću jasmin reportera

Kutomjer podržava novinare Jasmine u generiranju izvještaja o ispitivanjima. U ovom ćemo odjeljku koristiti JunitXMLReporter za automatsko generiranje izvješća o izvršenju testa u XML formatu.

Slijedite korake u nastavku za generiranje izvješća u XML formatu.

Instalacija Jasmine Reporter

Postoje dva načina na koja to možete učiniti lokalno ili globalno

  1. Otvorite naredbeni redak izvršite sljedeću naredbu za lokalnu instalaciju
npm install --save-dev jasmine-reporters@^2.0.0 

Iznad naredba će instalirati jasmin izvješća node-module lokalno znači iz direktorija u kojem izvršavamo naredbu u naredbenom retku.

  1. Otvorite naredbeni redak izvršite sljedeću naredbu za globalnu instalaciju
npm install -g jasmine-reporters@^2.0.0

U ovom uputstvu instalirat ćemo izvještaje o jasminu lokalno .

Korak 1) Izvršite naredbu.

npm install --save-dev jasmine-reporters@^2.0.0

iz naredbenog retka kao u nastavku.

Korak 2) Provjerite instalacijske mape u direktoriju . "Čvorovi_moduli" trebali bi biti dostupni ako je uspješno instaliran kao na donjoj snimci.

Korak 3) Dodajte sljedeći obojeni kôd u postojeću datoteku conf.js

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));}};

Objašnjenje koda:

U kodu generiramo izvješće " JUnitXmlReporter " i dajemo put kamo treba spremiti izvješće.

Korak 4) Otvorite naredbeni redak i izvršite kutomjer naredbi conf.js.

Korak 5) Kada izvršite gornji kod, junitresults.xml će se generirati u spomenutoj putanji.

Korak 6) Otvorite XML i provjerite rezultat. Poruka o neuspjehu prikazana je u datoteci rezultata jer naš testni slučaj nije uspio. Test slučaj nije uspio jer se Očekivani rezultat iz "spec.js" ne podudara sa stvarnim rezultatom s web stranice

Korak 7) Koristite datoteku junitresult.xml za dokaze ili datoteke rezultata.

Sažetak:

Iako selenij može učiniti nešto od onoga što radi kutomjer, kutomjer je industrijski standard i najbolja praksa za testiranje aplikacija AngularJS. Kutomjer također može upravljati s više mogućnosti u njemu i nositi se s dinamičkim promjenama web elemenata pomoću ng-modela, ng-klika ... itd. (Što selen ne može učiniti).

Ovaj je članak napisao Ranjith Kumar Enishetti