keyword driven framework selenium with examples
Anahtar Kelime Odaklı Çerçeve Üzerine Bu Kapsamlı Eğitim, Çerçevenin Çeşitli Bileşenlerini ve Selenium'da Nasıl Oluşturulacağını Açıklar:
Genel olarak Çerçeve, takip edildiğinde faydalı sonuçlar verecek bir dizi kılavuzdur.
Anahtar Kelime Odaklı çerçeve, kodda kullanılan anahtar kelimeleri / eylemleri ayrı bir Nesne Deposunda (burada bir Java Sınıfı dosyasıdır) dışsallaştırmak için bir tekniktir ve bu, kodun yeniden kullanılabilirliğinin artması, komut dosyasının bakımının azaltılması, ve daha yüksek taşınabilirlik.
=> Selenium Yeni Başlayanlar Kılavuzuna Bir Göz Atın.
Ne öğreneceksin:
- Selenium'da Anahtar Kelime Odaklı Çerçeve Nedir?
- Anahtar Kelime Odaklı Test Çerçevesinin Bileşenleri
- Sonuç
Selenium'da Anahtar Kelime Odaklı Çerçeve Nedir?
İşte Video Eğitimleri:
Anahtar Kelime Odaklı Çerçeve - Planlama ve Tasarım
Anahtar Kelime Odaklı Çerçeve Bölümünün Oluşturulması - I
Anahtar Kelime Odaklı Çerçeve Bölümünün Oluşturulması - II
Anahtar Kelime Odaklı Test Çerçevesinin Bileşenleri
Aşağıda, Anahtar Kelime Odaklı Çerçeve ile ilgili bileşenlerin listesi verilmiştir.
- İşlev Kitaplığı
- Anahtar Kelimeleri depolamak için Excel Sayfası
- Tasarım Testi Durum Şablonu
- Öğeler / Konumlandırıcılar için Nesne Deposu
- Test Komut Dosyalarını veya Sürücü Komut Dosyasını
# 1) İşlev Kitaplığı
Bu genellikle Anahtar Kelimelerin tanımlandığı bir Java Sınıfı dosyasıdır. Başka bir deyişle, uygulama üzerinde gerçekleştirilen tüm eylemler, kitaplık sınıf dosyasında kullanıcı tanımlı yöntemler (anahtar kelimelerdir) olarak tanımlanır.
en iyi youtube'dan mp3'e dönüştürücü nedir?
Örneğin:
Uygulamamızın bir veya daha fazla test durumunda aşağıdaki eylemleri gerçekleştirmesi gerektiğini varsayalım:
- URL'yi girin.
- Bir öğeye tıklayın.
- Bir metin kutusu yazın.
Sonra, kütüphane dosyası, aşağıda gösterildiği gibi tüm bu eylemler için ayrı yöntemler tanımlanarak oluşturulur:
Burada, işlem için kullanıcı tanımlı bir yöntem oluşturuyoruz - 'URL Girin'.
Kullanıcı tanımlı yöntem için sağlanan ad a Anahtar kelime.
Dolayısıyla, burada 'enter_URL' Anahtar Kelime
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }Parametreler :
sürücü - Sürücü, Ana Sınıfta başlatılır ve buradan geçer.
Test verisi - Ana Sınıf tarafından harici kaynaktan okunur ve buraya iletilir.
Fonksiyon :
Buraya, driver.get () - Selenium'un 'URL gir' eylemini gerçekleştiren işlevidir.
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) Anahtar Kelimeleri Saklamak İçin Excel Sayfası
Tüm kullanıcı tanımlı yöntemler, işlevsellik ayrıntılarıyla birlikte excel sayfasında belirtilmelidir, böylece kullanıcı, kütüphane dosyasının hangi Anahtar Kelimeyi içerdiğini anlayabilir.
Excel sayfası, kitaplık dosyası için bir özet görevi görür ve kullanıcının excel sayfası anahtar kelime listesine baktığı ve test senaryosundaki her eylem için karşılık gelen Anahtar Kelimeyi seçtiği test senaryosu oluştururken kullanışlı hale gelir.
assert c ++ nasıl kullanılır
Örneğin:

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) Tasarım Testi Durum Şablonu
Test Vakası Şablonu proje uygunluğuna göre oluşturulabilir. Şablon oluşturmak için belirli bir kural yoktur. Projenin çerçevenin dışsallaştırılmasına ne kadar ihtiyaç duyduğuna bağlı olarak tasarlanır. Dışsallaştırma yalnızca Anahtar Kelimeler için olabilir veya bazen Test Verileri ve UI Öğeleri de dışsallaştırılır.
Örnek bir test senaryosu oluşturulur:
Verilen örnekte, şablon şu şekilde oluşturulmuştur:
- Her sayfa bir Test Durumuna karşılık gelir ve son sayfa 'Anahtar Kelimeler listesi' ni içeren sayfadır.
- Her sıra, bir TC'nin test adımlarına karşılık gelir.
- Her Sütun, her eylem için gerekli olan parametrelerdir.

