Vad är Protractor?
Protractor
enligt den allra första och grundläggande webbapparkitekturen är en server på grund av konstant innehållsuppladdning och enormt datautbyte vanligare för statiska webbplatser än faktiska webbappar som består av webbsidans konstruktionslogik och affärslogik interagerar med en klient genom att skicka ut en komplett HTML-sida. För att se en uppdatering måste användaren ladda om sidan helt eller med andra ord att klienten skickar en begäran om en HTML-sida till servern och laddar hela koden igen. Titta på den här typen av webbapplikationsarkitekturdiagram.
numera byter många företag från traditionell klient-serverarkitektur till Modern, där efter den första sidan laddas, sker all interaktion med servern genom AJAX-samtal. Dessa AJAX-samtal Returnerar data-inte markup-vanligtvis i JSON-format. Appen använder JSON-data för att uppdatera sidan dynamiskt utan att ladda om sidan.
i denna typ ersätts webbsidans konstruktionslogik med webbtjänster och varje sida på klienten har separata enheter som kallas widgets. Genom att skicka Ajax-frågor till webbtjänster kan widgets ta emot bitar av data i HTML eller JSON och visa dem utan att ladda om hela sidan. Med widgetuppdateringar i realtid är denna typ mer dynamisk, mobilvänlig och nästan lika populär som nästa typ.
vinkel är en av ramarna som gör det möjligt att skapa sådana applikationer. Angular kommer med sin egen uppsättning funktioner så traditionell lokaliseringsstrategi för automatiseringstestning kommer att vara tidskrävande.
Vad är gradskiva?
Protractor är en end-to-end testing ram för AngularJS applikationer och fungerar som en lösning integrator som kombinerar kraftfulla verktyg och tekniker som NodeJS, Selenium WebDriver, Jasmine, gurka och mocka. Det utvecklades ursprungligen av Google-utvecklare för att stödja angular-applikationer och senare släpps det som ett ramverk med öppen källkod. Nu stöder protractor både vinklade och icke-vinklade applikationer. Gradskivan är omslag skrivet ovanpå Webdriver.js, alla funktioner som stöds i Selenium Webdriver stöds av det, förutom vinkelspecifika funktioner.
WebDriverJs är den officiella javascript-implementeringen av selen. Den använder Selenium JSON-Wire-protokollet för att interagera med webbläsaren som selenium java gör. Gradskiva beror på WebdriverJs att interagera med webbläsaren.
varför Vinkel Js webbelement är svåra att identifiera?
Angular JS-applikationer har några extra HTML-attribut som ng-repeater, ng-controller, ng-model.., osv. som inte ingår i Selenium locators. Selen kan inte identifiera dessa webbelement med Selenkod. Så, gradskiva på toppen av selen kan hantera och kontrollerar dessa attribut i webbapplikationer.
Protractor funktioner
stöder Vinkelspecifika lokaliserare: Vinkelapplikationen levereras med vinkelspecifika lokalisatorer som ng-modell, ng-bind, ng-repeat, etc. så protractor har utökat stöd för dessa lokaliserare. Du behöver inte skapa komplexa XPath för vinkelsökare, i gradskiva är dessa sökare redo för dig så att du bara kan använda av.modell, av.repeater, etc.
stöder både icke-vinklade och vinklade applikationer: Protractor har utökat stöd för vinklade, men det stöder också för icke-vinklade applikationer. Det betyder att om din del av applikationen är icke-vinkel och en del av den är vinkel kan du fortfarande välja protractor framework och du kan göra full end-to-end automation testautomatisering.
stöder testning av webbläsare: Vi kan köra våra skript i flera webbläsare som Chrome, Firefox, Safari, IE11, Edge. Att konfigurera för testning av webbläsare är enkelt och förbrukar inte mycket tid. Vi kommer att täcka detta ämne i detalj i våra kommande handledning.
stöder parallellkörning: Tänk på att vi har ett stort antal testfall, om alla testfall måste köras sekventiellt i.e efter varandra förbrukar det mycket tid. Parallellt utförande hjälper i detta fall. Parallell körning kör testfall i flera instanser av webbläsaren till exempel om du har 4 testfall, i en körning i två instanser av webbläsaren Kör varje två-två testfall vid en enda tidpunkt, så på kortare tid kommer fler testfall att utföras.
stöder huvudlös Webbläsare: en huvudlös webbläsare är en utan användargränssnittet. Protractor stöder också Den huvudlösa webbläsaren.
stöder töjbarhet: eftersom gradskiva är en nod.js ansökan, kan utnyttja det stora utbudet av paket som finns i noden. Så man kan utöka sin ram eller lägga till ytterligare funktioner genom att installera nodpaket. Om du till exempel behöver HTML-rapport kan du bara använda Jasmine HTML Reporter, för den rena koden kan du installera eslint eller tslint . På samma sätt kan du installera nodpaket efter eget val.
stöder rapporterings plugins: jämfört med icke-nod.JS-baserade open source automation framework det är enkelt att konfigurera rapporten i gradskiva. Jasmine HTML Reporter är en av rapportgenerationsramarna. Som producerar HTML-rapporter för dina specifikationer. Nedan är exempelrapporten
stöder Molntestplattformar: molnbaserade testplattformar tillåter oss att köra våra specifikationer på flera webbläsare(Chrome, Firefox, Safari, etc.), flera plattformar (Windows, Mac, Linux, mobil, etc.). Protractor stöds av stora molntestplattformar som SauceLabs och CrossBrowserTesting.com.
stöder flera Assertion bibliotek: gradskiva stöder flera assertion bibliotek som Jasmine, mocka eller du kan även använda dina egna bibliotek. Som standard använder gradskiva Jasmine framework för påståenden.
stöder kontrollflöde: API bygger på löften, som hanteras av ett kontrollflöde och anpassas för Jasmine. Protractor API: er är helt asynkrona. Alla funktioner returnerar löften. Den upprätthåller en kö av väntande löften, kallad kontrollflödet, för att hålla utförandet organiserat. (Vi kommer att täcka mer om löften i kommande handledningsavsnitt).
stöder olika IDEs & redaktörer: det finns massor av IDEs där ute på marknaden du kan välja mellan. Mest populära redaktörer är Visual Studio Code, WebStorm, Visual Studio Professional, Atom och sublime. (Vi kommer att täcka i detalj om våra kommande handledning)
stöder CI/CD: När automatiseringsskript är på plats behöver vi inte köra manuellt och övervaka. Varje gång ny kod går till förvaret protractor tester ska köras automatiskt och få dig rapporten. Det betyder att vi måste automatisera processen, vi kan uppnå detta genom att integrera protractor-testet för att bygga verktyg som Jenkins, TFS eller Azure DevOps. Gradskiva stöder bygga verktyg integration. (Vi kommer att täcka steg för steg konfigurationsinformation i våra kommande handledning).
hur fungerar Protractor?
Protractor är en end-to-end Testing framework, Protractor är byggd ovanpå WebdriverJS, WebdriverJS är selen webdriver API javascript bindningar. Det innebär WebdriverJS API tillhandahåller API för tester som är skrivna i javascript. Gradskivan är ett Selenbaserat testramverk vilket innebär att gradskivan interagerar med selenium server och WebDrivers som ChromeDriver, GeckoDriver, SafariDriver, etc. för att simulera användarens åtgärder.
När dina testskript skickar kommandon till Selenium server som i sin tur kommunicerar med webbläsarens drivrutin och kör kommandona (utför åtgärder). Nästa är assertion framework, Protractor stöder olika påståenden ramar som Jasmin,Mocka, etc. Denna assertion ram hjälper oss att validera eller verifiera värdena, i sin tur, kommer ditt test markeras som passera eller misslyckas. Kort sagt Protractor, WebdriverJS, Selenium Server, Browser Driver och Assertion Framework ger infrastrukturen för att skriva och utföra våra end-to-end-tester.
Leave a Reply