Articles

ce este protractorul?

Protractor

conform primei arhitecturi de aplicații web de bază, un server datorită reîncărcării constante a conținutului și schimbului imens de date, este mai frecvent pentru site-urile statice decât aplicațiile web reale constând din logica construcției paginilor web și logica de afaceri interacționează cu un client prin trimiterea unei pagini HTML complete. Pentru a vedea o actualizare, utilizatorul trebuie să reîncarce complet pagina sau, cu alte cuvinte, să trimită clientului o solicitare pentru o pagină HTML către server și să încarce din nou întregul său cod. Uită-te la diagrama arhitecturii aplicațiilor web de acest tip.

Legacy CSA

În zilele noastre, multe companii trec de la arhitectura tradițională Client-Server la cea modernă, unde după prima pagină se încarcă, toată interacțiunea cu serverul se întâmplă prin apeluri AJAX. Aceste apeluri AJAX returnează date-nu marcare-de obicei în format JSON. Aplicația utilizează datele JSON pentru a actualiza pagina dinamic, fără a reîncărca pagina.

în acest tip, logica de construcție a paginilor web este înlocuită de servicii web și fiecare pagină a clientului are entități separate numite widget-uri. Prin trimiterea interogărilor AJAX către serviciile web, widget-urile pot primi bucăți de date în HTML sau JSON și le pot afișa fără a reîncărca întreaga pagină. Cu actualizări widget în timp real, acest tip este mai dinamic, mobil-friendly și aproape la fel de popular ca tipul următor.

Latest CSA

Angular este unul dintre cadrele care permite crearea unor astfel de aplicații. Angular vine cu propriul set de caracteristici, astfel încât strategia tradițională locater pentru testarea automatizării va fi consumatoare de timp.

ce este protractorul?

Protractor este un cadru de testare end-to-end pentru aplicații AngularJS și funcționează ca un integrator de soluții care combină instrumente și tehnologii puternice, cum ar fi NodeJS, Selenium WebDriver, Jasmine, castravete și Mocha. Acesta a fost inițial dezvoltat de dezvoltatorii Google pentru a sprijini aplicațiile angular și mai târziu este lansat ca un cadru open source. Acum protractor suportă atât aplicații unghiulare și non-unghiulare. Raportorul este wrapper scris pe partea de sus a Webdriver.js, toate caracteristicile care sunt acceptate în Selenium Webdriver sunt acceptate de acesta, în plus față de caracteristicile specifice unghiulare.

WebDriverJs este implementarea javascript oficială a selenium. Utilizează protocolul Selenium JSON-Wire pentru a interacționa cu browserul așa cum face selenium java. Protractor depinde de WebdriverJs pentru a interacționa cu browser-ul.

de ce elementele Web JS unghiulare sunt greu de identificat?

Aplicații Angular JS au unele atribute HTML suplimentare, cum ar fi ng-repetor, ng-controler, ng-model.., etc. care nu sunt incluse în localizatoarele de seleniu. Seleniul nu este capabil să identifice acele elemente web folosind codul Selenium. Deci, Raportorul din partea de sus a seleniului poate gestiona și controla aceste atribute în aplicațiile Web.

ce este protractorul?

Protractor caracteristici

suportă localizatoare unghiulare specifice: Aplicația unghiulară vine cu localizatoare specifice unghiulare, cum ar fi ng-model, ng-bind, ng-repeat etc. deci protractor a extins suportul pentru aceste localizatoare. Nu trebuie să creați XPath complex pentru localizatoare unghiulare, în raportor aceste localizatoare sunt gata pentru tine, astfel încât să puteți folosi doar de.model, de.repetor etc.

suportă atât aplicații Non-unghiulare, cât și unghiulare: Protractor are suport extins pentru angular, dar acceptă și aplicații non-unghiulare. Asta înseamnă că, dacă partea dvs. din aplicație este non-unghiulară și o parte din ea este unghiulară, puteți alege în continuare cadrul protractor și puteți face automatizarea completă a testelor de automatizare end-to-end.

suportă testarea Cross-Browser: putem rula scripturile noastre în mai multe browsere, cum ar fi Chrome, Firefox, Safari, IE11, Edge. Configurarea pentru testarea cross-browser-ul este ușor și nu consumă mult timp. Vom acoperi acest subiect în detaliu în tutorialele noastre viitoare.

