keyword driven framework selenium with examples
Ta izčrpna vadnica o ogrodju, ki ga poganjajo ključne besede, pojasnjuje različne komponente okvira in kako ga ustvariti v selenu:
Na splošno je okvir sklop smernic, ki bodo, če bodo upoštevane, dali koristne rezultate.
Okvir, ki ga poganjajo ključne besede, je tehnika eksternalizacije ključnih besed / dejanj, ki se uporabljajo v skriptu v ločenem skladišču predmetov (tukaj gre za datoteko razreda Java), kar bo dalo pozitivne rezultate, kot so večja ponovna uporaba kode, manjše vzdrževanje skriptov, in večja prenosljivost.
=> Tukaj si oglejte Vodnik za začetnike selena.
Kaj se boste naučili:
- Kaj je okvir za upravljanje s ključnimi besedami v selenu?
- Sestavni deli okvira za testiranje na podlagi ključnih besed
- Zaključek
Kaj je okvir za upravljanje s ključnimi besedami v selenu?
Tu so video vaje:
Okvir na podlagi ključnih besed - načrt in oblikovanje
Ustvarjanje dela, ki temelji na ključnih besedah - I
Ustvarjanje dela, ki temelji na ključnih besedah - II
Sestavni deli okvira za testiranje na podlagi ključnih besed
Spodaj je seznam komponent, ki sodelujejo v okviru, ki temelji na ključnih besedah.
- Knjižnica funkcij
- Excel Sheet za shranjevanje ključnih besed
- Predloga za testni primer oblikovanja
- Skladišče predmetov za elemente / lokatorje
- Preskusne skripte ali gonilniške skripte
# 1) Knjižnica funkcij
Običajno gre za datoteko razreda Java, v kateri so definirane ključne besede. Z drugimi besedami, vsa dejanja, ki se izvajajo v aplikaciji, so v datoteki razreda knjižnice definirana kot uporabniško določene metode (ki so ključne besede).
Na primer:
Predpostavimo, da mora naša aplikacija v enem ali več testnih primerih izvesti naslednja dejanja:
- Vnesite URL.
- Kliknite element.
- Vnesite v besedilno polje.
Potem, datoteka knjižnice je ustvarjena z definiranjem posameznih metod za vsa ta dejanja, kot je prikazano spodaj:
Tu ustvarjamo uporabniško določeno metodo za dejanje - ‘Enter URL’.
Ime, določeno za uporabniško določeno metodo, se imenuje a Ključna beseda.
kako zagnati datoteko jnlp v operacijskem sistemu Windows 10
Tu je torej 'enter_URL' ključna beseda
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }Parametri :
voznik - Gonilnik je inicializiran v glavnem razredu in je poslan sem.
TestData - ga glavni razred bere iz zunanjega vira in ga posreduje sem.
Funkcija :
Tukaj, driver.get () - je funkcija selena, ki izvaja dejanje 'vnesite URL'.
Ključne besede.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) Excelov list za shranjevanje ključnih besed
Vse uporabniško določene metode, skupaj s podrobnostmi o njihovi funkcionalnosti, morajo biti omenjene v Excelovem listu, da bo uporabnik lahko razumel, katero ključno besedo vsebuje datoteka knjižnice.
Excel list deluje kot povzetek knjižnične datoteke in postane uporaben med ustvarjanjem predloge testnega primera, kjer uporabnik pogleda seznam ključnih besed excel lista in izbere ustrezno ključno besedo za vsako dejanje v testnem primeru.
Na primer:

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) Predloga za testni primer
Predlogo za testni primer lahko ustvarite glede na priročnost projekta. Za izdelavo predloge ni posebnega pravila. Zasnovan je glede na to, koliko projekt potrebuje okvir za eksternalizacijo. Zunanja obdelava je lahko samo za ključne besede, včasih pa so tudi preskusni podatki in elementi uporabniškega vmesnika tudi zunanji.
Ustvari se vzorčna predloga testnega primera:
V danem primeru je predloga ustvarjena tako, da:
- Vsak list ustreza testnemu primeru, zadnji list pa je tisti, ki vsebuje 'seznam ključnih besed'.
- Vsaka vrstica ustreza preskusnim korakom TC.
- Vsak stolpec so parametri, ki so potrebni za posamezno dejanje.

