selenium framework creation
I den sidste tutorial lærte vi dig om grundlæggende i testautomatiseringsrammer , dets komponenter og typer. De rammer, der er illustreret i den foregående vejledning, var nogle få af de mest populære rammer, der blev brugt af testbrødrene.
Vi diskuterede kort modulbaserede rammer, biblioteksarkitekturbaserede rammer, søgeordsdrevne rammer, datadrevne rammer og hybridrammer. Der er forskellige andre rammer også på stedet.
Vær opmærksom på, at vi ville vedtage Data Driven Test Automation Framework til resten af vores tutorials.
I den nuværende tutorial i denne serie , vi vil gøre dig bekendt med en eksempelramme, de excels, som lagrer testdataene og deres Excel-manipulationer . På samme linje vil vi gå videre og indføre nye strategier og ressourcer til at modne vores rammer.
Så lad os lære:
- Framework-oprettelsesstrategi ved hjælp af et eksempel på projekt
- Få adgang til testdata, der er gemt i den eksterne datakilde
Fortsat ville vi starte med beskrivelsen af projekthierarkiet, som vi ville skabe for at adskille de forskellige projektkomponenter.
Se nedenstående billede for projekthierarkiet, der er oprettet til eksempelprojektet. Nedenstående java-projekt kan let oprettes i formørkelsen, som vi har oprettet projekterne i de tidligere tutorials.
Hvad du vil lære:
Selen-projektmappestruktur - gennemgang
# 1) src - Mappen indeholder alle testskripter, generiske, læsere og hjælpeprogrammer. Alle disse ressourcer er intet andet end de enkle java-klasser. Under kildemappen (src) har vi oprettet et hierarki af mapper.
en test - 'Test' -mappen består af overvejende to ingredienser - testpakke og mapperne, der repræsenterer de forskellige moduler i applikationen, der testes. Hver af disse mapper indeholder således test-scripts, der er specifikke for det modul, som de er tilknyttet. Testsuite er en logisk kombination af mere end et test-scripts. Således kan brugeren markere en post af et hvilket som helst af testskripterne i testpakken, som han / hun ønsker at udføre i de efterfølgende kørsler.
hvordan man starter automatiseringstest fra bunden
b) forsyningsselskaber - 'Utilities' -mappen består af forskellige generiske, konstanter, læsere og klasser til implementering af brugerdefinerede undtagelser. Hver af mapperne under hjælpeprogrammer har sin egen betydning.
- Excel Reader - En generisk og fælles klasse er oprettet til at læse testdata (inputparametre og forventede resultater) fra Excel-arkene
- MiljøKonstanter - Mappen er integration af java-klasser, der gemmer de statiske variabler, der henviser til stierne og andre miljømæssige detaljer. Disse detaljer kan være applikations-URL, URL til databaser, legitimationsoplysninger til databaser og URL til ethvert tredjepartsværktøj, der bruges. De forskellige applikations-URL'er kan indstilles til forskellige miljøer (dev, prod, test, master, slave osv.).
- Datasættere - Mappen indeholder de klasser, der implementerer getters og settere af testdata hentet fra Excels. For at indlæse flere sæt testdata opretter vi ArrayLists.
- Brugerroller - Mappen rummer de klasser, der tager sig af de rollebaserede adgangskriterier, hvis nogen for instinktbrugere.
- Funktionsbibliotek - Mappen består af de klasser, der indeholder funktioner og metoder, der kan deles og bruges blandt de mange klasser. Meget ofte skal vi udføre bestemte procedurer forud for og efterfølgende til den faktiske testudførelse som login til applikationen, opsætning af miljøer, aktiviteter relateret til ruller, databehandling, skrivningsresultater, metoder, der genererer præ / post-betingelser til andre metoder . Da vi har tendens til at udføre disse aktiviteter for hele eller det meste af testmanuskriptet. Således anbefales det altid at oprette en separat klasse til sådanne aktiviteter i stedet for at kode dem gentagne gange i hvert af testskripterne.
- Forudbetingede metoder
- PostConditionalMethods
Meget ofte skal vi udføre visse procedurer forud for og efterfølgende til den faktiske testudførelse som login til applikationen, opsætning af miljøer, aktiviteter relateret til brugerroller, databehandling, skrivningsresultater, metoder, som genererer præ / post-betingelser til andre metoder. Da vi har tendens til at udføre disse aktiviteter for hele eller det meste af testscriptet, anbefales det derfor altid at oprette en separat klasse til sådanne aktiviteter i stedet for at kode dem gentagne gange i hvert af testscriptene.
Almindelige metoder
Ligesom før og efterbetingelser kan der være metoder og funktioner, som kan bruges af mere end et test script. Således grupperes disse metoder i en klasse. Test scriptet kan få adgang til disse metoder ved hjælp af objektet fra den fælles klasse.
# 2) Excel-filer - Excel-filerne betragtes som datakilden / dataleverandørerne til udførelse af testscript. Disse filer gemmer testdataene i nøgleværdipar. Skriv en bemærkning om, at vi opretter et separat excel-ark til hvert af test-scriptet, dvs. hvert test-script har sin egen testdatafil. Navnet på testskriptet og de tilsvarende testdatafiler / excel-ark er blevet holdt det samme for sporbarhedsperspektivet. Se eksemplet på testdataformat nedenfor:
Testdataformat
Hver af kolonnerne repræsenterer en nøgle, og hver af rækkerne repræsenterer en testdata / værdi. Angiv de flere rækker for at udføre det samme testscript med flere datasæt.
Marker, at testdataformaterne udelukkende er brugerdefinerede. Baseret på dine krav kan du således tilpasse testdatafiler.
# 3) Bibliotek - Mappen fungerer som et lager / artefakt for alle de nødvendige jar-filer, biblioteker, drivere osv. For at kunne opbygge testmiljøet og udføre test-scripts. Se følgende figur for at tjekke de biblioteker, vi ville være ansat i vores projekt.
hvordan man åbner en bittorrent-fil
# 4) logfiler - Mappen indeholder en .txt-fil, der gemmer loggeoplysningerne ved hver udførelse.
# 5) Testmateriale - Mappen indeholder de faktiske testdata, der eventuelt skal uploades. Denne mappe kommer ind i billedet, når vi støder på testscenarier, hvor brugeren skal uploade filer, dokumenter, billeder, rapporter osv.
# 6) build.xml - Xml-filen bruges af “Ant Server” til at automatisere hele byggeprocessen.
# 7) log4j.xml - Denne xml-fil bruges af et Java-baseret værktøj kaldet 'Log4j' til at generere eksekveringslogfiler.
Bemærk : Vi ville studere mere om logfilerne, brugerdefinerede undtagelser og Ant i detaljer i de kommende tutorials. Så tag ikke panik, hvis du bliver forvirret mellem forestillingerne.
Lad os nu, når vi bevæger os fremad, forstå det fænomen, hvor vi får adgang til excel-filerne og udfylder testdataene i vores testskripter.
For at forstå processen lettere, ville vi nedbryde processen i følgende trin.
Oprettelse af testdata
Trin 1 : Det første og det første skridt er at oprette testdata, som vi udfører testskripterne med. I betragtning af det ovennævnte testdataformat, lad os oprette en excel-fil med navnet “TestScript1”. Giv værdierne i elementerne.
Trin 2 : Det næste trin er at downloade et standard java-baseret API / bibliotek navngivet som “Java excel Library” (jxl) for at få adgang til de allerede oprettede generiske metoder til Excel Manipulation.
Trin 3 : Opret en generisk Excel-læserklasse med navnet “ExcelReader.java”. Kopier nedenstående kode 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 Trin 4 : Opret en generisk klasse - “CommonMethods.java”. Opret en fælles metode inden for klassen, der læser cellerne fra excel-arket ved hjælp af metoderne implementeret 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 Trin 5 : Opret en ny java-klasse med navnet “TestData.java”. Denne klasse ville fungere som en getter og setter for excel data. Kopier og indsæt 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; } }
Trin 6 : Det næste trin er at oprette forekomster af java-klasser 'TestData.java' og 'CommonMethods.java' i testskriptet for at få adgang til og udfylde testdataene. Se nedenstående kodestykke for objektinitialisering, læsning af excel-data og udfyldning af værdier, hvor det er nødvendigt.
// 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));
Brug af forekomsten af testData.java-klassen i forbindelse med getters, derfor kan enhver testdataværdi udfyldes i scriptet.
Konklusion:
Selvstudiet drejede sig primært om forestillinger som Framework Creation og adgang til testdata fra excelserne. Vi gjorde dig bekendt med Framework-oprettelsesstrategien ved hjælp af et prøveprojekt. Vi har kort lagt lyset på de forskellige komponenter og aspekter af vores ramme.
For at få adgang til testdata, der er gemt i den eksterne datakilde, brugte vi en java-baseret API - jxl. Vi oprettede også prøvekoden til læsning og udfyldning af exceldataene i testskripterne.
Næste tutorial # 22 : I den næste vejledning baserer vi vores vejledning på begreberne generiske lægemidler og deres tilgængelighedsmekanisme . Vi ville oprette et par eksempler på generiske metoder og derefter få adgang til dem i testskripterne. Vi vil også introducere dig til begrebet Testsuite og udviklingen af prøvekoden.
Anbefalet læsning
- Introduktion til JUnit Framework og dens anvendelse i Selenium Script - Selen Tutorial # 11
- Datadrevet ramme i Selen WebDriver ved hjælp af Apache POI
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Dybdegående formørkelsesvejledninger til begyndere
- Sådan bruges TestNG Framework til oprettelse af selen-scripts - TestNG Selen Tutorial # 12
- Effektiv Selen Scripting og fejlfinding af scenarier - Selen Tutorial # 27
- Fejlfinding af selen-scripts med logfiler (Log4j-tutorial) - Selen-tutorial # 26