keyword driven framework selenium with examples
Acest tutorial cuprinzător despre cadru bazat pe cuvinte cheie explică diferite componente ale cadrului și cum se creează unul în seleniu:
În general, Framework este un set de linii directoare, care atunci când sunt urmate vor da rezultate benefice.
Cadrul bazat pe cuvinte cheie este o tehnică de externalizare a cuvintelor cheie / acțiunilor care sunt folosite în script într-un depozit de obiecte separat (aici este un fișier Java Class), care va oferi rezultate pozitive, cum ar fi reutilizarea sporită a codului, întreținerea redusă a scriptului, și portabilitate mai mare.
=> Aruncați o privire la Ghidul pentru începători Selenium aici.
Ce veți învăța:
- Ce este un cadru bazat pe cuvinte cheie în seleniu?
- Componentele cadrului de testare bazat pe cuvinte cheie
- Concluzie
Ce este un cadru bazat pe cuvinte cheie în seleniu?
Iată tutorialele video:
Cadru bazat pe cuvinte cheie - Plan și proiectare
Crearea cadrului bazat pe cuvinte cheie - partea I
comenzi unix shell scripting cu exemple
Crearea cadrului bazat pe cuvinte cheie Partea II
Componentele cadrului de testare bazat pe cuvinte cheie
Mai jos sunt prezentate lista componentelor care sunt implicate în cadrul bazat pe cuvinte cheie.
- Biblioteca de funcții
- Foaie Excel pentru a stoca cuvinte cheie
- Șablon de caz de testare de proiectare
- Depozit de obiecte pentru elemente / localizatori
- Testează Scripturi sau Driver Driver
# 1) Biblioteca de funcții
Acesta este de obicei un fișier Java Class în care sunt definite cuvintele cheie. Cu alte cuvinte, toate acțiunile care sunt efectuate pe aplicație sunt definite ca metode definite de utilizator (care sunt cuvinte cheie) în fișierul clasei de bibliotecă.
De exemplu:
Să presupunem că aplicația noastră trebuie să efectueze următoarele acțiuni într-unul sau mai multe cazuri de testare:
- Introduceți adresa URL.
- Faceți clic pe un element.
- Introduceți o casetă text.
Atunci, fișierul bibliotecă este creat prin definirea metodelor individuale pentru toate aceste acțiuni așa cum se arată mai jos:
Aici, creăm o metodă definită de utilizator pentru acțiune - „Introduceți adresa URL”.
Numele furnizat pentru metoda definită de utilizator se numește a Cuvânt cheie.
Deci, aici „enter_URL” este Cuvântul cheie
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
Parametrii :
conducător auto - Șoferul este inițializat în clasa principală și este transmis aici.
TestData - este citit de la sursa externă de către Clasa principală și a fost transmis aici.
Funcţie :
Aici, driver.get () - este funcția Selenium care efectuează acțiunea „introduceți URL”.
Cuvinte cheie.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) Foaie Excel pentru a stoca cuvinte cheie
Toate metodele definite de utilizator împreună cu detaliile funcționalității sale trebuie menționate în foaia Excel, astfel încât utilizatorul să poată înțelege ce Cuvânt cheie deține fișierul bibliotecă.
Foaia Excel acționează ca un rezumat pentru fișierul bibliotecii și devine utilă la crearea șablonului cazului de test, în care utilizatorul privește lista de cuvinte cheie a foii Excel și alege cuvântul cheie corespunzător pentru fiecare acțiune din cazul de testare.
De exemplu:
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) Șablon de caz de testare a proiectării
Șablonul de caz de testare poate fi creat în funcție de comoditatea proiectului. Nu există o regulă specială pentru a crea un șablon. Este conceput în funcție de cât de mult are nevoie proiectul de cadru pentru a se exterioriza. Externalizarea ar putea fi doar pentru cuvinte cheie sau uneori chiar datele de testare și elementele de interfață sunt, de asemenea, externalizate.
cel mai bun downloader YouTube gratuit pentru Windows 10
Se creează un eșantion de șablon de caz de testare:
În exemplul dat, șablonul este creat în așa fel încât:
- Fiecare foaie corespunde unui caz de testare, iar ultima foaie este cea care deține „lista cuvintelor cheie”.
- Fiecare rând corespunde etapelor de testare ale unui TC.
- Fiecare coloană reprezintă parametrii necesari pentru fiecare acțiune.
Cum se completează șablonul cazului de testare:
# 1) Din foaia de caz furnizată, citiți fiecare caz de testare și etapele de testare corespunzătoare. Pentru fiecare etapă de testare, localizați acțiunea și găsiți cuvântul cheie corespunzător din fișierul bibliotecă.
#Două) Odată ce acțiunea este potrivită cu cuvântul cheie, completați șablonul cazului de testare în ordinea cazului de testare și treceți și ceilalți parametri necesari, după caz.
# 4) Depozit de obiecte pentru localizatori
Localizatorul UI poate fi identificat și valoarea acestuia poate fi menționată fie în șablonul de caz de testare, fie menținută într-un depozit de obiecte separat.
În exemplul de mai jos, proprietățile de identificare a elementelor
- Tipul de localizare - Tehnica de identificare utilizată este id, Xpath, ClassName etc.
- Valoarea localizatorului - Valoarea acestui atribut - De exemplu: Dacă atributul său Id, atunci valoarea id și așa mai departe.
Un alt mod este să mențineți în depozitul de obiecte și să menționați numele obiectului în foaia Excel.
- Tipul de localizare - Tehnica de identificare utilizată este id, Xpath, ClassName etc.
- Numele localizatorului –Numele obiectului din depozitul de obiecte unde este stocată valoarea localizatorului. De exemplu, Dacă depozitul deține valoarea Xpath a unui element cu Numele obiectului ca „Nume utilizator”, atunci Numele Locator este menționat ca „Numele utilizatorului”.
NOTĂ: Conform LocatorType menționat în foaia Excel, valoarea sa ar trebui să fie stocată în Depozitul de obiecte. De exemplu: Dacă Xpath este specificat ca LocatorType, atunci Depozitul ar trebui să stocheze Xpath a acelui element, dacă ID-ul este specificat ca Locatortype, atunci ID-ul ar trebui să fie stocat și așa mai departe.
# 5) Testarea scripturilor sau a driverului
Acesta este scriptul principal care citește tot conținutul foii Excel și efectuează acțiunea corespunzătoare. Scriptul este conceput pe baza modului în care este creat șablonul.
În cazul nostru, deoarece fiecare foaie de testare acționează ca un caz de testare și fiecare rând ca o etapă de testare, scriptul driverului poate fi creat prin iterarea peste foi și apoi rânduri.
În fiecare rând particular, se citește un cuvânt cheie și se execută metoda corespunzătoare din fișierul bibliotecă și așa mai departe. Aceasta continuă până când se execută toți pașii de testare în cazul de testare. Apoi, trece la următorul caz / foaie de test și îl execută.
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;testcaseConcluzie
Astfel, odată creat un cadru, acesta poate fi reutilizat pentru mai multe cazuri / proiecte de testare. În acest fel, reduce orele de muncă pentru crearea unui script de automatizare pentru fiecare proiect.
În capitolul următor, vom discuta despre crearea cadrului bazat pe hibrid, care este o combinație a cadrului bazat pe cuvinte cheie și cadru bazat pe date.
=> Citiți seria Easy Training Selenium.
Lectură recomandată
- Cadru bazat pe date în Selenium WebDriver folosind Apache POI
- Cum funcționează testarea bazată pe date (exemple de QTP și seleniu)
- Introducere în JUnit Framework și utilizarea sa în Selenium Script - Selenium Tutorial # 11
- Ce este cadrul hibrid în seleniu?
- Tutorial Selenium Find Element By Text cu exemple
- 30+ Cele mai bune tutoriale despre seleniu: învățați seleniul cu exemple reale
- Crearea cadrului Selenium și accesarea datelor de testare din Excel - Tutorial Selenium # 21
- Cuvânt cheie Java „acest”: Tutorial cu exemple de cod