selenium framework creation
U prošlom uputstvu upoznali smo vas s osnove okvira za automatizaciju ispitivanja , njegove komponente i vrste. Okviri ilustrirani u prethodnom vodiču bili su neki od najpopularnijih okvira koje je koristilo ispitno bratstvo.
Ukratko smo razgovarali o modulima koji se temelje na modulima, okviru koji se temelji na arhitekturi knjižnice, okviru vođenom ključnim riječima, okviru vođenom podacima i hibridnom okviru. U mjestu postoje i razni drugi okviri.
Uzmite na znanje da bismo ih usvojili Okvir za automatizaciju ispitivanja na temelju podataka za ostatak naših vodiča.
U tekućem tutorial u ovoj seriji , upoznali bismo vas s a uzorak okvira, Excels koji će pohraniti test podatke i njihove Excel manipulacije . Na istim linijama, krenuli bismo naprijed i uveli nove strategije i resurse kako bismo sazreli naš okvir.
Pa naučimo:
- Strategija stvaranja okvira pomoću uzorka projekta
- Pristupite testnim podacima pohranjenim u vanjskom izvoru podataka
Krećući naprijed, započeli bismo s opisom hijerarhije projekta koju bismo stvorili kako bismo razdvojili različite komponente projekta.
Pogledajte donju sliku za hijerarhiju projekta stvorenu za ogledni projekt. Java projekt u nastavku može se lako stvoriti unutar pomrčine onako kako smo mi kreirali projekte u ranijim vodičima.
Što ćete naučiti:
- Struktura mape projekta Selenium - Vodič kroz vodič
- Izrada testnih podataka
- Zaključak:
- Preporučena literatura
Struktura mape projekta Selenium - Vodič kroz vodič
# 1) src - Mapa sadrži sve testne skripte, generičke lijekove, čitače i uslužne programe. Svi ti resursi nisu ništa drugo doli jednostavni java tečajevi. Ispod izvorne (src) mape stvorili smo hijerarhiju mapa.
a) test - Mapa 'test' sastoji se uglavnom od dva sastojka - paketa za testiranje i mapa koje predstavljaju različite module aplikacije koja se ispituje. Dakle, svaka od ovih mapa sadrži testne skripte specifične za modul kojem je pridružen. Testsuite je logična kombinacija više skripti za testiranje. Dakle, korisnik može označiti unos bilo koje testne skripte unutar test paketa koju želi izvršiti u sljedećim izvođenjima.
datum izlaska slušalica za virtualnu stvarnost xbox
b) komunalne usluge - Mapa 'uslužni programi' sastoji se od različitih generičkih podataka, konstanti, čitača i klasa za implementaciju izuzetaka definiranih od korisnika. Svaka mapa pod uslužnim programima ima svoj značaj.
- Excel Reader - Stvorena je generička i uobičajena klasa za čitanje podataka ispitivanja (ulazni parametri i očekivani rezultati) s Excel listova
- OkolinaContants - Mapa je integracija Java klasa koje pohranjuju statičke varijable koje se odnose na staze i ostale detalje okoline. Ti detalji mogu biti URL aplikacije, URL baza podataka, vjerodajnice za baze podataka i URL bilo kojeg trećeg alata koji se koristi. Različiti URL-ovi aplikacije mogu se postaviti za različita okruženja (razvoj, prod, test, master, slave itd.).
- DataSetters - Mapa uključuje klase koje implementiraju getere i postavljače testnih podataka preuzetih iz Excela. Da bismo učitali više skupova test podataka, kreiramo ArrayLists.
- Korisničke uloge - Mapa sadrži klase koje vode računa o kriterijima pristupa temeljenim na ulogama, ako postoje za korisnike instinkta.
- Knjižnica funkcija - Mapa se sastoji od klasa koje sadrže funkcije i metode koje se mogu dijeliti i koristiti među više klasa. Vrlo često bismo trebali izvesti određene postupke prije i poslije stvarnog izvođenja testa, poput prijave u aplikaciju, postavljanja okruženja, aktivnosti vezanih uz role, manipulacije podacima, pisanje rezultata, metode koje generiraju pret / post-uvjete za druge metode . Budući da obično radimo ove aktivnosti na cijelom ili većem dijelu test skripte. Stoga se uvijek preporučuje stvoriti zasebnu klasu za takve aktivnosti, umjesto da ih više puta kodirate u svakoj od test skripti.
- PreConditionalMethods
- PostConditionalMethods
Vrlo često bismo trebali izvesti određene postupke prije i poslije stvarnog izvođenja testa, poput prijave u aplikaciju, postavljanja okruženja, aktivnosti vezanih uz korisničke uloge, manipulacije podacima, pisanje rezultata, metode koje generiraju pred / post-uvjete za druge metode. Budući da obično radimo ove aktivnosti na cijeloj ili većini testne skripte, stoga se uvijek preporučuje stvoriti zasebnu klasu za takve aktivnosti, umjesto da ih više puta kodiramo u svakoj testnoj skripti.
CommonMethods
Kao i preduslovi i postuslovi, mogu postojati metode i funkcije koje može koristiti više od jedne testne skripte. Dakle, ove su metode grupirane u razred. Testna skripta može pristupiti tim metodama pomoću objekta zajedničke klase.
# 2) excel datoteke - Excelove datoteke smatraju se izvorom podataka / pružateljima podataka za izvršavanje testne skripte. Te datoteke pohranjuju testne podatke u parove ključ / vrijednost. Zabilježite da za svaku testnu skriptu izrađujemo zasebni excel list, tj. Svaka testna skripta ima svoju datoteku testnih podataka. Ime skripte za testiranje i odgovarajuće datoteke s podacima o testiranju / excel list ostali su isti za perspektivu sljedivosti. U nastavku pogledajte uzorak formata podataka za test:
Format podataka za testiranje
Svaki od stupaca predstavlja ključ, a svaki redak predstavlja testne podatke / vrijednost. Navedite više redaka kako biste izvršili istu testnu skriptu s više skupova podataka.
Označite da su formati testnih podataka isključivo korisnički definirani. Tako na temelju svojih zahtjeva možete prilagoditi datoteke s testnim podacima.
# 3) knjižnica - Mapa djeluje kao spremište / artefakcija za sve potrebne jar datoteke, knjižnice, upravljačke programe itd. Za uspješnu izgradnju testnog okruženja i izvršavanje testnih skripti. Pogledajte sljedeću sliku kako biste provjerili knjižnice koje bismo zaposlili u našem projektu.
# 4) trupci - Mapa sadrži datoteku .txt koja pohranjuje podatke evidentiranja nakon svakog izvršavanja.
# 5) ispitni materijal - Mapa sadrži stvarne podatke o testiranju koje treba učitati ako ih ima. Ova bi se mapa pojavila na slici kad naiđemo na testne scenarije u kojima korisnik treba prenijeti datoteke, dokumente, slike, izvještaje itd.
# 6) build.xml - Xml datoteku koristi 'Mrav poslužitelj' za automatizaciju cjelokupnog postupka izrade.
# 7) log4j.xml - Ovu xml datoteku koristi uslužni program zasnovan na Javi nazvan 'Log4j' za generiranje dnevnika izvršenja.
Bilješka : U nadolazećim vodičima detaljno bismo proučavali zapisnike, korisnički definirane iznimke i Ant. Stoga nemojte paničariti ako se zbunite između pojmova.
osiguranje kvalitete nasuprot kontroli kvalitete
Sada, kako idemo naprijed, shvatimo fenomen u kojem pristupamo excelovim datotekama i popunjavamo testne podatke u naše testne skripte.
Kako bismo postupak lakše razumjeli, proces bismo raščlanili na sljedeće korake.
Izrada testnih podataka
Korak 1 : Prvi i najvažniji korak je stvaranje testnih podataka pomoću kojih bismo izvršavali testne skripte. Uzimajući u obzir gore spomenuti format testnih podataka, stvorimo excel datoteku nazvanu „TestScript1“. Namjestite vrijednosti u elementima.
Korak 2 : Sljedeći je korak preuzimanje standardnog API-ja / knjižnice temeljenog na javi nazvanog „Java excel knjižnica“ (jxl) kako biste mogli pristupiti već stvorenim generičkim metodama za Excel manipulaciju.
3. korak : Stvorite generičku klasu excel čitača nazvanu 'ExcelReader.java'. Kopirajte donji kod u 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 : Stvorite generičku klasu - 'CommonMethods.java'. Stvorite zajedničku metodu unutar klase koja bi čitala ćelije s excel lista pomoću metoda implementiranih u 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 Korak 5 : Stvorite novu java klasu nazvanu 'TestData.java'. Ova klasa bi djelovala kao geter i postavljač za excel podatke. Kopirajte i zalijepite sljedeći kôd u klasu 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; } }
Korak 6 : Sljedeći je korak stvaranje instanci java klasa “TestData.java” i “CommonMethods.java” u testnoj skripti kako bi se pristupilo i popunilo testne podatke. Pogledajte donji isječak koda za inicijalizaciju objekta, čitanje podataka programa Excel i popunjavanje vrijednosti gdje god je to potrebno.
// 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));
Stoga, koristeći instancu klase testData.java zajedno s getterima, bilo koja vrijednost podataka testa može se popuniti unutar skripte.
Zaključak:
Vodič se uglavnom vrtio oko pojmova poput izrade okvira i pristupa testnim podacima iz excela. Upoznali smo vas sa strategijom stvaranja okvira pomoću uzorka projekta. Ukratko smo osvijetlili razne komponente i aspekte našeg okvira.
Da bismo pristupili testnim podacima pohranjenim u vanjskom izvoru podataka, koristili smo API zasnovan na javi - jxl. Također smo kreirali uzorak koda za čitanje i popunjavanje podataka excela u test skripte.
Sljedeći vodič # 22 : U sljedećem uputstvu mi bismo svoj tutorial temeljili na koncepti generika i njihov mehanizam pristupačnosti . Stvorili bismo nekoliko primjera generičkih metoda, a zatim bismo im pristupili unutar testnih skripti. Također bismo vas upoznali s konceptom Testsuite-a i razvojem uzorka koda.
Preporučena literatura
- Uvod u JUnit Framework i njegovu upotrebu u skripti za selenij - Vodič za selen br. 11
- Data Driven Framework u Selenium WebDriver koristeći Apache POI
- Vodič za selenij krastavaca: Integracija Java Selenium WebDriver za krastavac
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Dubinski vodiči pomračenja za početnike
- Kako se koristi TestNG Framework za stvaranje skripti za selen - TestNG Selen Tutorial # 12
- Učinkoviti scenariji za skriptiranje i rješavanje problema sa selenom - Vodič za selenij br. 27
- Otklanjanje pogrešaka u skriptama za selen sa zapisnicima (Vodič za Log4j) - Vodič za selen # 26