selenium framework creation
În ultimul tutorial, v-am familiarizat cu elementele de bază ale cadrelor de automatizare a testelor , componentele și tipurile sale. Cadrele ilustrate în tutorialul anterior au fost câteva dintre cele mai populare cadre utilizate de fraternitatea de testare.
Am discutat pe scurt cadrul bazat pe module, cadrul bazat pe arhitectura bibliotecii, cadrul bazat pe cuvinte cheie, cadrul bazat pe date și cadrul hibrid. Există, de asemenea, diverse alte cadre în acest loc.
Vă rugăm să luați o notă pe care o vom adopta Data Driven Test Automation Framework pentru restul tutorialelor noastre.
În curent tutorial din această serie , vă vom face familiarizați cu un cadru eșantion, Excels care ar stoca datele de testare și manipulările lor Excel . În același mod, am merge mai departe și vom introduce noi strategii și resurse pentru a ne maturiza cadrul.
Deci, să învățăm:
- Strategia de creare a cadrului utilizând un exemplu de proiect
- Accesați datele de test stocate în sursa de date externă
Mergând mai departe, am începe cu descrierea ierarhiei proiectului pe care am fi creat-o pentru a separa diferitele componente ale proiectului.
Consultați imaginea de mai jos pentru ierarhia proiectului creată pentru exemplul de proiect. Proiectul java de mai jos poate fi creat cu ușurință în eclipsă așa cum am creat proiectele în tutorialele anterioare.
Ce veți învăța:
- Structura folderului de proiect Selenium - Tutorial
- Crearea datelor de testare
- Concluzie:
- Lectură recomandată
Structura folderului de proiect Selenium - Tutorial
# 1) src - Dosarul conține toate scripturile de testare, generice, cititoare și utilitare. Toate aceste resurse nu sunt altceva decât simple clase Java. În dosarul sursă (src), am creat o ierarhie de foldere.
un test - Dosarul „test” este alcătuit în principal din două ingrediente - suita de testare și folderele care reprezintă diferitele module ale aplicației supuse testului. Astfel, fiecare dintre aceste foldere conține scripturile de testare specifice modulului la care este asociat. Testsuite este o combinație logică a mai multor scripturi de testare. Astfel, utilizatorul poate marca o intrare a oricăruia dintre scripturile de testare din pachetul de teste pe care dorește să le execute în rulările ulterioare.
extrageți gratuit adrese de e-mail de pe site
b) utilități - Dosarul „utilități” este format din diferite generice, constante, cititori și clase pentru implementarea excepțiilor definite de utilizator. Fiecare dintre folderele de sub utilități are propria sa semnificație.
- Reader Excel - A fost creată o clasă generică și comună pentru a citi datele testului (parametrii de intrare și rezultatele așteptate) din foile Excel
- Mediu Constante - Dosarul este integrarea claselor java care stochează variabilele statice referitoare la căi și alte detalii de mediu. Aceste detalii pot fi adresa URL a aplicației, adresa URL a bazelor de date, acreditări pentru baze de date și adresa URL a oricărui instrument terță parte utilizat. Adresele URL ale aplicației diferite pot fi setate pentru diferite medii (dev, prod, test, master, slave etc.).
- DataSetters - Folderul încorporează clasele care implementează getters și setatorii datelor de test preluate de la Excels. Pentru a încărca mai multe seturi de date de testare, creăm ArrayLists.
- Roluri utilizator - Dosarul găzduiește clasele care se ocupă de criteriile de acces bazate pe rol, dacă există pentru utilizatorii instinctivi.
- FunctionLibrary - Dosarul este format din clasele care conțin funcții și metode care pot fi partajate și utilizate între mai multe clase. Foarte des, ar trebui să efectuăm anumite proceduri înainte și după executarea testului efectiv, cum ar fi conectarea la aplicație, configurarea mediilor, activități legate de rulouri, manipulări de date, rezultate de scriere, metode care generează pre / post-condiții pentru alte metode . Deoarece avem tendința de a efectua aceste activități pentru tot sau pentru majoritatea scriptului de testare. Astfel, este întotdeauna recomandat să creați o clasă separată pentru astfel de activități în loc să le codificați în mod repetat în fiecare dintre scripturile de testare.
- Metode precondiționate
- PostConditionalMethods
Foarte des, ar trebui să efectuăm anumite proceduri înainte și după executarea efectivă a testului, cum ar fi conectarea la aplicație, configurarea mediilor, activități legate de rolurile utilizatorilor, manipulări de date, scrierea rezultatelor, metode care generează condiții pre / post metode. Deoarece avem tendința de a efectua aceste activități pentru toate sau pentru majoritatea scriptului de testare, este recomandat întotdeauna să creăm o clasă separată pentru astfel de activități în loc să le codificăm în mod repetat în fiecare dintre scripturile de testare.
Metode comune
La fel ca Pre și postcondițiile, pot exista metode și funcții care pot fi utilizate de mai multe scripturi de testare. Astfel, aceste metode sunt grupate într-o clasă. Scriptul de testare poate accesa aceste metode folosind obiectul clasei comune.
# 2) fișiere Excel - Fișierele Excel sunt considerate a fi sursa de date / furnizorii de date pentru executarea scriptului de testare. Aceste fișiere stochează datele testului în perechi cheie-valoare. Rețineți că creăm o foaie Excel separată pentru fiecare script de test, adică fiecare script de testare are propriul său fișier de date de testare. Numele scriptului de testare și fișierele de date de test corespunzătoare / foaia Excel au fost păstrate la fel pentru perspectiva trasabilității. Consultați exemplul formatului de date de testare de mai jos:
Format date test
Fiecare dintre coloane reprezintă o cheie și fiecare dintre rânduri reprezintă o valoare de test / date. Specificați mai multe rânduri pentru a executa același script de test cu mai multe seturi de date.
Marcați că formatele de date de testare sunt definite exclusiv de utilizator. Astfel, pe baza cerințelor dvs., puteți personaliza fișierele de date de testare.
# 3) bibliotecă - Dosarul acționează ca un depozit / artifactorie pentru toate fișierele jar necesare, biblioteci, drivere etc. pentru a construi cu succes mediul de testare și pentru a executa scripturile de testare. Consultați următoarea figură pentru a verifica bibliotecile pe care am fi angajate în cadrul proiectului nostru.
# 4) jurnale - Dosarul conține un fișier .txt care stochează informațiile de înregistrare la fiecare execuție.
# 5) material de testare - Dosarul conține datele reale de testare care trebuie încărcate, dacă există. Acest dosar ar intra în imagine atunci când întâlnim scenarii de test în care utilizatorul este obligat să încarce fișiere, documente, imagini, rapoarte etc.
# 6) build.xml - Fișierul xml este utilizat de „Ant Server” pentru a automatiza întregul proces de compilare.
ce poate deschide un fișier eps
# 7) log4j.xml - Acest fișier XML este utilizat de un utilitar bazat pe Java denumit „Log4j” pentru a genera jurnalele de execuție.
Notă : Vom studia mai multe despre jurnalele, excepțiile definite de utilizator și Ant în detaliu în tutorialele viitoare. Deci, nu intrați în panică dacă vă confundați între noțiuni.
Acum, pe măsură ce avansăm, permiteți-ne să înțelegem fenomenul în care accesăm fișierele Excel și populăm datele de testare în scripturile noastre de testare.
Pentru a înțelege procesul mai ușor, am împărți procesul în următorii pași.
Crearea datelor de testare
Pasul 1 : Primul și cel mai important pas este crearea datelor de test cu care am fi executat scripturile de testare. Având în vedere formatul de date de test menționat mai sus, permiteți-ne să creăm un fișier excel numit „TestScript1”. Furnizați valorile din elemente.
Pasul 2 : Următorul pas este să descărcați un API / bibliotecă standard bazat pe Java denumit „Java excel Library” (jxl) pentru a putea accesa metodele generice deja create pentru manipularea Excel.
Pasul 3 : Creați o clasă generică de cititor Excel numită „ExcelReader.java”. Copiați codul de mai jos în 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 Pasul 4 : Creați o clasă generică - „CommonMethods.java”. Creați o metodă comună în cadrul clasei care ar citi celulele din foaia Excel folosind metodele implementate în 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 Pasul 5 : Creați o nouă clasă java denumită „TestData.java”. Această clasă ar acționa ca un getter și setter pentru datele Excel. Copiați și lipiți următorul cod în clasa 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; } }
Pasul 6 : Următorul pas este crearea instanțelor de clase java „TestData.java” și „CommonMethods.java” în scriptul de testare pentru a accesa și a completa datele de testare. Consultați fragmentul de cod de mai jos pentru inițializarea obiectului, citirea datelor Excel și completarea valorilor ori de câte ori este necesar.
// 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));
Prin urmare, folosind instanța clasei testData.java împreună cu getters, orice valoare a datelor de test poate fi completată în script.
Concluzie:
Tutorialul se învârtea în principal în jurul noțiunilor precum crearea cadrului și accesarea datelor de testare din excel. V-am făcut familiarizați cu strategia de creare a cadrului utilizând un exemplu de proiect. Am pus pe scurt lumina asupra diferitelor componente și aspecte ale cadrului nostru.
Pentru a accesa datele de test stocate în sursa externă de date, am folosit un API bazat pe java - jxl. De asemenea, am creat un exemplu de cod pentru citirea și completarea datelor Excel în scripturile de testare.
Următorul tutorial nr. 22 : În următorul tutorial, ne-am baza tutorialul pe concepte de generice și mecanismul lor de accesibilitate . Am crea câteva exemple de metode generice și apoi le vom accesa în scripturile de testare. Vă vom prezenta, de asemenea, conceptul Testsuite și dezvoltarea codului eșantion.
Lectură recomandată
- Introducere în JUnit Framework și utilizarea sa în Selenium Script - Selenium Tutorial # 11
- Cadru bazat pe date în Selenium WebDriver folosind Apache POI
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Tutoriale detaliate pentru eclipsă pentru începători
- Cum se folosește TestNG Framework pentru crearea de scripturi Selenium - TestNG Selenium Tutorial # 12
- Scenarii eficiente cu scripturi și depanare Selenium - Tutorial Selenium # 27
- Depanarea scripturilor Selenium cu jurnale (Tutorial Log4j) - Tutorial Selenium # 26