Instrumentu testēšanas apmācība: automatizācijas rīku ietvars

Satura rādītājs:

Anonim

Kas ir transportiera pārbaude?

PROTRACTOR ir automatizācijas un no gala līdz galam uz uzvedību balstīts testēšanas rīks, kam ir svarīga loma AngularJS lietojumprogrammu testēšanā, un tas darbojas kā risinājumu integrators, kas apvieno jaudīgas tehnoloģijas, piemēram, selēnu, jasmīnu, tīmekļa draiveri utt. ir paredzēts ne tikai AngularJS lietojumprogrammu testēšanai, bet arī automātisku regresijas testu rakstīšanai parastajām tīmekļa lietojumprogrammām.

Šajā iesācēju apmācībā jūs uzzināsiet

  • Kāpēc mums vajag transportiera ietvaru?
  • Transportiera uzstādīšana
  • AngularJS lietojumprogrammu testēšanas paraugs, izmantojot Protractor
  • Kodeksa izpilde
  • Ģenerējiet pārskatus, izmantojot Jasmine Reporters

Kāpēc mums vajag transportiera ietvaru?

JavaScript tiek izmantots gandrīz visās tīmekļa lietojumprogrammās. Pieaugot lietojumprogrammām, JavaScript palielinās arī pēc izmēra un sarežģītības. Šādā gadījumā testētājiem kļūst sarežģīts uzdevums pārbaudīt tīmekļa lietojumprogrammu dažādiem scenārijiem.

Dažreiz ir grūti uztvert tīmekļa elementus AngularJS lietojumprogrammās, izmantojot JUnit vai Selenium WebDriver.

Protractor ir NodeJS programma, kas ir rakstīta JavaScript valodā un darbojas kopā ar Node, lai identificētu tīmekļa elementus AngularJS lietojumprogrammās, un tā arī izmanto WebDriver, lai pārlūku kontrolētu ar lietotāja darbībām.

Labi, labi, tagad apspriedīsimies, kas īsti ir AngularJS lietojumprogramma?

AngularJS lietojumprogrammas ir tīmekļa lietojumprogrammas, kas izmanto paplašinātu HTML sintaksi, lai izteiktu tīmekļa lietojumprogrammu komponentus. To galvenokārt izmanto dinamiskām tīmekļa lietojumprogrammām. Šajās lietojumprogrammās tiek izmantots mazāks un elastīgāks kods nekā parastajās tīmekļa lietojumprogrammās.

Kāpēc mēs nevaram atrast Angular JS tīmekļa elementus, izmantojot Web draiveri Normal Selenium?

Stūrajām JS lietojumprogrammām ir daži papildu HTML atribūti, piemēram, ng-retranslators, ng-kontrolieris, ng-modelis ... utt., Kas nav iekļauti Selenium lokatoros. Selēns nevar identificēt šos tīmekļa elementus, izmantojot selēna kodu. Tātad, Selenium augšpusē esošais transportieris var apstrādāt un kontrolēt šos atribūtus tīmekļa lietojumprogrammās.

Spriegotājs ir gala testēšanas sistēma Angular JS balstītām lietojumprogrammām. Lai gan lielākā daļa ietvaru ir vērsti uz vienības testu veikšanu Angular JS lietojumprogrammām, Protractor koncentrējas uz lietojumprogrammas faktiskās funkcionalitātes pārbaudi.

Pirms sākam Protractor, mums jāinstalē:

  1. Selēns

    Selēna instalēšanas darbības varat atrast šādās saitēs (https://www.guru99.com/installing-selenium-webdriver.html)

  2. NPM (Node.js)

    NodeJS uzstādīšana, mums jāinstalē NodeJS, lai instalētu Protractor. Šīs instalēšanas darbības varat atrast nākamajā saitē. (https://www.guru99.com/download-install-node-js.html)

Transportiera uzstādīšana

1. solis) Atveriet komandu uzvedni un ierakstiet "npm install -g protractor" un nospiediet taustiņu Enter .

Iepriekš minētā komanda lejupielādēs nepieciešamos failus un klienta sistēmā instalēs Protractor.

2. solis. Pārbaudiet instalāciju un versiju, izmantojot " Protractor --version ". Ja tas izdosies, tā parādīs versiju, kā parādīts zemāk esošajā ekrānuzņēmumā. Ja nē, veiciet 1. darbību vēlreiz.

(3. un 4. darbība nav obligāta, taču ieteicama labākai praksei)

3. darbība. Atjauniniet tīmekļa draiveru pārvaldnieku. Tīmekļa draiveru pārvaldnieks tiek izmantots, lai veiktu testus pret leņķisko tīmekļa lietojumprogrammu noteiktā pārlūkprogrammā. Pēc Protractor instalēšanas ir jāatjaunina tīmekļa draiveru pārvaldnieks uz jaunāko versiju. To var izdarīt, komandu uzvednē palaižot šādu komandu.

webdriver-manager update

4. solis) Sāciet tīmekļa draiveru pārvaldnieku. Šis solis palaidīs tīmekļa draiveru pārvaldnieku fonā un klausīsies visus testus, kas tiek veikti, izmantojot transportieri.

