most popular test automation frameworks with pros
I de senaste Selen-självstudierna diskuterade vi olika vanligt och populärt kommandon i WebDriver , hantering av webbelement som webbtabeller, ramar och hantering av undantag i Selen-skript.
Vi diskuterade var och en av dessa kommandon med exempelkodavsnitt och exempel så att du kan använda dessa kommandon effektivt när du stöter på liknande situationer. Bland de kommandon som vi diskuterade i föregående handledning är få av dem mycket viktiga.
När vi går vidare i Selen-serien, skulle vi koncentrera vårt fokus mot Skapande av Automation Framework i de närmaste kommande handledningarna. Vi skulle också belysa olika aspekter av ett automatiseringsramverk, typer av automatiseringsramar, fördelarna med att använda ett ramverk och de grundläggande komponenterna som utgör ett automatiseringsramverk.
Vad du kommer att lära dig:
- Vad är ramverk?
- Testa automatiseringsramen
- Typer av testautomatiseringsramverk
- # 1) Modulbaserat testramverk
- # 2) Framework för testning av biblioteksarkitektur
- # 3) Datadriven testramverk
- # 4) Nyckelordsstyrd testramverk
- # 5) Hybrid Testing Framework
- # 6) Beteendedriven utvecklingsram
- Slutsats
- Rekommenderad läsning
Vad är ramverk?
Ett ramverk anses vara en kombination av fastställda protokoll, regler, standarder och riktlinjer som kan införlivas eller följas som en helhet för att dra nytta av fördelarna med byggnadsställning som tillhandahålls av ramverket.
Låt oss överväga ett verkligt scenario.
Vi använder ofta hissar eller hissar. Det finns några riktlinjer som nämns i hissen som ska följas och tas om hand för att utnyttja maximal nytta och långvarig service från systemet.
Således kan användarna ha märkt följande riktlinjer:
- Kontrollera hissens maximala kapacitet och gå inte upp i en hiss om den maximala kapaciteten har uppnåtts.
- Tryck på larmknappen vid nödsituationer eller problem.
- Låt passageraren gå av eventuella hissar innan han går in i hissen och stå utanför dörrarna.
- I händelse av brand i byggnaden eller om det finns en olycklig situation, undvik att använda hissen.
- Spela eller hoppa inte in i hissen.
- Rök inte inuti hissen.
- Ring för hjälp / hjälp om dörren inte öppnas eller om hissen inte fungerar alls. Försök inte öppna dörrarna med kraft.
Det kan finnas många fler regler eller uppsättningar riktlinjer. Således gör dessa riktlinjer, om de följs, systemet mer fördelaktigt, tillgängligt, skalbart och mindre oroligt för användarna.
Nu när vi pratar om 'Test Automation Frameworks', låt oss flytta vårt fokus mot dem.
Testa automatiseringsramen
En ”Test Automation Framework” är byggnadsställning som läggs för att ge en exekveringsmiljö för automatiseringstestskripten. Ramverket ger användaren olika fördelar som hjälper dem att utveckla, utföra och rapportera automatiseringstestskript effektivt. Det är mer som ett system som skapats specifikt för att automatisera våra tester.
På ett mycket enkelt språk kan vi säga att ett ramverk är en konstruktiv blandning av olika riktlinjer, kodningsstandarder, koncept, processer, metoder, projekthierarkier, modularitet, rapporteringsmekanism, injektioner av testdata etc. för pelarautomatiseringstestning. Således kan användaren följa dessa riktlinjer samtidigt som applikationen automatiseras för att dra fördelar av olika produktiva resultat.
Fördelarna kan finnas i olika former, till exempel enkel skriptning, skalbarhet, modularitet, förståelse, processdefinition, återanvändbarhet, kostnad, underhåll etc. För att kunna dra nytta av dessa fördelar rekommenderas utvecklare att använda en eller flera av Test Automation Framework.
Dessutom uppstår behovet av ett enda och standardiserat testautomatiseringsramverk när du har en massa utvecklare som arbetar på de olika modulerna i samma applikation och när vi vill undvika situationer där var och en av utvecklarna implementerar sitt synsätt på automatisering.
Notera : Observera att ett testramverk alltid är applikationsoberoende, det vill säga det kan användas med alla applikationer oavsett komplikationerna (som Technology stack, arkitektur etc.) för applikationen som testas. Ramverket bör vara skalbart och underhållbart.
Fördel med testautomatiseringsramen
- Återanvändbarhet av kod
- Maximal täckning
- Återställningsscenario
- Lågkostnadsunderhåll
- Minimalt manuellt ingripande
- Enkel rapportering
Typer av testautomatiseringsramverk
Nu när vi har en grundläggande uppfattning om vad som är ett automatiseringsramverk, i det här avsnittet skulle vi förbjuda dig med de olika typerna av testautomatiseringsramar som finns tillgängliga på marknaden. Vi skulle också försöka kasta ljus över deras fördelar och nackdelar och användbarhetsrekommendationer.
Det finns ett avvikande utbud av automatiseringsramar tillgängliga idag. Dessa ramar kan skilja sig från varandra baserat på deras stöd till olika nyckelfaktorer för att göra automatisering som återanvändbarhet, enkelt underhåll etc.
mest populära verktyg för stor dataanalys
Låt oss diskutera några få mest populära testautomatiseringsramar:
- Modulbaserat testramverk
- Framework för testning av biblioteksarkitektur
- Datadriven testramverk
- Keyword Driven Testing Framework
- Hybrid Testing Framework
- Beteendedriven utvecklingsram
(klicka på bilden för att se förstorad)
Låt oss diskutera var och en av dem i detalj.
Men innan det vill jag också nämna att trots att han har detta ramverk är användaren alltid hävstång för att bygga och designa sitt eget ramverk som passar bäst för hans / hennes projektbehov.
# 1) Modulbaserat testramverk
Modulbaserat testramverk är baserat på ett av det populärt kända OOP-konceptet - Abstraktion. Ramverket delar upp hela ”Application Under Test” i ett antal logiska och isolerade moduler. För varje modul skapar vi ett separat och oberoende testskript. Således, när dessa testskript tog tillsammans bygger ett större testskript som representerar mer än en modul.
Dessa moduler är åtskilda av ett abstraktionsskikt på ett sådant sätt att ändringarna som gjorts i applikationsavsnitten inte ger någon effekt på den här modulen.
Fördelar:
- Ramverket introducerar den höga nivån av modulering som leder till enklare och kostnadseffektivt underhåll.
- Ramverket är ganska skalbart
- Om ändringarna implementeras i en del av applikationen behöver bara testskriptet som representerar den delen av applikationen fixas för att lämna alla andra delar orörda.
Nackdelar:
- När vi implementerar testskript för varje modul separat, bäddar vi in testdata (data som vi ska testa med) i testskripten. Således, när vi ska testa med en annan uppsättning testdata, kräver det att manipulationerna görs i testmanusen.
# 2) Framework för testning av biblioteksarkitektur
Library Architecture Testing Framework är grundläggande och grundläggande byggt på modulbaserad testramverk med några ytterligare fördelar. Istället för att dela upp applikationen som testas i testskript, separerar vi applikationen i funktioner eller snarare vanliga funktioner kan också användas av de andra delarna av applikationen. Således skapar vi ett gemensamt bibliotek som består av vanliga funktioner för applikationen som testas. Därför kan dessa bibliotek anropas från testskripten när det behövs.
Den grundläggande grunden för ramverket är att bestämma de vanliga stegen och gruppera dem i funktioner under ett bibliotek och anropa dessa funktioner i testmanusen när så krävs.
Exempel : Inloggningsstegen kan kombineras till en funktion och förvaras i ett bibliotek. Således kan alla testskript som krävs för att logga in applikationen ringa den funktionen istället för att skriva koden igen.
Fördelar:
- Liksom modulbaserat ramverk introducerar detta ramverk också den höga nivån av modulering vilket leder till enklare och kostnadseffektivare underhåll och skalbarhet.
- När vi skapar vanliga funktioner som effektivt kan användas av de olika testskripten över ramverket. Således inför ramverket en stor grad av återanvändbarhet.
Nackdelar:
- Precis som modulbaserat ramverk läggs testdata in i testskripten, vilket innebär att varje ändring av testdata också kräver ändringar i testskriptet.
- Med introduktionen av bibliotek blir ramverket lite komplicerat.
# 3) Datadriven testramverk
När du automatiserar eller testar alla applikationer kan det ibland krävas att testa samma funktion flera gånger med olika uppsättning ingångsdata. I sådana fall kan vi alltså inte låta testdata bäddas in i testskriptet. Därför rekommenderas det att behålla testdata i någon extern databas utanför testskripten.
Data Driven Testing Framework hjälper användaren att separera testskriptlogiken och testdata från varandra. Det låter användaren lagra testdata i en extern databas. De externa databaserna kan vara egendomsfiler, xml-filer, excel-filer, textfiler, CSV-filer, ODBC-arkiv etc. Data lagras konventionellt i 'Key-Value' -par. Således kan nyckeln användas för att komma åt och fylla i data i testskripten.
Notera : Testdata lagrade i en extern fil kan tillhöra matrisen för förväntat värde såväl som matrisen för inmatningsvärden.
intervjufrågor och svar om kvalitetssäkringsanalytiker
Exempel:
Låt oss förstå mekanismen ovan med hjälp av ett exempel.
Låt oss överväga funktionen 'Gmail - inloggning'.
Steg 1: Det första och främsta steget är att skapa en extern fil som lagrar testdata (Input data and Expected Data). Låt oss överväga ett excelblad till exempel.
Steg 2: Nästa steg är att fylla i testdata i Automation test Script. För detta ändamål kan flera API: er användas för att läsa testdata.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
Ovanstående metod hjälper till att läsa testdata och teststeget nedan hjälper användaren att skriva in testdata på GUI.
element.sendKeys (obj_value.get (obj_index));
Fördelar:
- Det viktigaste inslaget i detta ramverk är att det avsevärt minskar det totala antalet skript som krävs för att täcka alla möjliga kombinationer av testscenarier. Således krävs mindre mängd kod för att testa en komplett uppsättning scenarier.
- Varje förändring i testdatamatrisen skulle inte hindra testskriptkoden.
- Ökar flexibiliteten och underhållsförmågan
- Ett enda testscenario kan köras för att ändra testdatavärdena.
Nackdelar:
- Processen är komplex och kräver en extra ansträngning för att komma med testdatakällorna och läsmekanismerna.
- Kräver skicklighet i ett programmeringsspråk som används för att utveckla testskript.
# 4) Nyckelordsstyrd testramverk
Det nyckelordsdrivna testramverket är ett tillägg till datadrivet testramverk på så sätt att det inte bara separerar testdata från skriptet, utan det håller också viss uppsättning kod som hör till testskriptet i en extern datafil.
Dessa koduppsättningar kallas nyckelord och därför kallas ramverket så. Nyckelord är självstyrande om vilka åtgärder som måste utföras på applikationen.
Nyckelorden och testdata lagras i en tabellliknande struktur och därför betraktas den också populärt som Table driven Framework. Lägg märke till att nyckelord och testdata är enheter oberoende av det automatiseringsverktyg som används.
ExempelTestfall av Keyword Driven Test Framework
I exemplet ovan definieras nyckelord som inloggning, klicka och verifiera länk i koden.
Beroende på typ av applikation kan nyckelord härledas. Och alla nyckelord kan återanvändas flera gånger i ett enda testfall. Locator-kolumnen innehåller locator-värdet som används för att identifiera webbelementen på skärmen eller testdata som behöver tillhandahållas.
Alla nödvändiga nyckelord är utformade och placerade i ramens baskod.
Fördelar:
- Förutom fördelarna med datadriven testning kräver det nyckelordsdrivna ramverket inte att användaren har skriptekunskap, till skillnad från datadriven testning.
- Ett enda nyckelord kan användas i flera testskript.
Nackdelar:
- Användaren bör känna till nyckelordskapningsmekanismen för att effektivt kunna utnyttja fördelarna med ramverket.
- Ramverket kompliceras gradvis när det växer och ett antal nya nyckelord introduceras.
# 5) Hybrid Testing Framework
Som namnet antyder är Hybrid Testing Framework en kombination av mer än ett ovan nämnda ramverk. Det bästa med en sådan installation är att den utnyttjar fördelarna med alla slags associerade ramar.
Exempelav Hybrid Framework
Testarket skulle innehålla både nyckelorden och data.
I exemplet ovan innehåller nyckelordskolumnen alla nödvändiga nyckelord som används i det specifika testfallet och datakolumnen driver all data som krävs i testscenariot. Om något steg inte behöver någon inmatning kan det lämnas tomt.
# 6) Beteendedriven utvecklingsram
Beteendedriven utvecklingsram möjliggör automatisering av funktionella valideringar i lättläst och förståeligt format för affärsanalytiker, utvecklare, testare etc. Sådana ramar kräver inte nödvändigtvis att användaren känner till programmeringsspråket. Det finns olika verktyg tillgängliga för BDD som gurka, Jbehave etc. Detaljer om BDD-ramverk diskuteras senare i Cucumber tutorial. Vi har också diskuterat detaljer om ättikspråk för att skriva testfall i gurka.
Komponenter i Automation Testing Framework
Även om ovanstående bildrepresentation av ett ramverk är självförklarande skulle vi ändå lyfta fram några punkter.
- Objektförvar : Objektförvarets akronym som OR utgörs av uppsättningen lokaliseringstyper associerade med webbelement.
- Testdata: Ingångsdata som scenariot skulle testas med och det kan vara de förväntade värden som de faktiska resultaten skulle jämföras med.
- Konfigurationsfil / konstanter / miljöinställningar : Filen lagrar informationen angående applikations-URL, webbläsarspecifik information etc. Det är i allmänhet informationen som förblir statisk genom hela ramverket.
- Generics / Programlogics / Readers : Det här är klasserna som lagrar de funktioner som ofta kan användas över hela ramverket.
- Skapa verktyg och kontinuerlig integration : Dessa är de verktyg som hjälper ramverkets kapacitet att generera testrapporter, e-postmeddelanden och loggningsinformation.
Slutsats
Ramarna som illustreras ovan är de mest populära ramarna som används av testande broderskap. Det finns olika andra ramar också på platsen. För alla ytterligare självstudier baserar vi oss på Datadriven testramverk .
I denna handledning diskuterade vi grunderna i ett automatiseringsramverk. Vi diskuterade också vilka typer av ramar som finns på marknaden.
Nästa handledning # 21 : I nästa handledning skulle vi kort introducera dig till exempelramverket, MS Excel som lagrar testdata, excelmanipuleringar etc.
Fram till dess är du välkommen att fråga dina frågor om automatiseringsramar.
Rekommenderad läsning
- 7 faktorer som påverkar testuppskattning av Selen Automation Project - Selen Tutorial # 32
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- Effektiv skriptning av selen och felsökning av scenarier - Selen-handledning # 27
- Felsökning av selenskript med loggar (Log4j-handledning) - Selen-handledning # 26
- 30+ bästa selen-självstudier: Lär dig selen med riktiga exempel
- Fördjupade förklaringar om förmörkelser för nybörjare
- Hur man hittar element i Chrome- och IE-webbläsare för att bygga selen-skript - Selen-handledning # 7
- Gurka Selen Tutorial: Gurka Java Selen WebDriver Integration