keyword driven framework selenium with examples
Tento komplexný výukový program pre rámec riadený kľúčovými slovami vysvetľuje rôzne komponenty rámca a ako ho vytvoriť v seléne:
Rámec je vo všeobecnosti súbor pokynov, ktoré, ak sa budú dodržiavať, prinesú prospešné výsledky.
Rámec riadený kľúčovými slovami je technika na externalizáciu kľúčových slov / akcií, ktoré sa používajú v skripte v samostatnom úložisku objektov (tu sa jedná o súbor triedy Java), ktorý prinesie pozitívne výsledky, ako je zvýšená opätovná použiteľnosť kódu, znížená údržba skriptu, a vyššia prenosnosť.
=> Tu sa pozrite na príručku pre začiatočníkov selénu.
kde nájsť kľúč zabezpečenia siete na smerovači -
Čo sa dozviete:
Čo je rámec riadený kľúčovými slovami v seléne?
Tu sú videonávody:
Rámec riadený kľúčovými slovami - plán a dizajn
Vytvorenie časti rámca riadeného kľúčovým slovom - I
Vytvorenie časti rámca riadeného kľúčovým slovom - II
Súčasti rámca na testovanie kľúčových slov
Ďalej je uvedený zoznam komponentov, ktoré sú zapojené do rámca riadeného kľúčovými slovami.
- Knižnica funkcií
- Tabuľka Excel na ukladanie kľúčových slov
- Dizajn šablóny testovacieho prípadu
- Objektové úložisko pre prvky / lokátory
- Testovacie skripty alebo skript ovládača
# 1) Knižnica funkcií
Toto je zvyčajne súbor triedy Java, kde sú definované kľúčové slová. Inými slovami, všetky akcie, ktoré sa vykonávajú s aplikáciou, sú definované ako používateľom definované metódy (ktoré sú kľúčovými slovami) v súbore triedy knižnice.
Napríklad:
Predpokladajme, že naša aplikácia musí vykonať nasledujúce akcie v jednom alebo viacerých testovacích prípadoch:
- Zadajte URL.
- Kliknite na prvok.
- Zadajte textové pole.
Potom, súbor knižnice sa vytvorí definovaním jednotlivých metód pre všetky tieto akcie, ako je uvedené nižšie:
Tu vytvárame používateľom definovanú metódu akcie - „Zadajte adresu URL“.
Názov poskytovaný používateľom definovanej metóde sa nazýva a Kľúčové slovo.
Takže tu je „enter_URL“ kľúčové slovo
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
Parametre :
vodič - Vodič je inicializovaný v hlavnej triede a je odovzdaný tu.
TestData - je čítaná z externého zdroja hlavnou triedou a odovzdaná sem.
Funkcia :
Tu, driver.get () - je funkcia selénu, ktorá vykonáva akciu „zadajte adresu URL“.
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 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) Tabuľka programu Excel na ukladanie kľúčových slov
Všetky používateľom definované metódy spolu s podrobnosťami o ich funkčnosti by mali byť uvedené v hárku programu Excel, aby používateľ mohol pochopiť, aké kľúčové slovo obsahuje súbor knižnice.
Tabuľka programu Excel slúži ako súhrn pre súbor knižnice a stáva sa užitočnou pri vytváraní šablóny testovacieho prípadu, kde si užívateľ pozrie zoznam kľúčových slov listu excelového listu a vyberie príslušné kľúčové slovo pre každú akciu v testovacom prípade.
Napríklad:
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) Dizajn šablóny testovacieho prípadu
Šablónu testovacieho prípadu je možné vytvoriť podľa pohodlia projektu. Neexistuje žiadne konkrétne pravidlo na vytvorenie šablóny. Je navrhnutý v závislosti od toho, ako veľmi je potrebné, aby rámec externalizoval. Externalizácia môže byť iba pre kľúčové slová, alebo niekedy sú externalizované aj testovacie údaje a prvky používateľského rozhrania.
čo môžem urobiť s c ++
Vytvorí sa vzorová šablóna testovacieho prípadu:
V danom príklade je šablóna vytvorená takým spôsobom, že:
- Každý hárok zodpovedá testovaciemu prípadu a posledný hárok obsahuje ten, ktorý obsahuje ‘zoznam kľúčových slov’.
- Každý riadok zodpovedá testovacím krokom TC.
- Každý stĺpec predstavuje parametre, ktoré sú potrebné pre každú akciu.
Ako vyplniť šablónu testovacieho prípadu:
# 1) Na poskytnutom hárku s testovacími prípadmi si prečítajte každý testovací prípad a príslušné testovacie kroky. Pre každý testovací krok vyhľadajte akciu a vyhľadajte príslušné kľúčové slovo zo súboru knižnice.
#dva) Akonáhle je akcia v zhode s kľúčovým slovom, vyplňte šablónu testovacieho prípadu v poradí testovacieho prípadu a podľa potreby odovzdajte aj ďalšie požadované parametre.
# 4) Objektové úložisko pre lokátorov
Vyhľadávač UI je možné identifikovať a jeho hodnotu je možné uviesť v šablóne testovacieho prípadu alebo udržiavať v samostatnom úložisku objektov.
V nasledujúcom príklade sú identifikačné vlastnosti prvku
najlepší softvér na zlepšenie výkonu počítača
- Typ lokátora - Použitá identifikačná technika je id, Xpath, ClassName atď.
- Hodnota lokátora - Hodnota tohto atribútu - Napríklad: Ak je jeho atribút Id, potom hodnota id a tak ďalej.
Ďalším spôsobom je udržiavať v úložisku objektov a uviesť názov objektu v hárku programu Excel.
- Typ lokátora - Použitá identifikačná technika je id, Xpath, ClassName atď.
- Meno lokátora –Názov objektu z úložiska objektov, kde je uložená hodnota lokátora. Napríklad, Ak úložisko obsahuje hodnotu Xpath prvku s ObjectName ako „Username“, potom bude LocatorName uvedené ako „UserName“.
POZNÁMKA: Podľa LocatorType uvedeného v excelovom hárku by mala byť jeho hodnota uložená v úložisku objektov. Napríklad: Ak je Xpath zadaný ako LocatorType, potom by malo úložisko uložiť Xpath tohto prvku, ak je ID zadané ako Locatortype, potom by malo byť ID uložené a podobne.
# 5) Testovacie skripty alebo skript ovládača
Toto je hlavný skript, ktorý číta celý obsah hárka programu Excel a vykonáva príslušnú akciu. Skript je navrhnutý na základe toho, ako je vytvorená šablóna.
V našom prípade, pretože každý testovací hárok funguje ako testovací prípad a každý riadok ako krok testu, je možné skript ovládača vytvoriť iteráciou naprieč hárkami a potom riadkami.
V každom konkrétnom riadku sa načíta kľúčové slovo a vykoná sa jeho zodpovedajúca metóda v súbore knižnice atď. Toto pokračuje, kým sa nevykonajú všetky kroky testu v testovacom prípade. Potom prejde na ďalší testovací prípad / hárok a vykoná ho.
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;testcaseZáver
Akonáhle je teda rámec vytvorený, je znovu použiteľný pre viac testovacích prípadov / projektov. Týmto spôsobom znižuje počet odpracovaných hodín pri vytváraní automatizačného skriptu pre každý projekt.
V nasledujúcej kapitole sa budeme zaoberať vytvorením hybridného riadeného rámca, ktorý je kombináciou rámca riadeného kľúčovým slovom a rámca založeného na údajoch.
=> Prečítajte si sériu Easy Selenium Training Series.
Odporúčané čítanie
- Rámec riadený dátami v selenovom WebDriveri pomocou POI Apache
- Ako funguje testovanie na základe dát (príklady QTP a selénu)
- Úvod do rámca JUnit a jeho použitie v selénovom skripte - selén výučba # 11
- Čo je hybridný rámec v seléne?
- Sprievodca hľadaním prvkov selénom podľa výučby s príkladmi
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Vytváranie rámca selénu a prístup k testovacím údajom z Excelu - Výučba selénu č. 21
- Java „toto“ kľúčové slovo: Výukový program s príkladmi kódu