Kad Protractor tiks izmantots jebkura testa veikšanai, tīmekļa draiveris automātiski ielādēs un veiks testu attiecīgajā pārlūkprogrammā. Lai palaistu tīmekļa draiveru pārvaldnieku, no komandu uzvednes jāizpilda šāda komanda.

webdriver-manager start

Tagad, pārlūkprogrammā pārejot uz šo vietrādi URL ( http: // localhost: 4444 / wd / hub / static / resource / hub.html ), fonā faktiski redzēsit tīmekļa draiveru pārvaldnieku.

AngularJS lietojumprogrammu testēšanas paraugs, izmantojot Protractor

Protraktora darbībai nepieciešami divi faili, spec fails un konfigurācijas fails.

  1. Konfigurācijas fails : Šis fails palīdz transportierim nokļūt testa failos (specs.js) un runāt ar Selenium serveri (Selenium Address). Chrome ir noklusējuma pārlūks Protractor.
  1. Spec fails: Šis fails satur loģiku un lokatorus mijiedarbībai ar lietojumprogrammu .

1. solis. Mums ir jāpiesakās https://angularjs.org un tekstlodziņā "Ievadiet vārdu šeit" ievadiet tekstu kā "GURU99".

2. solis) Šajā solī

  1. Ievadīts nosaukums "Guru99"
  2. Izejas tekstā ir redzams "Hello Guru99".

3. solis. Tagad mums ir jāaptver teksts no tīmekļa lapas pēc nosaukuma ievadīšanas un jāpārbauda ar paredzamo tekstu .

Kods:

Mums ir jāsagatavo konfigurācijas fails (conf.js) un spec fails (spec.js), kā minēts iepriekš.

Spec.js loģika:

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

