selenium framework creation
A l'últim tutorial, us vam familiaritzar amb el conceptes bàsics d’automatització de proves Frameworks , els seus components i tipus. Els marcs il·lustrats al tutorial anterior eren alguns dels marcs més populars utilitzats per la fraternitat de proves.
Vam discutir breument Marcs basats en mòduls, Marc basat en l'arquitectura de biblioteques, Marc basat en paraules clau, Marc basat en dades i Marc híbrid. També hi ha diversos altres marcs al lloc.
Preneu una nota que adoptarem Data Driven Test Automation Framework per a la resta dels nostres tutorials.
En el corrent tutorial d'aquesta sèrie , us faríem conèixer un marc de mostra, els Excel que emmagatzemarien les dades de la prova i les seves manipulacions d'Excel . En la mateixa línia, avançaríem i introduiríem noves estratègies i recursos per madurar el nostre marc.
Així que aprenem:
- Estratègia de creació de marcs mitjançant un projecte de mostra
- Accediu a les dades de prova emmagatzemades a la font de dades externa
Avançant, començaríem amb la descripció de la jerarquia del projecte que crearíem per segregar els diversos components del projecte.
Consulteu la imatge següent per a la jerarquia del projecte creada per al projecte de mostra. El projecte Java següent es pot crear fàcilment dins de l’eclipsi de la mateixa manera que hem creat els projectes en els tutorials anteriors.
Què aprendreu:
- Estructura de la carpeta del projecte Selenium: tutorial
- Creació de dades de prova
- Conclusió:
- Lectura recomanada
Estructura de la carpeta del projecte Selenium: tutorial
# 1) src - La carpeta conté tots els scripts de prova, genèrics, lectors i utilitats. Tots aquests recursos no són altra cosa que les simples classes java. A la carpeta font (src), hem creat una jerarquia de carpetes.
una prova - La carpeta 'prova' està formada principalment per dos ingredients: el conjunt de proves i les carpetes que representen els diferents mòduls de l'aplicació que es prova. Per tant, cadascuna d’aquestes carpetes conté els scripts de prova específics del mòdul al qual està associada. Testsuite és una combinació lògica de més d'un script de prova. Per tant, l'usuari pot marcar una entrada de qualsevol dels scripts de prova dins del conjunt de proves que vulgui executar en les execucions posteriors.
descàrregues mp3 gratuïtes per a telèfons Android
b) serveis públics - La carpeta 'utilitats' està formada per diversos genèrics, constants, lectors i classes per implementar excepcions definides per l'usuari. Cadascuna de les carpetes de les utilitats té la seva pròpia importància.
- Lector Excel: S’ha creat una classe genèrica i comuna per llegir les dades de la prova (paràmetres d’entrada i resultats esperats) dels fulls Excel
- Constants del medi ambient - La carpeta és la integració de les classes java que emmagatzemen les variables estàtiques que fan referència als camins i altres detalls ambientals. Aquests detalls poden ser URL de l’aplicació, URL de les bases de dades, credencials de les bases de dades i URL de qualsevol eina de tercers que s’utilitzi. Els URL d'aplicacions diferents es poden configurar per a diferents entorns (dev, prod, test, master, slave, etc.).
- DataSetters - La carpeta incorpora les classes que implementen els obtenedors i els ajustadors de les dades de prova obtingudes a Excels. Per carregar diversos conjunts de dades de prova, creem ArrayLists.
- Fons d'usuari - La carpeta allotja les classes que s’encarreguen dels criteris d’accés basats en funcions, si n’hi ha per als usuaris de l’instint.
- FunctionLibrary - La carpeta està formada per les classes que contenen funcions i mètodes que es poden compartir i utilitzar entre les diverses classes. Molt sovint, se suposa que realitzem certs procediments abans i després de l’execució real de la prova, com ara iniciar sessió a l’aplicació, configurar entorns, activitats relacionades amb processos, manipulacions de dades, resultats d’escriptura, mètodes que generen condicions anteriors / posteriors a altres mètodes. . Atès que acostumem a realitzar aquestes activitats durant tot o la major part del guió de prova. Per tant, sempre es recomana crear una classe independent per a aquestes activitats en lloc de codificar-les repetidament en cadascun dels scripts de prova.
- Mètodes precondicionals
- PostConditionalMethods
Molt sovint, se suposa que realitzem certs procediments abans i després de l’execució real de la prova, com ara iniciar sessió a l’aplicació, configurar entorns, activitats relacionades amb els rols d’usuari, manipulacions de dades, resultats d’escriptura, mètodes que generen condicions anteriors / posteriors a altres mètodes. Com que solem realitzar aquestes activitats per a la totalitat o la major part de l'script de prova, per tant, sempre es recomana crear una classe independent per a aquestes activitats en lloc de codificar-les repetidament en cadascun dels scripts de prova.
Mètodes comuns
Igual que Pre i postcondicions, pot haver-hi mètodes i funcions que puguin utilitzar més d'un script de prova. Per tant, aquests mètodes s’agrupen en una classe. El script de prova pot accedir a aquests mètodes mitjançant l'objecte de la classe comuna.
# 2) fitxers excel: Es considera que els fitxers Excel són la font de dades / proveïdors de dades per a l'execució de scripts de prova. Aquests fitxers emmagatzemen les dades de la prova en parells clau-valor. Tingueu en compte que creem un full Excel independent per a cadascun dels scripts de prova, és a dir, cada script de prova té el seu propi fitxer de dades de prova. El nom de l'script de prova i els fitxers de dades de prova / full Excel corresponents s'ha mantingut igual per a la perspectiva de la traçabilitat. Consulteu el format de dades de prova de mostra a continuació:
Format de dades de prova
Cadascuna de les columnes representa una clau i cadascuna de les files representa un valor / dades de prova. Especifiqueu les diverses files per executar el mateix script de prova amb diversos conjunts de dades.
Marqueu que els formats de dades de prova estan definits únicament per l'usuari. Així, segons els vostres requisits, podeu personalitzar els fitxers de dades de prova.
# 3) biblioteca - La carpeta actua com a repositori / artefactori per a tots els fitxers jar, biblioteques, controladors, etc. necessaris per construir amb èxit l'entorn de prova i executar els scripts de prova. Consulteu la figura següent per comprovar les biblioteques que faríem servir dins del nostre projecte.
# 4) registres - La carpeta conté un fitxer .txt que emmagatzema la informació de registre a cada execució.
# 5) material de prova: La carpeta conté les dades de prova reals que cal carregar si n'hi ha. Aquesta carpeta entraria en imatge quan ens trobem amb escenaris de prova en què l’usuari ha de carregar fitxers, documents, imatges, informes, etc.
# 6) build.xml - El 'servidor Ant' utilitza el fitxer XML per automatitzar tot el procés de compilació.
# 7) log4j.xml - Aquest fitxer XML l’utilitza una utilitat basada en Java anomenada “Log4j” per generar els registres d’execució.
Nota : Estudiarem més sobre els registres, les excepcions definides per l'usuari i Ant en els propers tutorials. Així que no us espanteu si us confoneu entre les nocions.
Ara, a mesura que avancem, entenem el fenomen en què accedim als fitxers Excel i omplim les dades de prova als nostres scripts de prova.
Per tal de comprendre el procés més fàcilment, dividiríem el procés en els passos següents.
Creació de dades de prova
Pas 1 : El primer pas i el més important és crear les dades de prova amb les quals executaríem els scripts de prova. Tenint en compte el format de dades de prova esmentat, creem un fitxer Excel anomenat 'TestScript1'. Proporcionar els valors dels elements.
diferències entre c ++ i c
Pas 2 : El següent pas és descarregar una API / biblioteca estàndard basada en Java anomenada 'Biblioteca Java excel' (jxl) per poder accedir als mètodes genèrics ja creats per a la manipulació d'Excel.
Pas 3 : Creeu una classe genèrica de lector Excel anomenada 'ExcelReader.java'. Copieu el codi següent a 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 Pas 4 : Creeu una classe genèrica: 'CommonMethods.java'. Creeu un mètode comú dins de la classe que llegirà les cel·les del full Excel mitjançant els mètodes implementats a 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 Pas 5 : Creeu una nova classe java anomenada 'TestData.java'. Aquesta classe actuaria com a obtentor i configurador de dades Excel. Copieu i enganxeu el següent codi a la classe 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; } }
Pas 6 : El següent pas és crear instàncies de classes java 'TestData.java' i 'CommonMethods.java' dins de l'script de prova per tal d'accedir i omplir les dades de prova. Consulteu el fragment de codi següent per a la inicialització d'objectes, llegir dades Excel i omplir els valors allà on sigui necessari.
// 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));
Per tant, utilitzant la instància de la classe testData.java juntament amb getters, es pot omplir qualsevol valor de les dades de prova dins de l'script.
Conclusió:
El tutorial girava principalment al voltant de nocions com Creació de marcs i Accés a les dades de prova dels excel. Us hem fet conèixer l’estratègia de creació de Framework mitjançant un projecte de mostra. Vam donar una breu llum sobre els diversos components i aspectes del nostre marc.
Per accedir a les dades de prova emmagatzemades a la font de dades externa, hem utilitzat una API basada en java - jxl. També hem creat el codi de mostra per llegir i omplir les dades Excel als scripts de prova.
Pròxim tutorial núm. 22 : Al següent tutorial, basaríem el nostre tutorial en el conceptes de genèrics i el seu mecanisme d’accessibilitat . Crearíem alguns mètodes genèrics de mostra i, a continuació, accediríem als scripts de prova. També us presentarem el concepte de Testsuite i el desenvolupament de codi de mostra.
Lectura recomanada
- Introducció a JUnit Framework i el seu ús a Selenium Script - Selenium Tutorial # 11
- Marc basat en dades a Selenium WebDriver mitjançant Apache POI
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Tutorials Eclipse en profunditat per a principiants
- Com s'utilitza el marc TestNG per crear scripts de Selenium - Tutorial # 12 de TestNG Selenium
- Escenaris de scripts i resolució de problemes de Selenium eficients: tutorial núm. 27 de Selenium
- Depuració d’escriptures de Selenium amb registres (Tutorial Log4j) - Tutorial Selenium núm. 26