java 8 yeni özellik mülakat soruları
Test Örneği Şablonu Nasıl Doldurulur:
# 1) Verilen test senaryosundan her bir test senaryosunu ve ilgili test adımlarını okuyun. Her test adımı için işlemi bulun ve kitaplık dosyasından karşılık gelen anahtar kelimeyi bulun.
#iki) Eylem anahtar kelimeyle eşleştikten sonra, test senaryosu sırasındaki test senaryosu şablonunu doldurun ve gerektiğinde diğer gerekli parametreleri de iletin.

# 4) Konumlayıcılar İçin Nesne Deposu
UI konumlandırıcı tanımlanabilir ve değeri test senaryosu şablonunda belirtilebilir veya ayrı bir Nesne Deposunda tutulabilir.
Aşağıdaki örnekte, eleman tanımlama özellikleri
- Bulucu Türü - Kullanılan tanımlama tekniği id, Xpath, ClassName, vs.'dir.
- Konum Belirleyici Değeri - Bu özelliğin değeri - Örneğin: Id özniteliği ise, id'nin değeri vb.

Diğer bir yol da Nesne Deposunda tutmak ve Excel Sayfasında Nesne Adından bahsetmektir.
- Bulucu Türü - Kullanılan tanımlama tekniği id, Xpath, ClassName, vs.'dir.
- Bulucu Adı - Konum belirleyici değerinin saklandığı Nesne havuzundaki Nesnenin adı. Örneğin, Depo, NesneAdı 'Kullanıcı Adı' olan bir elemanın Xpath değerini tutuyorsa, KonumlayıcıAdı 'KullanıcıAdı' olarak belirtilir.
NOT: Excel sayfasında belirtilen LocatorType'a göre, değeri Nesne Deposunda saklanmalıdır. Örneğin: Xpath, LocatorType olarak belirtilirse, Depo o elemanın Xpath'ini depolamalı, eğer kimlik Locatortype olarak belirtilmişse, id depolanmalıdır vb.

# 5) Komut Dosyalarını veya Sürücü Komut Dosyasını Test Edin
Bu, excel sayfasının tüm içeriğini okuyan ve ilgili eylemi gerçekleştiren ana komut dosyasıdır. Komut dosyası, şablonun nasıl oluşturulduğuna göre tasarlanmıştır.
Bizim durumumuzda, her test sayfası bir test senaryosu olarak ve her satır bir test adımı olarak işlev gördüğünden, sürücü komut dosyası sayfalarda ve ardından satırlarda yinelenerek oluşturulabilir.
Her bir satırda, bir anahtar sözcük okunur ve kitaplık dosyasındaki karşılık gelen yöntemi çalıştırılır ve bu böyle devam eder. Bu, test senaryosundaki tüm test adımları yürütülene kadar devam eder. Ardından, bir sonraki test senaryosuna / sayfaya geçer ve onu yürütür.

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;testcaseSonuç
Bu nedenle, bir çerçeve oluşturulduktan sonra, birden çok test durumu / projesi için yeniden kullanılabilir. Bu şekilde, her proje için bir otomasyon betiği oluşturma iş saatlerini azaltır.
Sonraki bölümde, Anahtar Kelime Odaklı çerçeve ve Veriye Dayalı çerçevenin bir kombinasyonu olan Hibrit odaklı çerçevenin oluşturulmasını tartışacağız.
=> Kolay Selenyum Eğitim Serisini Okuyun.
Önerilen Kaynaklar
- Apache POI Kullanan Selenium WebDriver'da Veriye Dayalı Çerçeve
- Veriye Dayalı Test Nasıl Çalışır (QTP ve Selenyum Örnekleri)
- JUnit Framework'e Giriş ve Selenium Script'te Kullanımı - Selenium Tutorial # 11
- Selenyumda Hibrit Çerçeve Nedir?
- Selenyum Örneklerle Metin Eğitimi ile Eleman Bul
- 30+ En İyi Selenyum Öğreticisi: Gerçek Örneklerle Selenyum Öğrenin
- Selenium Framework Oluşturma ve Excel'den Test Verilerine Erişme - Selenium Tutorial # 21
- Java 'bu' Anahtar Kelime: Kod Örnekleriyle Eğitim