Spec.js koda skaidrojums:

  1. aprakstīt ('Ievadiet GURU99 nosaukumu', funkcija ()

    Aprakstītā sintakse ir no Jasmine ietvara. Šeit "aprakstīt" ('Enter GURU99 Name') parasti definē lietojumprogrammas komponentus, kas var būt klase vai funkcija utt. Kodu komplektā, ko sauc par "Enter GURU99", tā ir tikai virkne, nevis kods.

  2. it ('jāpievieno nosaukums kā GURU99', funkcija ()
  3. browser.get ('https://angularjs.org')

    Tāpat kā Selenium Webdriver browser.get atvērs jaunu pārlūka gadījumu ar minēto URL.

  4. elements (by.model ('tavsVards')). sendKeys ('GURU99')

    Šeit mēs atrodam tīmekļa elementu, izmantojot modeļa nosaukumu kā "jūsuVārds", kas ir "ng-model" vērtība tīmekļa lapā. Pārbaudiet zemāk redzamo ekrānuzņēmumu-

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

    Šeit mēs atrodam tīmekļa elementu, izmantojot XPath, un tā vērtība tiek saglabāta mainīgajā "guru" .

  2. sagaidīt (guru.getText ()). toEqual (“Sveiki, GURU99!”)

    Visbeidzot, mēs pārbaudām tekstu, ko esam ieguvuši no tīmekļa lapas (izmantojot gettext ()) ar paredzamo tekstu.

Conf.js loģika:

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

Conf.js koda skaidrojums

  1. selenium Adrese: "http: // localhost: 4444 / wd / hub"

    Konfigurācijas fails protraktoram norāda selēna adreses atrašanās vietu, lai runātu ar Selenium WebDriver.

  2. specifikācijas: ['spec.js']

    Šī rinda protraktoram norāda testa failu spec.js atrašanās vietu

Kodeksa izpilde

Te, pirmkārt, mēs mainīt direktorija ceļu vai pārejiet uz mapi, kur confi.js un spec.js ir ievietoti mūsu sistēmā .

Veiciet šādu darbību.

1. solis) Atveriet komandu uzvedni.

2. solis. Pārliecinieties, vai selēna tīmekļa draiveru pārvaldnieks ir izveidots un darbojas. Tam dodiet komandu kā "webdriver-manager start" un nospiediet taustiņu Enter .

(Ja selēna tīmekļa draiveris nav izveidots un darbojas, mēs nevaram turpināt pārbaudi, jo Protractor nevar atrast tīmekļa draiveri, kas apstrādātu tīmekļa lietojumprogrammu)

3. solis. Atveriet jaunu komandu uzvedni un norādiet komandu kā "transportieris conf.js", lai palaistu konfigurācijas failu.

Paskaidrojums:

  • Šeit Protractor izpildīs konfigurācijas failu ar tajā norādīto spec failu.
  • Mēs varam redzēt selēna serveri, kas darbojas vietnē " http: // localhost: 4444 / wd / hub ", kuru esam norādījuši failā conf.js.
  • Arī šeit var redzēt rezultātu, cik daudz ir izturēts un neveiksmes, piemēram, iepriekš redzamajā ekrānuzņēmumā .

Lieliski, mēs esam pārbaudījuši rezultātu, kad tas ir izturēts vai kā paredzēts. Tagad apskatīsim arī neizdevušos rezultātu.

1. solis. Atveriet un mainiet paredzamo rezultātu spec.js uz "'Sveiki nomainiet GURU99", kā norādīts tālāk.

Pēc izmaiņām 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!');});});

2. darbība. Saglabājiet failu spec.js un atkārtojiet iepriekš minētās sadaļas “Koda izpilde” darbības

Tagad izpildiet iepriekš minētās darbības.

Rezultāts:

Mēs varam redzēt rezultātu kā neizdevušos, ekrānuzņēmumā norādīts ar “F” ar iemeslu “Paredzamais” Sveiks, GURU99! ” uz vienādu “Sveiki nomainiet GURU99!”. Tas arī parāda, cik daudz kļūmju ir radies , izpildot kodu.

Vai mēs varam sasniegt to pašu ar Selenium tīmekļa draiveri?

Dažreiz mēs varam identificēt AngularJS lietojumprogrammu tīmekļa elementus, izmantojot XPath vai CSS selektoru no Selenium tīmekļa draivera. Bet AngularJS lietojumprogrammās elementi tiks ģenerēti un mainīti dinamiski. Tātad Protractor ir labāka prakse darbam ar AngularJS lietojumprogrammām.

Ģenerējiet pārskatus, izmantojot Jasmine Reporters

Protractor atbalsta Jasmine reportierus testa ziņojumu ģenerēšanai. Šajā sadaļā mēs izmantosim JunitXMLReporter, lai automātiski izveidotu testa izpildes pārskatus XML formātā.

Veiciet tālāk norādītās darbības, lai ģenerētu pārskatus XML formātā.

Jasmine Reporter instalēšana

To var izdarīt divējādi, lokāli vai globāli

  1. Atveriet komandu uzvedni, lai instalētu lokāli, izpildiet šo komandu
npm install --save-dev jasmine-reporters@^2.0.0 

Virs komandas tiks instalēti jasmīna ziņojumi, mezglu moduļi lokāli nozīmē no direktorijas, kurā komandu uzvednē izpildām komandu.

  1. Atvērt komandu uzvedni izpildiet šādu komandu globālai instalēšanai
npm install -g jasmine-reporters@^2.0.0

Šajā apmācībā jasmīna reportierus instalēsim lokāli .

1. solis) Izpildiet komandu.

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

no komandu uzvednes, piemēram, zemāk.

2. solis) Pārbaudiet direktorijā esošās instalācijas mapes . "Mezglu_moduļiem" vajadzētu būt pieejamiem, ja tie ir veiksmīgi instalēti kā zemāk esošajā momentuzņēmumā.

3. solis. Pievienojiet šādu krāsainu kodu esošam failam 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));}};

Koda skaidrojums:

Kodā mēs ģenerējam pārskatu " JUnitXmlReporter " un norādām ceļu, kur ziņojumu glabāt.

4. solis) Atveriet komandu uzvedni un izpildiet komandu protraktoru conf.js.

5. solis. Izpildot iepriekš minēto kodu, junitresults.xml tiks ģenerēts minētajā ceļā.

6. solis) Atveriet XML un pārbaudiet rezultātu. Kļūdas ziņojums tiek parādīts rezultātu failā, jo mūsu testa gadījums nav izdevies. Pārbaudes gadījums neizdevās, jo sagaidāmais rezultāts no “spec.js” nav saskaņots ar faktisko tīmekļa lapas rezultātu

7. solis. Pierādījumiem vai rezultātu failiem izmantojiet failu junitresult.xml.

Kopsavilkums:

Lai gan selēns var paveikt dažas lietas, ko veic transportieris, transportieris ir rūpnieciskais standarts un paraugprakse, lai pārbaudītu AngularJS lietojumprogrammas. Arī transportieris var pārvaldīt tajā vairākas iespējas un apstrādāt tīmekļa elementu dinamiskās izmaiņas, izmantojot ng modeli, ng klikšķi… utt. (Ko selēns nevar izdarīt).

Šo rakstu ir veidojis Ranjith Kumar Enishetti