selenium framework creation
V zadnji vadnici smo vas seznanili z osnove okvirov za avtomatizacijo preskusov , njegove komponente in vrste. Okviri, prikazani v prejšnji vadnici, so bili med najbolj priljubljenimi ogrodji, ki jih je uporabljalo testno bratstvo.
Na kratko smo razpravljali o modulih, ki temeljijo na modulih, ogrodju, ki temelji na knjižnični arhitekturi, ogrodju, ki temelji na ključnih besedah, ogrodju, ki temelji na podatkih, in hibridnem okviru. Obstajajo tudi različni drugi okviri.
Prosimo, upoštevajte, da bi ga posvojili Data Driven Test Automation Framework za ostale vaje.
V trenutni vadnico v tej seriji , seznanili bi vas z vzorčni okvir, Excels, ki bi shranil testne podatke in njihove Excel-ove manipulacije . Na enak način bi napredovali in uvedli nove strategije in vire za zorenje našega okvira.
Torej se naučimo:
- Strategija ustvarjanja okvira z vzorčnim projektom
- Dostopajte do testnih podatkov, shranjenih v zunanjem viru podatkov
V nadaljevanju bi začeli z opisom projektne hierarhije, ki bi jo ustvarili, da bi ločili različne komponente projekta.
Glejte spodnjo sliko za hierarhijo projekta, ustvarjeno za vzorčni projekt. Spodnji java projekt lahko enostavno ustvarite znotraj mrka, tako kot smo projekti ustvarili v prejšnjih vajah.
Kaj se boste naučili:
- Struktura map mape za projekt Selenium - predstavitev
- Ustvarjanje testnih podatkov
- Zaključek:
- Priporočeno branje
Struktura map mape za projekt Selenium - predstavitev
# 1) src - Mapa vsebuje vse testne skripte, generike, bralnike in pripomočke. Vsi ti viri niso nič drugega kot preprosti razredi java. V izvorni mapi (src) smo ustvarili hierarhijo map.
preizkus - Mapa 'test' je sestavljena iz večinoma dveh sestavin - test suite in map, ki predstavljajo različne module preskušane aplikacije. Tako vsaka od teh map vsebuje preizkusne skripte, specifične za modul, s katerim je povezana. Testsuite je logična kombinacija več kot enega testnega skripta. Tako lahko uporabnik označi vnos katere koli preskusne skripte v testni zbirki, ki jo želi izvesti v naslednjih tekih.
kaj je najboljše orodje za odstranjevanje zlonamerne programske opreme
b) komunalne storitve - Mapa »pripomočki« je sestavljena iz različnih generikov, konstant, bralcev in razredov za izvajanje uporabniško določenih izjem. Vsaka mapa pripomočkov ima svoj pomen.
- Excel Reader - Ustvarjen je bil splošni in skupni razred za branje testnih podatkov (vhodni parametri in pričakovani rezultati) z Excelovih listov
- OkoljeKontante - Mapa je integracija razredov java, ki shranjujejo statične spremenljivke, ki se nanašajo na poti in druge podrobnosti o okolju. Te podrobnosti so lahko URL aplikacije, URL podatkovnih baz, poverilnice podatkovnih baz in URL katerega koli tretjega orodja, ki se uporablja. Različne URL-je aplikacij lahko nastavite za različna okolja (razvijalci, prod, preizkus, glavni, podrejeni itd.).
- DataSetters - Mapa vključuje razrede, ki izvajajo pridobivalce in nastavitelje preskusnih podatkov, pridobljenih iz Excelov. Če želite naložiti več naborov testnih podatkov, ustvarimo ArrayLists.
- Uporabniške vloge - Mapa vsebuje razrede, ki skrbijo za merila dostopa na podlagi vlog, če sploh, za uporabnike instinkta.
- FunctionLibrary - Mapa je sestavljena iz razredov, ki vsebujejo funkcije in metode, ki jih je mogoče deliti in uporabljati med več razredi. Zelo pogosto naj bi izvedli določene postopke pred dejanskim izvajanjem preizkusa in po njem, kot je prijava v aplikacijo, nastavitev okolja, dejavnosti, povezane z zvitki, manipulacije s podatki, pisanje rezultatov, metode, ki ustvarjajo pred / post-pogoje za druge metode . Ker te dejavnosti ponavadi izvajamo za celoten ali večji del testnega skripta. Zato je vedno priporočljivo ustvariti ločen razred za takšne dejavnosti, namesto da bi jih večkrat kodirali v vsaki od testnih skript.
- PreConditionalMethods
- PostConditionalMethods
Zelo pogosto naj bi izvedli določene postopke pred dejanskim izvajanjem preizkusa in po njem, kot je prijava v aplikacijo, nastavitev okolja, dejavnosti, povezane z uporabniškimi vlogami, manipulacija s podatki, pisanje rezultatov, metode, ki drugim ustvarijo pred / post-pogoje metode. Ker te dejavnosti ponavadi izvajamo za celoten ali večji del preizkusne skripte, je zato priporočljivo, da za takšne dejavnosti vedno ustvarimo ločen razred, namesto da bi jih večkrat kodirali v vsaki testni skripti.
CommonMethods
Tako kot pred in popogoji lahko obstajajo metode in funkcije, ki jih lahko uporablja več kot en testni skript. Tako so te metode združene v razred. Preizkusni skript lahko do teh metod dostopa z uporabo predmeta skupnega razreda.
# 2) datoteke excel - Datoteke excel veljajo za vir podatkov / ponudnike podatkov za izvajanje testnega skripta. Te datoteke shranijo preskusne podatke v pare ključ-vrednost. Upoštevajte, da za vsak preskusni skript izdelamo ločen excel list, tj.svaka preskusna skripta ima svojo datoteko s testnimi podatki. Ime testnega skripta in ustreznih datotek testnih datotek / lista excel je ostalo enako za perspektivo sledljivosti. Spodaj si oglejte primer vzorčne podatkovne forme:
Oblika preskusnih podatkov
Vsak stolpec predstavlja ključ, vsaka vrstica pa preskusne podatke / vrednost. Določite več vrstic, da boste lahko izvedli isti preskusni skript z več nabori podatkov.
Označite, da so formati testnih podatkov izključno uporabniško določeni. Tako lahko na podlagi svojih zahtev prilagodite datoteke s testnimi podatki.
# 3) knjižnica - Mapa deluje kot repozitorij / artefakt za vse zahtevane datoteke jar, knjižnice, gonilnike itd. Za uspešno gradnjo testnega okolja in izvajanje testnih skriptov. Na spodnji sliki si oglejte knjižnice, ki bi jih zaposlili v našem projektu.
# 4) dnevniki - Mapa vsebuje datoteko .txt, ki ob vsakem zagonu shrani podatke o beleženju.
# 5) preskusni material - Mapa vsebuje dejanske preskusne podatke, ki jih je treba naložiti, če obstajajo. Ta mapa se bo pojavila, ko bomo naleteli na testne scenarije, kjer mora uporabnik naložiti datoteke, dokumente, slike, poročila itd.
# 6) build.xml - Datoteko xml uporablja »Ant Server« za avtomatizacijo celotnega postopka gradnje.
# 7) log4j.xml - To datoteko xml uporablja pripomoček, ki temelji na Javi, imenovan 'Log4j', da ustvari dnevnike izvajanja.
Opomba : V naslednjih vajah bi podrobneje preučili dnevnike, uporabniško določene izjeme in Ant. Torej, brez panike, če se med pojmi zmedete.
Zdaj, ko gremo naprej, nam dovolite, da razumemo pojav, ko dostopamo do datotek excel in podatke o preskusu vnesemo v naše testne skripte.
Da bi postopek lažje razumeli, bi ga razdelili na naslednje korake.
Ustvarjanje testnih podatkov
Korak 1 : Prvi in najpomembnejši korak je ustvariti testne podatke, s katerimi bi izvajali testne skripte. Upoštevajoč zgoraj omenjeno obliko testnih podatkov, ustvarimo datoteko excel, imenovano 'TestScript1'. Posredujte vrednosti v elementih.
2. korak : Naslednji korak je prenos standardnega API-ja / knjižnice na osnovi jave, imenovanega »Java excel Library« (jxl), da lahko dostopate do že ustvarjenih generičnih metod za Excelovo manipulacijo.
3. korak : Ustvarite generični razred bralnika excel z imenom »ExcelReader.java«. Kopirajte spodnjo kodo v 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 4. korak : Ustvarite generični razred - »CommonMethods.java«. V razredu ustvarite skupno metodo, ki bi prebrala celice z lista excel z uporabo metod, ki so bile implementirane v programu 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 5. korak : Ustvarite nov razred Java, imenovan 'TestData.java'. Ta razred bi deloval kot pridobivalec in nastavljalec podatkov excel. Kopirajte in prilepite naslednjo kodo v razred 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; } }
6. korak : Naslednji korak je ustvariti primerke razredov jave 'TestData.java' in 'CommonMethods.java' v testnem skriptu, da bi lahko dostopali do testnih podatkov in jih zapolnili. Spodnji delček kode poiščite za inicializacijo objekta, branje podatkov excel in izpolnjevanje vrednosti, kjer koli je to potrebno.
primer hash tabele c ++
// 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));
Zato lahko z uporabo primerka razreda testData.java v povezavi z getterji v skript vnesemo katero koli vrednost testnih podatkov.
Zaključek:
Vadnica se je v glavnem vrtela okoli pojmov, kot sta ustvarjanje okvira in dostop do testnih podatkov iz excelov. Na vzorčnem projektu smo vas seznanili s strategijo ustvarjanja okvira. Na kratko smo osvetlili različne komponente in vidike našega okvira.
Za dostop do testnih podatkov, shranjenih v zunanjem viru podatkov, smo uporabili API, ki temelji na javi - jxl. Ustvarili smo tudi vzorčno kodo za branje in vnašanje podatkov excel v testne skripte.
Naslednja vadnica št. 22 : V naslednji vadnici bi svojo vajo opirali na koncepti generikov in njihov mehanizem dostopnosti . Ustvarili bi nekaj vzorčnih generičnih metod in nato do njih dostopali v testnih skriptih. Predstavili bi vam tudi koncept Testsuite in razvoj vzorčne kode.
Priporočeno branje
- Uvod v JUnit Framework in njegovo uporabo v scenariju selena - Vadnica za selen # 11
- Podatkovni okvir v programu Selenium WebDriver z uporabo Apache POI
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Vadnice za globinsko zasenčenje za začetnike
- Kako uporabiti ogrodje TestNG za ustvarjanje skriptov selena - Vadnica # 12 za testNG Selenium
- Učinkoviti scenariji za skriptiranje in odpravljanje težav s selenom - Vadnica za selenij št. 27
- Odpravljanje napak v skriptih selena z dnevniki (Vadnica za Log4j) - Vadnica za selen # 26