what is hybrid framework selenium
Aquest tutorial informatiu explica què és un marc híbrid, els usos i els components del marc basat en selenium i com es pot implementar:
Què és un marc híbrid?
Hybrid Driven Framework és una combinació tant del marc basat en dades com basat en paraules clau.
Aquí, les paraules clau, així com les dades de la prova, s’externalitzen. Les paraules clau es mantenen en un fitxer de classe Java separat i les dades de prova es poden mantenir en un fitxer de propietats / fitxer excel / poden utilitzar el proveïdor de dades d’un marc TestNG.
=> Consulteu aquí per veure els tutorials de formació A-Z de Seleni aquí.
Què aprendreu:
millor programa per controlar la temperatura de l'ordinador
Introducció a Hybrid Framework
Aquí teniu el vídeo tutorial:
El marc Hybrid Driven és principalmentutilitzat per provadors manuals que no en tenenmolts coneixements de llenguatges de programació. Aquestes persones només poden mirar les paraules clau, les dades de prova, el dipòsit d'objectes i començar a crear el cas de prova immediatament, sense haver de codificar res en el marc.
Components de Hybrid Driven Framework
Els components de Hybrid Framework són similars als components de Keyword Driven Frameworkon totes les dades de prova, així com les paraules clau, s’externalitzen fent que l’escriptura aparegui de forma més generalitzada
- Biblioteca de funcions
- Full d'Excel per emmagatzemar paraules clau
- Plantilla de cas de prova de disseny
- Dipòsit d'objectes per a elements / localitzadors
- Prova scripts o scripts de controladors
# 1) Biblioteca de funcions
Es creen mètodes definits per l'usuari per a cada acció de l'usuari. En altres paraules, les paraules clau es creen al fitxer de la biblioteca.
Per exemple: Prenguem una instància per automatitzar els casos de prova següents.
Cas de prova núm | Descripció | Passos de prova | Resultat Esperat | ||
---|---|---|---|---|---|
AssertElement | xpath | // div (conté (@ id, 'usericon')) | Es mostra | ||
1 | Verifiqueu que hi hagi el logotip d’Amazon | 1. Introduïu l'URL: https://www.amazon.com | El logotip d’Amazon s’ha de mostrar a la pàgina inicial | ||
2 | Verifiqueu l'inici de sessió vàlid | 1. Introduïu l'URL: https://www.amazon.com 2. Feu clic a l'enllaç 'Inici de sessió' 3. Introduïu un correu electrònic vàlid 4. Feu clic a continua 5. Introduïu una contrasenya vàlida 6. Feu clic a Iniciar sessió | La icona d'usuari hauria d'estar present a la pàgina d'inici | ||
3 | Accés incorrecte | 1. Introduïu l'URL: https://www.amazon.com 2. Feu clic a l'enllaç 'Inici de sessió' 3. Introduïu un correu electrònic no vàlid 4. Feu clic a continua | Aquest missatge d'error ha de contenir 'no es pot trobar un compte' |
En primer lloc, s’analitzen els casos de prova i els seus passos de prova i s’anoten les seves accions.
Digueu, a TC 01: Verifiqueu que hi hagi el logotip d'Amazon: les accions de l'usuari seran: Introduïu l'URL
En TC 02: Verifiqueu l'inici de sessió vàlid: les accions de l'usuari són Introduïu URL, feu clic, escriviu
En TC03: Verifiqueu l'inici de sessió no vàlid: les accions de l'usuari són Introduïu URL, feu clic, escriviu
Ara, el fitxer de la biblioteca es crearà amb les paraules clau definides per a cada acció de la manera següent:
Preguntes i respostes d’entrevistes a la base de dades d’oracle
Keywords.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) Full d'Excel per emmagatzemar paraules clau
Les paraules clau que es creen al fitxer de la biblioteca s’emmagatzemen en un full Excel amb la seva descripció perquè tothom que faci servir aquest marc entengui.
# 3) Plantilla de cas de prova de disseny
Es crea una plantilla de cas de prova per al marc. No hi ha cap plantilla específica a seguir. Segons el marc híbrid, les dades de prova i les paraules clau s’han d’externalitzar. Per tant, es crea una plantilla en conseqüència. Per exemple:
Per al cas de prova 2 - Verifiqueu l'inici de sessió vàlid
Passos de prova | Tipus de localitzador | Valor del localitzador | Dades de prova | AssertionType | Valor esperat |
---|---|---|---|---|---|
enter_URL | https://www.amazon.com | ||||
Feu clic a | xpath | // div (conté (@ id, 'Inici de sessió')) | |||
escriure | xpath | // div (conté (@ id, 'correu electrònic')) | test@gmail.com | ||
Feu clic a | xpath | // div (conté (@ id, 'continua')) | |||
escriure | identificador | contrasenya | Contrasenya @ 123 | ||
Feu clic a | identificador | Inici de sessió |
De la mateixa manera, es completen els passos de prova per a cada cas de prova en un full separat.
# 4) Dipòsit d'objectes per a elements
Es manté un dipòsit independent per a tots els elements de la pàgina web. Cada WebElement es refereix amb un nom seguit del seu valor en un dipòsit d'objectes (en aquest cas, es tracta d'un fitxer de propietats). La plantilla de cas de prova mantindrà el nom de l’objecte i el seu valor s’obté del dipòsit de la manera següent:
Aquí, LoginLink és el nom de l’objecte i el seu valor es llegeix des de OR.properties com a ‘// div (conté (@id,‘ Inicia sessió ’)))
En conseqüència, el codi per llegir el valor de ObjectRepository s'inclourà a l'script Keywords.java
Per exemple Fitxer de la biblioteca: considereu l'acció de 'clic' a 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; } }
Dipòsit d'objectes per a dades de prova en casos de prova
Deixeu-me mostrar-vos un exemple senzill de com s’externalitzen totes les dades de prova que participen en l’escriptura, tenint el marc més generalitzat.
- Externalització de les dades de prova de la plantilla de cas de prova:
De la mateixa manera, les dades de proves també es llegeixen des del fitxer de propietats.
- Dipòsit d'objectes per a dades de prova en script general
Altres dades generals, com ara el nom del navegador, la ubicació del controlador executable, el nom del fitxer del cas de prova, etc. també es poden externalitzar en un dipòsit independent.
A l'exemple anterior, el paràmetre del navegador s'externalitza en un fitxer de propietats: Basic.properties.
- Passant les dades de prova de TestNG Suite:
TestData també es pot passar des d'un fitxer suite de TestNG al mètode.
Utilitzem una etiqueta anomenada al fitxer TestNG.xml just a sobre de la classe on s’utilitza.
Sintaxi:
Un cop especificat el conjunt de proves amb el nom del paràmetre i el seu valor, s'utilitzen anotacions a l'script per especificar quin mètode utilitza el valor. Això s’especifica mitjançant l’anotació @Parameters.
plsql preguntes i respostes de l'entrevista pdf
Sintaxi: @Parameters ({“value_to_be_passed”})
També es poden passar diversos paràmetres a un mètode com:
Sintaxi:
@Parameters({“Chrome”}, {“ TestCase.xls”}, {“ chromedriver.exe”}) public void init(String Browser, String SheetName, String DriverLocation){ ….. …… ………. }
Tingueu en compte que això no fa referència a diversos valors del mateix paràmetre, sinó que només pren diversos valors de paràmetres diferents.
# 5) Script de controladors
Conté la lògica principal per llegir tots els casos de prova del full Excel de plantilla de casos de prova i realitza l'acció corresponent llegint des del fitxer de la biblioteca. El guió està dissenyat en funció de la plantilla de cas de prova creada.
Conclusió
Per tant, es pot crear i utilitzar un marc híbrid per automatitzar qualsevol aplicació. Al seu torn, això reduirà les hores laborals dedicades a la creació de scripts del codi d’automatització, ja que un framework un cop creat es pot utilitzar per automatitzar diverses aplicacions.
De la mateixa manera, es poden crear marcs segons les necessitats del projecte i utilitzar-los amb finalitats d'automatització.
Esperem que us hagi agradat la sèrie de tutorials informatius sobre Selenium.
=> Consulteu TOTS els tutorials de Selenium aquí.
Lectura recomanada
- Marc basat en dades a Selenium WebDriver mitjançant Apache POI
- Creació de Selenium Framework i accés a les dades de proves des d'Excel: tutorial núm. 21 de Selenium
- Introducció a JUnit Framework i el seu ús a Selenium Script - Selenium Tutorial # 11
- Com s'utilitza el marc TestNG per crear scripts de Selenium - Tutorial # 12 de TestNG Selenium
- Proves basades en dades o parametritzades amb Spock Framework
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Com llegir o escriure dades des d'un full d'Excel al controlador web Selenium