keyword driven framework selenium with examples
Ovaj sveobuhvatni vodič o okviru vođenom ključnim riječima objašnjava razne komponente okvira i kako ga stvoriti u selenu:
Općenito, Framework je skup smjernica, koje će slijedeći dati korisne rezultate.
Okvir vođen ključnim riječima tehnika je za eksternaliziranje ključnih riječi / radnji koje se koriste u skripti u zasebnom Spremištu objekata (ovdje je to datoteka Java klase), što će dati pozitivne rezultate poput povećane ponovne upotrebe koda, smanjenog održavanja skripte, i veća prenosivost.
najbolji youtube u mp3 pretvarač besplatno
=> Ovdje pogledajte Vodič za početnike selena.
Što ćete naučiti:
- Što je okvir zasnovan na ključnim riječima u selenu?
- Komponente okvira za testiranje na temelju ključnih riječi
- Zaključak
Što je okvir zasnovan na ključnim riječima u selenu?
Evo video tutorijala:
Okvir vođen ključnim riječima - plan i dizajn
Stvaranje okvira vođenog ključnim riječima - I
Stvaranje okvira vođenog ključnim riječima - II
Komponente okvira za testiranje na temelju ključnih riječi
Slijedi popis komponenata koje su uključene u okvir vođen ključnim riječima.
- Biblioteka funkcija
- Excel list za pohranu ključnih riječi
- Predložak testnog slučaja za dizajn
- Spremište objekata za elemente / lokatore
- Testne skripte ili skripte za upravljački program
# 1) Biblioteka funkcija
To je obično datoteka Java klase u kojoj su definirane ključne riječi. Drugim riječima, sve radnje koje se izvode na aplikaciji definirane su kao korisnički definirane metode (koje su ključne riječi) u datoteci klase knjižnice.
Na primjer:
Pretpostavimo da naša aplikacija mora izvršiti sljedeće radnje u jednom ili više testnih slučajeva:
- Unesite URL.
- Kliknite element.
- Upišite u okvir za tekst.
Zatim, datoteka knjižnice kreira se definiranjem pojedinačnih metoda za sve ove radnje kako je prikazano u nastavku:
Ovdje stvaramo korisnički definiranu metodu za radnju - ‘Unesi URL’.
Naziv naveden za korisnički definiranu metodu naziva se a Ključna riječ.
Dakle, ovdje je 'enter_URL' ključna riječ
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
Parametri :
vozač - Vozač je inicijaliziran u glavnoj klasi i proslijeđen ovdje.
TestData - čita ga glavna klasa iz vanjskog izvora i predaje ovdje.
Funkcija :
Ovdje, driver.get () - je funkcija selena koja izvodi radnju ‘unos URL-a’.
Ključne riječi.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) Excel list za pohranu ključnih riječi
Sve korisnički definirane metode, zajedno s pojedinostima o njihovoj funkcionalnosti, trebaju se spomenuti u excel listu kako bi korisnik mogao razumjeti koju ključnu riječ sadrži datoteka knjižnice.
Excel list djeluje kao sažetak za datoteku knjižnice i postaje koristan tijekom stvaranja predloška testnog slučaja, gdje korisnik pregledava popis ključnih riječi excel lista i odabire odgovarajuću Ključnu riječ za svaku radnju u testnom slučaju.
Na primjer:
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) Predložak testnog slučaja za dizajn
Predložak za testni slučaj može se stvoriti u skladu s pogodnošću projekta. Ne postoji posebno pravilo za izradu predloška. Dizajniran je ovisno o tome koliko projektu treba okvir za eksternalizaciju. Eksternalizacija može biti samo za ključne riječi, ili su ponekad čak i podaci o ispitivanju i elementi korisničkog sučelja eksternalizirani.
Stvara se uzorak predloška testnog slučaja:
U danom primjeru predložak je stvoren na takav način da:
- Svaki list odgovara testnom slučaju, a posljednji je onaj koji sadrži 'popis ključnih riječi'.
- Svaki redak odgovara ispitnim koracima TC-a.
- Svaki je stupac parametri koji su potrebni za svaku radnju.
Kako ispuniti predložak ispitnog slučaja:
kako ddos ip besplatno
# 1) Na priloženom listu testnog slučaja pročitajte svaki testni slučaj i odgovarajuće korake ispitivanja. Za svaki testni korak pronađite radnju i pronađite odgovarajuću ključnu riječ iz datoteke knjižnice.
#dva) Nakon što se radnja podudara s ključnom riječi, ispunite predložak za testni slučaj prema redoslijedu testnog slučaja i po potrebi proslijedite ostale potrebne parametre.
# 4) Spremište objekata za lokatore
Lociranje korisničkog sučelja može se identificirati i njegova vrijednost može se spomenuti u predlošku testnog slučaja ili održavati u zasebnom spremištu objekata.
U donjem primjeru, svojstva identifikacije elementa
- Tip lokatora - Tehnika identifikacije koja se koristi je id, Xpath, ClassName itd.
- Vrijednost lokatora - Vrijednost tog atributa - Na primjer: Ako je njegov atribut Id, onda je vrijednost id i tako dalje.
Drugi način je održavanje u Spremištu objekata i spominjanje Imena objekta u Excel listu.
- Tip lokatora - Tehnika identifikacije koja se koristi je id, Xpath, ClassName itd.
- Naziv lokatora –Ime objekta iz spremišta objekta, gdje je pohranjena vrijednost lokatora. Na primjer, Ako spremište sadrži vrijednost Xpath elementa s ObjectName kao ‘Korisničko ime’, tada se LocatorName spominje kao ‘UserName’.
BILJEŠKA: Prema LocatorTypeu spomenutom u excel listu, njegova bi vrijednost trebala biti pohranjena u Spremište objekata. Na primjer: Ako je Xpath naveden kao LocatorType, tada bi Repozitorij trebao pohraniti Xpath tog elementa, ako je id naveden kao Locatortype, tada bi taj ID trebao biti pohranjen i tako dalje.
# 5) Test skripte ili skripte za upravljačke programe
Ovo je glavna skripta koja čita sav sadržaj excel lista i izvodi odgovarajuću radnju. Skripta je dizajnirana na temelju načina izrade predloška.
U našem slučaju, budući da svaki testni list djeluje kao testni slučaj, a svaki redak kao testni korak, skripta pokretačkog programa može se stvoriti iteracijom po listovima, a zatim u redovima.
U svakom pojedinom retku čita se ključna riječ i izvršava se njena odgovarajuća metoda u datoteci knjižnice itd. To se nastavlja sve dok se ne izvrše svi test koraci u test slučaju. Zatim se prelazi na sljedeći testni slučaj / list i izvršava ga.
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;testcaseZaključak
Dakle, kad se okvir jednom stvori, on se može ponovno koristiti za više testnih slučajeva / projekata. Na taj način smanjuje radne sate stvaranja skripte za automatizaciju za svaki projekt.
U sljedećem poglavlju razgovarat ćemo o stvaranju hibridnog okvira koji je kombinacija okvira upravljanog ključnim riječima i okvira upravljanog podacima.
=> Pročitajte seriju Easy Training za selen.
Preporučena literatura
- Data Driven Framework u Selenium WebDriver koristeći Apache POI
- Kako funkcionira testiranje na temelju podataka (primjeri QTP-a i selena)
- Uvod u JUnit Framework i njegovu upotrebu u skripti za selenij - Vodič za selen br. 11
- Što je hibridni okvir u selenu?
- Selen Pronađi element pomoću udžbenika teksta s primjerima
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Stvaranje okvira za selenij i pristupanje testnim podacima iz programa Excel - Tutorial br. 21
- Java 'this' ključna riječ: Vodič sa primjerima koda