selenium framework creation
Nell'ultimo tutorial, ti abbiamo familiarizzato con il basi dei framework di automazione dei test , i suoi componenti e tipi. I framework illustrati nel tutorial precedente erano alcuni tra i framework più popolari utilizzati dalla confraternita dei test.
Abbiamo discusso brevemente di framework basati su moduli, framework basato su architettura di libreria, framework basato su parole chiave, framework basato su dati e framework ibrido. Ci sono anche vari altri framework nel posto.
Si prega di prendere nota che dovremmo adottare Framework di automazione del test basato sui dati per il resto dei nostri tutorial.
Nella corrente tutorial in questa serie , ti faremo conoscere a framework di esempio, l'Excel che memorizzerebbe i dati del test e le relative manipolazioni di Excel . Sulla stessa linea, vorremmo andare avanti e introdurre nuove strategie e risorse per far maturare il nostro quadro.
Quindi impariamo:
- Strategia di creazione del framework utilizzando un progetto di esempio
- Accedi ai dati di test archiviati nell'origine dati esterna
Andando avanti, inizieremo con la descrizione della gerarchia del progetto che creeremo per separare i vari componenti del progetto.
Fare riferimento all'immagine seguente per la gerarchia del progetto creata per il progetto di esempio. Il progetto java sottostante può essere facilmente creato all'interno di eclipse nel modo in cui abbiamo creato i progetti nei tutorial precedenti.
Cosa imparerai:
- Struttura delle cartelle del progetto Selenium - Procedura dettagliata
- Creazione dei dati di prova
- Conclusione:
- Lettura consigliata
Struttura delle cartelle del progetto Selenium - Procedura dettagliata
# 1) src - La cartella contiene tutti gli script di test, i generici, i lettori e le utilità. Tutte queste risorse non sono altro che semplici classi java. Nella cartella di origine (src), abbiamo creato una gerarchia di cartelle.
un test - La cartella “test” è costituita principalmente da due ingredienti: la suite di test e le cartelle che rappresentano i vari moduli dell'applicazione sotto test. Pertanto, ciascuna di queste cartelle contiene gli script di test specifici del modulo a cui è associata. Testsuite è una combinazione logica di più di uno script di test. Pertanto, l'utente può contrassegnare una voce di uno qualsiasi degli script di test all'interno della suite di test che desidera eseguire nelle esecuzioni successive.
query sql esercitano domande con risposte
b) utilità - La cartella 'utilità' è costituita da vari generici, costanti, lettori e classi per l'implementazione di eccezioni definite dall'utente. Ciascuna delle cartelle sotto le utilità ha il proprio significato.
- Excel Reader - È stata creata una classe generica e comune per leggere i dati del test (parametri di input e risultati attesi) dai fogli Excel
- Costanti ambientali - La cartella è l'integrazione delle classi java che memorizzano le variabili statiche che fanno riferimento ai percorsi e ad altri dettagli ambientali. Questi dettagli possono essere l'URL dell'applicazione, l'URL dei database, le credenziali per i database e l'URL di qualsiasi strumento di terze parti utilizzato. È possibile impostare diversi URL dell'applicazione per diversi ambienti (dev, prod, test, master, slave ecc.).
- DataSetters - La cartella incorpora le classi che implementano i getter e setter dei dati di test recuperati da Excels. Per caricare più set di dati di test, creiamo ArrayList.
- Ruoli utente - La cartella ospita le classi che si prendono cura dei criteri di accesso basati sui ruoli, se presenti, per gli utenti istinti.
- FunctionLibrary - La cartella è costituita dalle classi che contengono funzioni e metodi che possono essere condivisi e utilizzati tra più classi. Molto spesso, dovremmo eseguire determinate procedure prima e dopo l'effettiva esecuzione del test come il login all'applicazione, l'impostazione degli ambienti, le attività relative ai roll, la manipolazione dei dati, la scrittura dei risultati, i metodi che generano pre / post-condizioni ad altri metodi . Poiché tendiamo a eseguire queste attività per tutto o la maggior parte dello script di test. Pertanto è sempre consigliabile creare una classe separata per tali attività invece di codificarle ripetutamente in ciascuno degli script di test.
- PreConditionalMethods
- PostConditionalMethods
Molto spesso, dovremmo eseguire determinate procedure prima e dopo l'effettiva esecuzione del test come il login all'applicazione, l'impostazione degli ambienti, le attività relative ai ruoli degli utenti, la manipolazione dei dati, la scrittura dei risultati, i metodi che generano pre / post-condizioni ad altri metodi. Poiché tendiamo a eseguire queste attività per tutto o la maggior parte dello script di test, quindi è sempre consigliabile creare una classe separata per tali attività invece di codificarle ripetutamente in ciascuno degli script di test.
CommonMethods
Come le pre e le postcondizioni, potrebbero esserci metodi e funzioni che possono essere utilizzati da più di uno script di test. Pertanto, questi metodi vengono raggruppati in una classe. Lo script di test può accedere a questi metodi utilizzando l'oggetto della classe comune.
# 2) file excel - I file excel sono considerati l'origine dati / fornitori di dati per l'esecuzione dello script di test. Questi file memorizzano i dati del test in coppie chiave-valore. Prendi nota che creiamo un foglio Excel separato per ciascuno degli script di test, ovvero ogni script di test ha il proprio file di dati di test. Il nome dello script di test e dei corrispondenti file di dati di test / foglio Excel è stato mantenuto lo stesso per la prospettiva di tracciabilità. Controlla il formato dei dati del test di esempio di seguito:
Formato dei dati di prova
Ciascuna delle colonne rappresenta una chiave e ciascuna delle righe rappresenta un dato / valore di prova. Specificare più righe per eseguire lo stesso script di test con più set di dati.
Contrassegnare che i formati dei dati di prova sono definiti esclusivamente dall'utente. Pertanto, in base alle proprie esigenze, è possibile personalizzare i file dei dati di prova.
# 3) libreria - La cartella funge da repository / artifactory per tutti i file jar, le librerie, i driver, ecc. Necessari per costruire con successo l'ambiente di test e per eseguire gli script di test. Fare riferimento alla figura seguente per verificare le librerie che sarebbero state impiegate nel nostro progetto.
# 4) registri - La cartella contiene un file .txt che memorizza le informazioni di registrazione su ogni esecuzione.
# 5) materiale di prova - La cartella contiene i dati di test effettivi che devono essere caricati, se presenti. Questa cartella entrerebbe in scena quando ci imbattiamo in scenari di test in cui all'utente è richiesto di caricare file, documenti, immagini, rapporti ecc.
# 6) build.xml - Il file xml viene utilizzato da 'Ant Server' per automatizzare l'intero processo di compilazione.
# 7) log4j.xml - Questo file xml viene utilizzato da un'utilità basata su Java denominata 'Log4j' per generare i log di esecuzione.
Nota : Studieremo di più sui log, le eccezioni definite dall'utente e Ant in dettaglio nei prossimi tutorial. Quindi niente panico se ti confondi tra le nozioni.
Ora, mentre andiamo avanti, permettici di capire il fenomeno in cui accediamo ai file excel e popoliamo i dati di test nei nostri script di test.
Per comprendere più facilmente il processo, suddivideremo il processo nei seguenti passaggi.
Creazione dei dati di prova
Passo 1 : Il primo e il più importante passo è creare i dati di test con i quali dovremmo eseguire gli script di test. Considerando il suddetto formato dei dati di prova, creiamo un file Excel denominato 'TestScript1'. Fornisci i valori negli elementi.
Passo 2 : Il passaggio successivo consiste nel scaricare un'API / libreria basata su java standard denominata 'Java excel Library' (jxl) per poter accedere ai metodi generici già creati per la manipolazione di Excel.
Passaggio 3 : Creare una classe di lettori Excel generica denominata 'ExcelReader.java'. Copia il codice seguente in 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 Passaggio 4 : Crea una classe generica - 'CommonMethods.java'. Crea un metodo comune all'interno della classe che legga le celle dal foglio Excel utilizzando i metodi implementati in ExcelReader.java.
che cos'è un sito di condivisione di file
/** * 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 Passaggio 5 : Crea una nuova classe java denominata 'TestData.java'. Questa classe fungerebbe da getter e setter per i dati Excel. Copia e incolla il codice seguente nella 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; } }
Passaggio 6 : Il passaggio successivo consiste nel creare istanze delle classi java 'TestData.java' e 'CommonMethods.java' all'interno dello script di test per accedere e popolare i dati di test. Fare riferimento al frammento di codice riportato di seguito per l'inizializzazione degli oggetti, la lettura dei dati di Excel e l'inserimento dei valori laddove richiesto.
// 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));
Pertanto, utilizzando l'istanza della classe testData.java insieme a getter, qualsiasi valore dei dati di test può essere popolato all'interno dello script.
Conclusione:
Il tutorial ruotava principalmente attorno a nozioni come Creazione di Framework e Accesso ai dati di test dagli excels. Ti abbiamo fatto conoscere la strategia di creazione del Framework utilizzando un progetto di esempio. Abbiamo brevemente posto la luce sui vari componenti e aspetti del nostro framework.
Per accedere ai dati di test archiviati nell'origine dati esterna, abbiamo utilizzato un'API basata su Java - jxl. Abbiamo anche creato il codice di esempio per leggere e popolare i dati di Excel negli script di test.
Prossimo tutorial n. 22 : Nel prossimo tutorial, baseremo il nostro tutorial sul concetti di generici e loro meccanismo di accessibilità . Creeremmo alcuni metodi generici di esempio e poi vi accederemo all'interno degli script di test. Ti presenteremo anche il concetto di Testsuite e lo sviluppo del codice di esempio.
Lettura consigliata
- Introduzione a JUnit Framework e al suo utilizzo in Selenium Script - Selenium Tutorial # 11
- Data Driven Framework in Selenium WebDriver utilizzando Apache POI
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Tutorial approfonditi su Eclipse per principianti
- Come utilizzare TestNG Framework per la creazione di script di selenio - TestNG Selenium Tutorial # 12
- Scripting efficiente del selenio e scenari di risoluzione dei problemi - Tutorial sul selenio n. 27
- Debug degli script di selenio con i registri (tutorial di Log4j) - Esercitazione di selenio # 26