sprijină paralel-execuție: luați în considerare avem un număr foarte mare de cazuri de testare, în cazul în care toate caz de testare trebuie să ruleze secvențial i.e unul după altul consumă mult timp. Execuția paralelă ajută în acest caz. Executarea paralelă execută cazuri de testare în mai multe instanțe ale browserului, de exemplu, dacă aveți 4 cazuri de testare, într-o execuție în două instanțe ale browserului, fiecare execută două-două cazuri de testare într-un singur punct de timp, astfel încât în mai puțin timp, vor fi executate mai multe cazuri de testare.

acceptă browserul fără cap: un browser fără cap este un fără interfața cu utilizatorul. Protractor sprijină, de asemenea browser-ul fără cap.

suportă extensibilitate: deoarece protractor este un nod.aplicație js, poate utiliza o mare varietate de pachete care sunt disponibile în nodul. Deci, se poate extinde cadrul său sau se pot adăuga caracteristici suplimentare prin instalarea pachetelor de noduri. De exemplu, dacă aveți nevoie de raport HTML, puteți utiliza Jasmine HTML Reporter, pentru codul curat puteți instala eslint sau tslint . De asemenea, puteți instala pachete de noduri la alegere.

suporta plugin-uri de raportare: în comparație cu non-nod.JS bazat open source automation framework este ușor de configurat raportul în raportor. Jasmine HTML Reporter este unul dintre cadrele de generare a rapoartelor. Care produce rapoarte HTML pentru specificatiile tale. Mai jos este raportul exemplu

sprijină platformele de testare Cloud: platformele de testare bazate pe Cloud ne permit să rulăm specificațiile noastre pe mai multe browsere(Chrome, Firefox, Safari etc.), mai multe platforme (Windows, Mac, Linux, mobil etc.). Protractor este susținut de platforme majore de testare cloud, cum ar fi SauceLabs și CrossBrowserTesting.com.

acceptă mai multe biblioteci de afirmații: Protractor acceptă mai multe biblioteci de afirmații precum Jasmine, Mocha sau puteți utiliza chiar bibliotecile personalizate. În mod implicit, protractor utilizează cadru Jasmine pentru afirmații.

suportă fluxul de Control: API se bazează pe promisiuni, care sunt gestionate de un flux de control și adaptate pentru Jasmine. API-urile Protractor sunt în întregime asincrone. Toate funcțiile returnează promisiunile. Menține o coadă de promisiuni în așteptare, numită fluxul de control, pentru a menține execuția organizată. (Vom acoperi mai multe despre promisiuni în secțiunile tutorial viitoare).

suportă diverse IDE& editori: există tone de IDE acolo în piață puteți alege de la. Cei mai populari editori sunt Visual Studio Code, WebStorm, Visual Studio Professional, Atom și sublime. (Vom acoperi în detaliu pe tutoriale noastre viitoare)

sprijină CI/CD: odată ce script-uri de automatizare sunt în loc nu avem nevoie pentru a executa manual și să monitorizeze. De fiecare dată când codul nou merge la depozit, testele protractor ar trebui să ruleze automat și să vă aducă raportul. Asta înseamnă că trebuie să automatizăm procesul, putem realiza acest lucru prin integrarea testului protractor pentru a construi instrumente precum Jenkins, TFS sau Azure DevOps. Protractor sprijină integrarea instrument construi. (Vom acoperi detaliile de configurare pas cu pas în tutorialele noastre viitoare).

cum funcționează protractorul?

framework

Protractor este un cadru de testare end-to-end, Protractor este construit pe partea de sus a WebdriverJS, WebdriverJS este seleniu webdriver API javascript legături. Asta înseamnă că WEBDRIVERJS API oferă API-uri pentru teste care sunt scrise în javascript. Protractorul este un cadru de testare bazat pe seleniu, ceea ce înseamnă că protractorul interacționează cu serverul selenium și WebDrivers, cum ar fi ChromeDriver, GeckoDriver, SafariDriver etc. pentru a simula acțiunile utilizatorului.

când scripturile de testare trimite comenzi la serverul Selenium care, la rândul său, comunică cu driverul de browser și execută comenzile (efectua acțiuni). Următorul este cadrul de afirmare, Protractor acceptă diverse cadre de afirmații, cum ar fi Jasmine, Mocha etc. Acest cadru de afirmare ne ajută să validăm sau să verificăm valorile, la rândul său, testul dvs. va fi marcat ca pass sau fail. Pe scurt Protractor, WebdriverJS, Selenium Server, Browser Driver și Assertion Framework oferă infrastructura pentru scrierea și executarea testelor noastre end-to-end.