keyword driven framework selenium with examples
Questo tutorial completo sul framework basato su parole chiave spiega vari componenti del framework e come crearne uno in selenio:
In generale, Framework è un insieme di linee guida che, se seguite, daranno risultati positivi.
Il framework Keyword-Driven è una tecnica per esternalizzare parole chiave / azioni che vengono utilizzate nello script in un archivio di oggetti separato (qui, è un file di classe Java), che darà risultati positivi come una maggiore riusabilità del codice, ridotta manutenzione dello script, e maggiore portabilità.
=> Dai un'occhiata alla guida per principianti al selenio qui.
Cosa imparerai:
- Che cos'è un framework basato su parole chiave in selenio?
- Componenti di Keyword Driven Testing Framework
- Conclusione
Che cos'è un framework basato su parole chiave in selenio?
Ecco i tutorial video:
Quadro basato sulle parole chiave - Pianificazione e progettazione
Creazione di Keyword Driven Framework Parte - I
download gratuito del software tracker indirizzo ip
Creazione di Keyword Driven Framework Part - II
Componenti di Keyword Driven Testing Framework
Di seguito è riportato l'elenco dei componenti coinvolti nel Keyword Driven Framework.
- Libreria di funzioni
- Foglio Excel per memorizzare le parole chiave
- Modello di test case di progettazione
- Repository di oggetti per elementi / localizzatori
- Script di test o script del driver
# 1) Libreria di funzioni
Di solito è un file di classe Java in cui sono definite le parole chiave. In altre parole, tutte le azioni che vengono eseguite sull'applicazione sono definite come metodi definiti dall'utente (che sono parole chiave) nel file di classe della libreria.
Per esempio:
Supponiamo che la nostra applicazione debba eseguire le seguenti azioni in uno o più casi di test:
- Immettere l'URL.
- Fare clic su un elemento.
- Digita una casella di testo.
Poi, il file di libreria viene creato definendo metodi individuali per tutte queste azioni come mostrato di seguito:
Qui stiamo creando un metodo definito dall'utente per l'azione: 'Inserisci URL'.
Il nome fornito per il metodo definito dall'utente è chiamato a Parola chiave.
Quindi, qui 'enter_URL' è la parola chiave
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
Parametri :
conducente - Il driver viene inizializzato nella classe principale e viene passato qui.
Dati di test - viene letto dalla fonte esterna dalla classe principale e passato qui.
Funzione :
Qui, driver.get () - è la funzione del selenio che esegue l'azione 'inserisci URL'.
Parole chiave.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver,String ObjectName, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) Foglio Excel per memorizzare le parole chiave
Tutti i metodi definiti dall'utente insieme ai dettagli delle sue funzionalità dovrebbero essere menzionati nel foglio Excel in modo che l'utente possa capire quale parola chiave contiene il file della libreria.
Il foglio Excel funge da riepilogo per il file della libreria e diventa utile durante la creazione del modello del test case, in cui l'utente guarda l'elenco delle parole chiave del foglio Excel e sceglie la parola chiave corrispondente per ciascuna azione nel test case.
Per esempio:
package Keywords.Defined; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; public void enter_URL(WebDriver driver,String TestData) throws IOException{ driver.get(TestData); } public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); //driver.findElement(By.xpath('//')).sendKeys(testdata); } public void wait(WebDriver driver,String ObjectName, String locatorType) throws IOException{ WebDriverWait wait = new WebDriverWait(driver, 60); wait.until(ExpectedConditions.visibilityOf(driver.findElement(this.getObject(ObjectName,locatorType)))); } public void click(WebDriver driver,String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).click(); } public String get_currentURL(WebDriver driver){ String URL = driver.getCurrentUrl(); System.out.println('print URL '+URL); return URL; } By getObject(String ObjectName, String locatorType) throws IOException{ File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); } //find by class else if(locatorType.equalsIgnoreCase('CLASSNAME')){ return By.className(prop.getProperty(ObjectName)); } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); } //Find by css else if(locatorType.equalsIgnoreCase('CSS')){ return By.cssSelector(prop.getProperty(ObjectName)); } //find by link else if(locatorType.equalsIgnoreCase('LINK')){ return By.linkText(prop.getProperty(ObjectName)); } //find by partial link else if(locatorType.equalsIgnoreCase('PARTIALLINK')){ return By.partialLinkText(prop.getProperty(ObjectName)); } return null; } }
# 3) Progettare un modello di test case
Il modello del test case può essere creato in base alla convenienza del progetto. Non esiste una regola particolare per creare un modello. È progettato in base a quanto il progetto ha bisogno del framework per esternalizzarsi. L'esternalizzazione potrebbe essere solo per le parole chiave o talvolta anche i dati di test e gli elementi dell'interfaccia utente sono esternalizzati.
selezione algoritmo di ordinamento c ++
Viene creato un modello di test case di esempio:
Nell'esempio fornito, il modello è creato in modo tale che:
- Ogni foglio corrisponde a un test case e l'ultimo foglio è quello che contiene l ''elenco di parole chiave'.
- Ogni riga corrisponde alle fasi del test di un TC.
- Ogni colonna è i parametri necessari per ogni azione.
Come compilare il modello del test case:
# 1) Dal foglio di test case fornito, leggere ogni test case e le fasi di test corrispondenti. Per ogni fase del test, individua l'azione e trova la parola chiave corrispondente dal file della libreria.
#Due) Una volta che l'azione corrisponde alla parola chiave, compila il modello del test case nell'ordine del test case e passa anche gli altri parametri richiesti, se necessario.
# 4) Repository di oggetti per i localizzatori
Il localizzatore dell'interfaccia utente può essere identificato e il suo valore può essere menzionato nel modello del test case o mantenuto in un repository di oggetti separato.
Nell'esempio seguente, le proprietà di identificazione dell'elemento
- Tipo di localizzatore - La tecnica di identificazione utilizzata è id, Xpath, ClassName, ecc.
- Valore del localizzatore - Valore di tale attributo - Per esempio: Se il suo attributo Id, allora il valore di id e così via.
Un altro modo è mantenere nel repository degli oggetti e menzionare il nome dell'oggetto nel foglio Excel.
- Tipo di localizzatore - La tecnica di identificazione utilizzata è id, Xpath, ClassName, ecc.
- Nome del localizzatore –Il nome dell'oggetto dal repository di oggetti in cui è memorizzato il valore del localizzatore. Per esempio, Se il repository contiene il valore Xpath di un elemento con ObjectName come 'Username', LocatorName viene menzionato come 'UserName'.
NOTA: Secondo il LocatorType menzionato nel foglio Excel, il suo valore dovrebbe essere memorizzato nell'Object Repository. Per esempio: Se Xpath è specificato come LocatorType, allora il Repository dovrebbe memorizzare Xpath di quell'elemento, se l'id è specificato come Locatortype, allora l'id dovrebbe essere memorizzato e così via.
# 5) Script di test o script del driver
Questo è lo script principale che legge tutti i contenuti del foglio Excel ed esegue l'azione corrispondente. Lo script è progettato in base a come viene creato il modello.
Nel nostro caso, poiché ogni foglio di test funge da test case e ogni riga da passaggio di test, lo script del driver può essere creato iterando tra i fogli e quindi le righe.
In ogni riga particolare, viene letta una parola chiave e viene eseguito il metodo corrispondente nel file di libreria e così via. Questo continua fino a quando non vengono eseguiti tutti i passaggi del test nel caso di test. Quindi, procede al successivo test case / foglio e lo esegue.
package Automation.KeywordFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.LinkedList; import java.util.Properties; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.Reporter; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.asserts.Assertion; import Keywords.Defined.Assertions; import Keywords.Defined.Keywords; public class IrctcLogic { WebDriver driver; String path = System.getProperty('user.dir'); Keywords keyword = new Keywords(); Assertions assertion = new Assertions(); @Test public void readExcelandexecute() throws IOException, InterruptedException{ //From excelfile String excelFilePath = path+'\Externals\Test Cases.xlsx'; FileInputStream fileInputStream = new FileInputStream(excelFilePath); XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); int testcasescount = workbook.getNumberOfSheets()-1; System.out.println('Total test cases :'+testcasescount); for (int testcase=0;testcaseConclusione
Pertanto, una volta creato un framework, è riutilizzabile per più casi / progetti di test. In questo modo, riduce le ore di lavoro per creare uno script di automazione per ogni progetto.
Nel prossimo capitolo, discuteremo della creazione del framework Hybrid driven, che è una combinazione del framework Keyword-Driven e del framework Data-Driven.
=> Leggere attraverso la serie di formazione Easy Selenium.
Lettura consigliata
- Data Driven Framework in Selenium WebDriver utilizzando Apache POI
- Come funziona il test basato sui dati (esempi di QTP e selenio)
- Introduzione a JUnit Framework e al suo utilizzo in Selenium Script - Selenium Tutorial # 11
- Che cos'è la struttura ibrida nel selenio?
- Selenio Trova elemento per tutorial di testo con esempi
- 30+ Migliori tutorial sul selenio: impara il selenio con esempi reali
- Creazione di Selenium Framework e accesso ai dati di test da Excel - Selenium Tutorial # 21
- Parola chiave Java 'questo': tutorial con esempi di codice