what is hybrid framework selenium
Questo tutorial informativo spiega cos'è un framework ibrido, usi e componenti di Selenium Hybrid Driven Framework e come implementarlo:
Cos'è un framework ibrido?
Hybrid Driven Framework è una combinazione di entrambi i framework Data-Driven e Keyword-Driven.
Qui, le parole chiave, così come i dati di test, vengono esternalizzati. Le parole chiave vengono mantenute in un file di classe Java separato ei dati di test possono essere conservati in un file delle proprietà / file excel / possono utilizzare il fornitore di dati di un framework TestNG.
=> Controlla qui per vedere i tutorial di formazione dalla A alla Z del selenio qui.
Cosa imparerai:
tipi di test case nel test del software
Introduzione a Hybrid Framework
Ecco il video tutorial:
Il framework Hybrid Driven è principalmenteutilizzato da tester manuali che non hannomolta conoscenza dei linguaggi di programmazione. Queste persone possono semplicemente dare un'occhiata alle parole chiave, ai dati di test, al repository di oggetti e iniziare subito a creare il caso di test, senza dover codificare nulla nel framework.
Componenti di Hybrid Driven Framework
I componenti di Hybrid Framework sono simili ai componenti di Keyword Driven Frameworkin cui tutti i dati di test, così come le parole chiave, vengono esternalizzati facendo apparire lo script in una forma più generalizzata
- 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
I metodi definiti dall'utente vengono creati per ogni azione dell'utente. In altre parole, le parole chiave vengono create nel file della libreria.
Per esempio: Prendiamo un'istanza per automatizzare i casi di test seguenti.
Caso di prova n | Descrizione | Passaggi del test | Risultato atteso | ||
---|---|---|---|---|---|
AssertElement | xpath | // div [contiene (@ id, 'usericon')] | Visualizzato | ||
1 | Verifica la presenza del logo Amazon | 1. Immettere l'URL: https://www.amazon.com | Il logo di Amazon dovrebbe essere visualizzato nella home page | ||
Due | Verifica accesso valido | 1. Immettere l'URL: https://www.amazon.com 2. Fare clic sul collegamento 'Accedi' 3. Immettere un'e-mail valida 4. Fare clic su continua 5. Immettere una password valida 6. Fare clic su SignInButton | L'icona utente dovrebbe essere presente nella home page | ||
3 | Login non valido | 1. Immettere l'URL: https://www.amazon.com 2. Fare clic sul collegamento 'Accedi' 3. Immettere un'e-mail non valida 4. Fare clic su continua | Questo messaggio di errore dovrebbe contenere 'impossibile trovare un account' |
Innanzitutto, vengono analizzati i casi di test e le relative fasi di test e le relative azioni vengono annotate.
Dì, dentro TC 01: Verifica la presenza del logo Amazon: le azioni dell'utente saranno: Inserisci l'URL
Nel TC 02: Verifica accesso valido: le azioni dell'utente sono Immettere URL, Fare clic, Digitare
Nel TC03: Verifica accesso non valido: le azioni dell'utente sono Immettere URL, Fare clic, Digitare
Ora, il file della libreria verrà creato con le parole chiave definite per ciascuna azione come di seguito:
ho bisogno di un nuovo provider di posta elettronica
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 typeIn(WebDriver driver, String locatorValue, 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 locatorValue, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) Foglio Excel per memorizzare le parole chiave
Le parole chiave create nel file della libreria vengono memorizzate in un foglio Excel con la relativa descrizione per chiunque utilizzi questo framework per comprenderle.
# 3) Progettare un modello di test case
Viene creato un modello di test case per il framework. Non esiste un modello specifico da seguire. Come per Hybrid Framework, sia i dati di test che le parole chiave dovrebbero essere esternalizzati. Quindi, un modello viene creato di conseguenza. Per esempio:
Per il caso di test 2 - Verifica accesso valido
Passaggi del test | Tipo di localizzatore | Valore del localizzatore | Dati di test | AssertionType | Valore atteso |
---|---|---|---|---|---|
enter_URL | https://www.amazon.com | ||||
Clic | xpath | // div [contiene (@ id, 'SignIn')] | |||
digitare | xpath | // div [contiene (@ id, 'email')] | test@gmail.com | ||
Clic | xpath | // div [contiene (@ id, 'continue')] | |||
digitare | id | parola d'ordine | Password @ 123 | ||
Clic | id | Registrati |
Allo stesso modo, le fasi del test vengono compilate per ogni caso di test in un foglio separato.
# 4) Repository di oggetti per elementi
Viene mantenuto un repository separato per tutti gli elementi della pagina web. Ogni WebElement viene indicato con un nome seguito dal suo valore in un Object Repository (in questo caso, è un file delle proprietà). Il modello di test case conterrà il nome dell'oggetto e il suo valore viene preso dal repository come di seguito:
Qui, LoginLink è il nome dell'oggetto e il suo valore viene letto da OR.properties come '// div [contiene (@id,' SignIn ')]
Di conseguenza, il codice per leggere il valore da ObjectRepository verrà incluso nello script Keywords.java
Per esempio File libreria: considera l'azione 'clic' in Keywords.java
public class Keywords { public void click(WebDriver driver, String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName, locatorType)).click(); } By getObject(String ObjectName, String locatorType) throws IOException{ //Object Repository is opened File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); //Properties file is read Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by class else if(locatorType.equalsIgnoreCase('ID')){ return By.Id(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } return null; } }
Repository di oggetti per i dati di test nei casi di test
Lascia che ti mostri un semplice esempio di come tutti i dati di test coinvolti nello script vengono esternalizzati, avendo il framework più generalizzato.
- Esternalizzazione dei dati di test dal modello di test case:
Allo stesso modo, i dati del test vengono letti anche dal file delle proprietà.
- Repository di oggetti per i dati di test nello script generale
Altri dati generali come il nome del browser, la posizione del driver eseguibile, il nome del file del test case, ecc. Possono essere esternalizzati in un repository separato.
Nell'esempio precedente, il parametro del browser è esternalizzato in un file delle proprietà - Basic.properties.
- Passaggio dei dati del test dalla suite TestNG:
TestData può anche essere passato da un file suite di TestNG al metodo.
Usiamo un tag chiamato nel file TestNG.xml appena sopra la classe in cui viene utilizzato.
Sintassi:
Una volta specificata la suite di test con il nome del parametro e il suo valore, le annotazioni vengono utilizzate nello script per specificare quale metodo utilizza il valore. Questo viene specificato utilizzando l'annotazione @Parameters.
Sintassi: @Parameters ({'value_to_be_passed'})
È anche possibile passare più parametri a un metodo come:
Sintassi:
@Parameters({“Chrome”}, {“ TestCase.xls”}, {“ chromedriver.exe”}) public void init(String Browser, String SheetName, String DriverLocation){ ….. …… ………. }
Tieni presente che questo non si riferisce a più valori dello stesso parametro, ma accetta solo più valori di parametri diversi.
# 5) Script del driver
Contiene la logica principale per leggere tutti i casi di test dal foglio excel del modello di caso di test ed esegue l'azione corrispondente leggendo dal file di libreria. Lo script è progettato in base al modello di test case creato.
Conclusione
Pertanto, è possibile creare e utilizzare un framework ibrido per automatizzare qualsiasi applicazione. Ciò, a sua volta, ridurrà le ore di manodopera impiegate nello script del codice di automazione, poiché un framework una volta creato può essere utilizzato per automatizzare più applicazioni.
cosa può fare il c ++
Allo stesso modo, i framework possono essere creati in base alle esigenze del progetto e utilizzati per scopi di automazione.
Ci auguriamo che la serie di tutorial informativi sul selenio ti sia piaciuta!
=> Controlla TUTTI i tutorial sul selenio qui.
Lettura consigliata
- Data Driven Framework in Selenium WebDriver utilizzando Apache POI
- Creazione di Selenium Framework e accesso ai dati di test da Excel - Selenium Tutorial # 21
- Introduzione a JUnit Framework e al suo utilizzo in Selenium Script - Selenium Tutorial # 11
- Come utilizzare TestNG Framework per la creazione di script di selenio - TestNG Selenium Tutorial # 12
- Test basato sui dati o parametrizzato con Spock Framework
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Come leggere o scrivere dati dal foglio Excel nel driver Web Selenium