selenium framework creation
I den siste opplæringen gjorde vi deg kjent med grunnleggende om automatiseringsrammer for test , dets komponenter og typer. Rammene illustrert i forrige opplæring var noen av de mest populære rammene som ble brukt av testbrorskapet.
Vi diskuterte kort modulbaserte rammeverk, bibliotekarkitekturbasert rammeverk, nøkkelorddrevet rammeverk, datadrevet rammeverk og hybrid rammeverk. Det er forskjellige andre rammer også på stedet.
Vær oppmerksom på at vi ville adoptere Data Driven Test Automation Framework for resten av opplæringsprogrammene våre.
I den nåværende opplæring i denne serien , vil vi gjøre deg kjent med en eksempelrammeverk, Excels som lagrer testdataene og deres Excel-manipulasjoner . På samme linje vil vi gå videre og innføre nye strategier og ressurser for å modne rammeverket vårt.
Så la oss lære:
- Rammeverkstrategi ved hjelp av et eksempelprosjekt
- Få tilgang til testdataene som er lagret i den eksterne datakilden
Fremover begynte vi med beskrivelsen av prosjekthierarkiet vi skulle lage for å adskille de forskjellige prosjektkomponentene.
Se bildet nedenfor for prosjekthierarkiet som er opprettet for eksempelprosjektet. Java-prosjektet nedenfor kan enkelt opprettes i formørkelsen slik vi har laget prosjektene i de tidligere opplæringene.
Hva du vil lære:
Selenium Project Folder Structure - Walkthrough
# 1) src - Mappen inneholder alle testskriptene, generikk, lesere og verktøy. Alle disse ressursene er bare de enkle Java-klassene. Under kildemappen (src) har vi opprettet et hierarki av mapper.
en prøve - 'Test' -mappen består av hovedsakelig to ingredienser - testpakke og mappene som representerer de forskjellige modulene i applikasjonen som testes. Dermed inneholder hver av disse mappene testskriptene som er spesifikke for modulen den er tilknyttet. Testsuite er en logisk kombinasjon av mer enn ett testskript. Dermed kan brukeren merke en oppføring av hvilket som helst av testskriptene i testpakken som han / hun ønsker å utføre i de påfølgende løpene.
applikasjoner av java i den virkelige verden
b) verktøy - 'Utilities' -mappen består av forskjellige generiske, konstanter, lesere og klasser for implementering av brukerdefinerte unntak. Hver av mappene under verktøy har sin egen betydning.
- Excel Reader - En generisk og vanlig klasse er opprettet for å lese testdataene (inputparametere og forventede resultater) fra Excel-arkene
- MiljøKonstanter - Mappen er integrering av java-klassene som lagrer de statiske variablene som refererer til banene og andre miljøopplysninger. Disse detaljene kan være applikasjons-URL, URL til databasene, legitimasjon for databaser og URL til ethvert tredjepartsverktøy som brukes. De forskjellige applikasjons-URL-ene kan settes for forskjellige miljøer (dev, prod, test, master, slave etc).
- Datasettere - Mappen inneholder klassene som implementerer getters og setterne av testdataene hentet fra Excels. For å laste inn flere sett med testdata, oppretter vi ArrayLists.
- Brukerroller - Mappen har plass til klassene som ivaretar de rollebaserte tilgangskriteriene, hvis noen for instinktbrukere.
- Funksjonsbibliotek - Mappen består av klassene som inneholder funksjoner og metoder som kan deles og brukes mellom flere klasser. Svært ofte skal vi utføre visse prosedyrer før og etterpå den faktiske testutførelsen, som pålogging til applikasjonen, oppsett av miljøer, aktiviteter relatert til ruller, datamanipulering, skriveresultater, metoder som genererer pre / post-betingelser til andre metoder . Siden vi pleier å utføre disse aktivitetene for hele eller det meste av testmanus. Derfor anbefales det alltid å lage en egen klasse for slike aktiviteter i stedet for å kode dem gjentatte ganger i hvert av testskriptene.
- PreConditionalMethods
- PostConditionalMethods
Svært ofte skal vi utføre visse prosedyrer før og etterpå den faktiske testutførelsen, som pålogging til applikasjonen, oppsett av miljøer, aktiviteter relatert til brukerroller, datamanipulering, skriveresultater, metoder som genererer pre / post-forhold til andre metoder. Siden vi pleier å utføre disse aktivitetene for hele eller det meste av testskriptet, anbefales det derfor alltid å opprette en egen klasse for slike aktiviteter i stedet for å kode dem gjentatte ganger i hvert av testskriptene.
Vanlige metoder
I likhet med før og etter forhold kan det være metoder og funksjoner som kan brukes av mer enn ett testskript. Dermed grupperes disse metodene i en klasse. Testskriptet har tilgang til disse metodene ved hjelp av objektet til den vanlige klassen.
# 2) Excel-filer - Excel-filene anses å være datakilden / dataleverandørene for gjennomføring av testskript. Disse filene lagrer testdataene i nøkkelverdipar. Legg merke til at vi lager et eget excel-ark for hvert av testskriptet, dvs. hvert testskript har sin egen testdatafil. Navnet på testskriptet og de tilhørende testdatafilene / excel-arket har blitt holdt det samme for sporbarhetsperspektivet. Ta en titt på testdataformatet nedenfor:
Testdataformat
Hver av kolonnene representerer en nøkkel, og hver av radene representerer en testdata / verdi. Spesifiser flere rader for å utføre det samme testskriptet med flere datasett.
Merk at testdataformatene bare er brukerdefinerte. Dermed, basert på dine krav, kan du tilpasse testdatafilene.
# 3) Bibliotek - Mappen fungerer som et lager / gjenstand for alle nødvendige jar-filer, biblioteker, drivere osv. For å lykkes med å bygge testmiljøet og utføre testskriptene. Se figuren nedenfor for å sjekke bibliotekene vi vil være ansatt i prosjektet vårt.
# 4) logger - Mappen inneholder en .txt-fil som lagrer loggeinformasjonen ved hver utførelse.
# 5) Testmateriale - Mappen inneholder de faktiske testdataene som eventuelt må lastes opp. Denne mappen vil komme inn i bildet når vi kommer over testscenarier der brukeren må laste opp filer, dokumenter, bilder, rapporter etc.
# 6) build.xml - Xml-filen brukes av “Ant Server” til å automatisere hele byggeprosessen.
# 7) log4j.xml - Denne xml-filen brukes av et Java-basert verktøy kalt 'Log4j' for å generere kjøringsloggene.
Merk : Vi vil studere mer om loggene, brukerdefinerte unntak og Ant i detalj i de kommende opplæringene. Så ikke få panikk hvis du blir forvirret mellom forestillingene.
Nå som vi går fremover, la oss forstå fenomenet der vi får tilgang til excel-filene og fyller ut testdataene i testskriptene våre.
For å forstå prosessen lettere, ville vi dele prosessen opp i følgende trinn.
Test dataoppretting
Trinn 1 : Det første og fremste trinnet er å lage testdataene som vi skal utføre testskriptene med. Med tanke på det ovennevnte testdataformatet, la oss lage en excel-fil kalt “TestScript1”. Gi verdiene i elementene.
Steg 2 : Det neste trinnet er å laste ned et standard java-basert API / bibliotek kalt “Java excel Library” (jxl) for å få tilgang til allerede genererte generiske metoder for Excel Manipulation.
Trinn 3 : Lag en generell Excel-leserklasse kalt “ExcelReader.java”. Kopier koden nedenfor i ExcelReader.java.
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col Trinn 4 : Lag en generisk klasse - “CommonMethods.java”. Lag en vanlig metode i klassen som vil lese cellene fra Excel-arket ved hjelp av metodene implementert i ExcelReader.java.
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt Trinn 5 : Opprett en ny java-klasse med navnet “TestData.java”. Denne klassen vil fungere som en getter og setter for excel data. Kopier og lim inn følgende kode i klassen TestData.java.
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
Trinn 6 : Neste trinn er å opprette forekomster av 'TestData.java' og 'CommonMethods.java' java-klasser i testskriptet for å få tilgang til og fylle ut testdataene. Se kodebiten nedenfor for objektinitialisering, lese excel-data og fylle ut verdiene der det er nødvendig.
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
Derfor kan forekomsten av testdataverdien fylles ut i skriptet ved å bruke forekomsten av testData.java-klassen sammen med getters.
hva er den beste vr-appen
Konklusjon:
Opplæringen dreide seg hovedsakelig om forestillingene som Framework Creation og Accessing test data from the excels. Vi gjorde deg kjent med Framework-opprettelsesstrategien ved hjelp av et eksempelprosjekt. Vi la kort belysning på de forskjellige komponentene og aspektene av rammeverket vårt.
For å få tilgang til testdataene som er lagret i den eksterne datakilden, brukte vi en java-basert API - jxl. Vi opprettet også eksempelkoden for å lese og fylle ut Excel-data i testskriptene.
Neste opplæring # 22 : I neste opplæring vil vi basere opplæringen vår på begreper generiske og deres tilgjengelighetsmekanisme . Vi ville lage noen få eksempler på generiske metoder og deretter få tilgang til dem i testskriptene. Vi vil også introdusere deg for konseptet Testsuite og eksempelkodeutviklingen.
Anbefalt lesing
- Introduksjon til JUnit Framework and Its Usage in Selenium Script - Selenium Tutorial # 11
- Datadrevet rammeverk i Selen WebDriver ved hjelp av Apache POI
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduksjon til Selenium WebDriver - Selenium Tutorial # 8
- In-Depth Eclipse Tutorials For Beginners
- Hvordan bruke TestNG Framework for å lage selenskript - TestNG Selen Tutorial # 12
- Effektiv Selen Scripting og feilsøking av scenarier - Selenium Tutorial # 27
- Feilsøking av selen-skript med logger (Log4j-opplæring) - Selen-opplæring # 26