Kako izpolniti predlogo testnega primera:
# 1) Na priloženem listu testnih primerov preberite vsak testni primer in ustrezne korake preskusa. Za vsak preizkusni korak poiščite dejanje in poiščite ustrezno ključno besedo iz datoteke knjižnice.
#two) Ko se dejanje ujema s ključno besedo, izpolnite predlogo testnega primera v vrstnem redu testnega primera in po potrebi posredujte tudi druge zahtevane parametre.

# 4) Repozitorij predmetov za lokatorje
Lokator uporabniškega vmesnika je mogoče prepoznati in njegovo vrednost je mogoče omeniti v predlogi za testni primer ali vzdrževati v ločenem repozitoriju objektov.
V spodnjem primeru so lastnosti identifikacije elementa
- Locator Type - Uporabljena identifikacijska tehnika je id, Xpath, ClassName itd.
- Locator Vrednost - Vrednost tega atributa - Na primer: Če je njegov atribut Id, potem je vrednost id in tako naprej.

Drug način je vzdrževanje v skladišču objektov in omenjanje imena predmeta v Excelovem listu.
- Locator Type - Uporabljena identifikacijska tehnika je id, Xpath, ClassName itd.
- Ime lokatorja –Ime predmeta iz repozitorija Object, kjer je shranjena vrednost lokatorja. Na primer, Če ima repozitorij vrednost Xpath elementa z ObjectName kot 'Username', je LocatorName omenjen kot 'UserName'.
OPOMBA: V skladu z LocatorType, omenjenim na Excelovem listu, je treba njegovo vrednost shraniti v Object Repository. Na primer: Če je Xpath določen kot LocatorType, mora shramba shraniti Xpath tega elementa, če je id določen kot Locatortype, je treba ID shraniti itd.

kaj pomeni privzeti prehod ni na voljo
# 5) Preizkusite skripte ali gonilniške skripte
To je glavni skript, ki prebere vso vsebino lista excel in izvede ustrezno dejanje. Skript je zasnovan na podlagi načina izdelave predloge.
V našem primeru, ker vsak testni list deluje kot testni primer, vsaka vrstica pa kot preskusni korak, lahko gonilniški skript ustvarite s ponovitvijo po listih in nato vrsticah.
V vsaki posamezni vrstici se prebere ključna beseda in izvede ustrezna metoda v datoteki knjižnice itd. To se nadaljuje, dokler se ne izvedejo vsi testni koraki v testnem primeru. Nato nadaljuje do naslednjega testnega primera / lista in ga izvede.

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ček
Ko je okvir enkrat ustvarjen, ga je mogoče ponovno uporabiti za več testnih primerov / projektov. Na ta način zmanjša delovne ure ustvarjanja skripte za avtomatizacijo za vsak projekt.
V naslednjem poglavju bomo razpravljali o ustvarjanju hibridnega pogona, ki je kombinacija okvira, ki ga poganjajo ključne besede, in okvira, ki ga poganjajo podatki.
=> Preberite serijo Easy Selenium Training Series.
Priporočeno branje
- Podatkovni okvir v programu Selenium WebDriver z uporabo Apache POI
- Kako deluje preskušanje na podlagi podatkov (primera QTP in selena)
- Uvod v JUnit Framework in njegovo uporabo v skriptu selena - Vadnica za selen # 11
- Kaj je hibridni okvir v selenu?
- Vadnica za iskanje selena z besedilom s primeri
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri
- Ustvarjanje okvirja selena in dostop do testnih podatkov iz Excela - Vadnica za selen št. 21
- Java 'this' ključna beseda: Vadnica s primeri kode