selenium framework creation
Son eğiticide, sizi test otomasyon çerçevelerinin temelleri , bileşenleri ve türleri. Önceki eğitimde gösterilen çerçeveler, test kardeşliği tarafından kullanılan en popüler çerçevelerden birkaçıydı.
Modül tabanlı Çerçeveler, Kütüphane Mimarisi tabanlı çerçeve, Anahtar kelime odaklı çerçeve, Veriye dayalı Çerçeve ve Hibrit Çerçeveyi kısaca tartıştık. Yerinde başka çeşitli çerçeveler de var.
Lütfen evlat edineceğimizi not edin Eğitimlerimizin geri kalanı için Veriye Dayalı Test Otomasyon Çerçevesi.
Akımda bu serideki öğretici sizi bir örnek çerçeve, test verilerini ve bunların Excel işlemlerini depolayan Excel'ler . Aynı doğrultuda, çerçevemizi olgunlaştırmak için ilerleyecek ve yeni stratejiler ve kaynaklar sunacaktık.
Öyleyse öğrenelim:
- Örnek bir proje kullanarak çerçeve oluşturma stratejisi
- Harici veri kaynağında depolanan test verilerine erişin
İlerlerken, çeşitli proje bileşenlerini ayırmak için oluşturacağımız proje hiyerarşisinin açıklamasıyla başlayacağız.
Örnek proje için oluşturulan proje hiyerarşisi için aşağıdaki resme bakın. Aşağıdaki java projesi, önceki eğitimlerdeki projeleri oluşturduğumuz şekilde tutulma içinde kolayca oluşturulabilir.
Ne öğreneceksin:
Selenium Projesi Klasör Yapısı - İzlenecek Yol
# 1) src - Klasör, tüm test komut dosyalarını, jenerikleri, okuyucuları ve yardımcı programları içerir. Tüm bu kaynaklar, basit java sınıflarından başka bir şey değildir. Kaynak (src) klasörünün altında, bir klasörler hiyerarşisi oluşturduk.
Bir test - 'Test' klasörü büyük ölçüde iki bileşenden oluşur - test paketi ve test edilen uygulamanın çeşitli modüllerini temsil eden klasörler. Bu nedenle, bu klasörlerin her biri, ilişkili olduğu modüle özgü test komut dosyalarını içerir. Testsuite, birden fazla test komut dosyasının mantıksal bir kombinasyonudur. Böylece, kullanıcı, sonraki çalıştırmalarda yürütmek istediği test paketi içindeki test komut dosyalarından herhangi birinin girişini işaretleyebilir.
başka bir telefonda casusluk yapmanızı sağlayan uygulama
b) kamu hizmetleri - 'Yardımcı programlar' klasörü, kullanıcı tanımlı istisnaları uygulamak için çeşitli jenerikler, sabitler, Okuyucular ve sınıflardan oluşur. Yardımcı programlar altındaki klasörlerin her birinin kendi önemi vardır.
- Excel Okuyucu - Excel sayfalarından test verilerini (giriş parametreleri ve beklenen sonuçlar) okumak için genel ve ortak bir sınıf oluşturulmuştur
- Çevre Sabiti - Klasör, yollara ve diğer çevresel ayrıntılara atıfta bulunan statik değişkenleri depolayan java sınıflarının entegrasyonudur. Bu ayrıntılar, Uygulama URL'si, Veritabanlarının URL'si, Veritabanları için Kimlik Bilgileri ve kullanılan herhangi bir üçüncü taraf aracının URL'si olabilir. Farklı uygulama URL'leri farklı ortamlar için ayarlanabilir (geliştirme, üretim, test, ana, bağımlı vb.).
- Veri Ayarlayıcıları - Klasör, Excel'lerden getirilen test verilerinin alıcılarını ve ayarlayıcılarını uygulayan sınıfları içerir. Birden fazla Test verisi kümesi yüklemek için Dizi Listeleri oluştururuz.
- Kullanıcı rolleri - Klasör, içgüdüsel kullanıcılar için varsa Rol tabanlı erişim kriterlerine dikkat eden sınıfları barındırır.
- FunctionLibrary - Klasör, birden çok sınıf arasında paylaşılabilen ve kullanılabilen işlevleri ve yöntemleri içeren sınıflardan oluşur. Çok sık olarak, uygulamaya giriş yapma, ortamları ayarlama, rulolar ile ilgili aktiviteler, veri manipülasyonları, sonuçları yazma, diğer yöntemlere ön / son koşullar oluşturan yöntemler gibi gerçek test yürütmeden önce ve sonra belirli prosedürleri gerçekleştirmemiz gerekir. . Bu aktiviteleri test komut dosyasının tamamı veya çoğu için gerçekleştirme eğiliminde olduğumuzdan. Bu nedenle, bu tür etkinlikler için her bir test komut dosyasında tekrar tekrar kodlamak yerine ayrı bir sınıf oluşturulması önerilir.
- PreConditionalMethods
- PostConditionalMethods
Çok sık olarak, uygulamaya giriş yapma, ortamları ayarlama, kullanıcı rolleriyle ilgili faaliyetler, veri manipülasyonları, sonuçları yazma, diğerlerine ön / son koşullar oluşturan yöntemler gibi gerçek test yürütmeden önce ve sonra belirli prosedürleri gerçekleştirmemiz gerekir. yöntemler. Bu etkinlikleri test komut dosyasının tümü veya çoğu için gerçekleştirme eğiliminde olduğumuzdan, bu tür etkinlikler için her bir test komut dosyasında tekrar tekrar kodlamak yerine her zaman ayrı bir sınıf oluşturulması önerilir.
CommonMethods
Ön ve son koşullar gibi, birden fazla test komut dosyası tarafından kullanılabilen yöntemler ve işlevler olabilir. Böylece, bu yöntemler bir sınıfta birlikte gruplandırılır. Test komut dosyası, ortak sınıfın nesnesini kullanarak bu yöntemlere erişebilir.
# 2) excel dosyaları - Excel dosyaları, test komut dosyası yürütme için veri kaynağı / veri sağlayıcıları olarak kabul edilir. Bu dosyalar test verilerini anahtar / değer çiftleri halinde depolar. Her test komut dosyası için ayrı bir excel sayfası oluşturduğumuzu, yani her test komut dosyasının kendi test veri dosyası olduğunu unutmayın. İzlenebilirlik perspektifi için test komut dosyasının adı ve ilgili test veri dosyaları / excel sayfası aynı tutulmuştur. Aşağıdaki örnek test veri formatına göz atın:
Test Veri Formatı
Sütunların her biri bir anahtarı temsil eder ve satırların her biri bir test verilerini / değerini temsil eder. Aynı test komut dosyasını birden çok veri kümesiyle yürütmek için birden çok satırı belirtin.
Test veri formatlarının yalnızca kullanıcı tanımlı olduğunu işaretleyin. Böylece gereksinimlerinize bağlı olarak test veri dosyalarını özelleştirebilirsiniz.
# 3) kütüphane - Klasör, test ortamını başarıyla oluşturmak ve test komut dosyalarını yürütmek için gerekli tüm jar dosyaları, kitaplıklar, sürücüler vb. İçin bir depo / yapay olarak işlev görür. Projemizde istihdam edeceğimiz kütüphaneleri kontrol etmek için aşağıdaki şekle bakın.
kablosuz yönlendiricideki güvenlik anahtarı nedir
# 4) günlükler - Klasör, her yürütme sırasında günlük bilgilerini depolayan bir .txt dosyası içerir.
# 5) test materyali - Klasör, varsa yüklenmesi gereken gerçek test verilerini içerir. Bu klasör, kullanıcının dosya, belge, resim, rapor vb. Yüklemesi gereken test senaryolarıyla karşılaştığımızda ortaya çıkacaktır.
# 6) build.xml - Xml dosyası, tüm inşa sürecini otomatikleştirmek için 'Ant Sunucusu' tarafından kullanılır.
# 7) log4j.xml - Bu xml dosyası, yürütme günlüklerini oluşturmak için 'Log4j' adlı Java tabanlı bir yardımcı program tarafından kullanılır.
Not : Gelecek eğitimlerde günlükler, kullanıcı tanımlı istisnalar ve Ant hakkında daha ayrıntılı olarak çalışacağız. Bu yüzden kavramlar arasında kafanız karışırsa panik yapmayın.
Şimdi, ilerledikçe, excel dosyalarına eriştiğimiz ve test verilerini test komut dosyalarımıza yerleştirdiğimiz olguyu anlayalım.
Süreci daha kolay anlamak için, süreci aşağıdaki adımlara ayırırdık.
Test Verisi Oluşturma
Aşama 1 : İlk ve en önemli adım, test komut dosyalarını yürüteceğimiz test verilerini oluşturmaktır. Yukarıda belirtilen test veri formatını da göz önünde bulundurarak “TestScript1” adında bir excel dosyası oluşturalım. Öğelerdeki değerleri donatın.
Adım 2 : Bir sonraki adım, Excel Manipülasyonu için önceden oluşturulmuş genel yöntemlere erişebilmek için 'Java excel Kitaplığı' (jxl) olarak adlandırılan standart bir java tabanlı API / Kitaplık indirmektir.
Aşama 3 : “ExcelReader.java” adında genel bir excel okuyucu sınıfı oluşturun. Aşağıdaki kodu ExcelReader.java içine kopyalayın.
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col 4. adım : Genel bir sınıf - 'CommonMethods.java' oluşturun. ExcelReader.java'da uygulanan yöntemleri kullanarak hücreleri excel sayfasından okuyan sınıf içinde ortak bir yöntem oluşturun.
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt Adım 5 : 'TestData.java' adında yeni bir java sınıfı oluşturun. Bu sınıf, excel verileri için alıcı ve ayarlayıcı görevi görür. Aşağıdaki kodu TestData.java sınıfına kopyalayıp yapıştırın.
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
6. Adım : Sonraki adım, test verilerine erişmek ve bunları doldurmak için test komut dosyası içinde 'TestData.java' ve 'CommonMethods.java' java sınıflarının örneklerini oluşturmaktır. Nesne başlatma, excel verilerini okumak ve gereken yerlerde değerleri doldurmak için aşağıdaki kod parçacığına bakın.
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
Bu nedenle, testData.java sınıfının örneğini alıcılarla birlikte kullanarak, herhangi bir test verisi değeri komut dosyası içinde doldurulabilir.
Sonuç:
Eğitim, esas olarak Çerçeve Oluşturma ve Excel'den test verilerine erişme gibi kavramlar etrafında dönüyordu. Örnek bir proje kullanarak sizi Çerçeve oluşturma stratejisi ile tanıştırdık. Çerçevemizin çeşitli bileşenlerine ve yönlerine kısaca ışık tuttuk.
Harici veri kaynağında depolanan test verilerine erişmek için java tabanlı bir API - jxl kullandık. Ayrıca excel verilerini okumak ve test komut dosyalarına doldurmak için örnek kod oluşturduk.
Sonraki Eğitim # 22 : Bir sonraki öğreticide, öğreticimizi şu temellere dayandıracağız: jenerik kavramları ve erişilebilirlik mekanizması . Birkaç örnek jenerik yöntem oluşturup daha sonra bunlara test komut dosyalarından erişirdik. Ayrıca size Testsuite kavramını ve örnek kod geliştirmeyi tanıtacağız.
Önerilen Kaynaklar
- JUnit Framework'e Giriş ve Selenium Script'te Kullanımı - Selenium Tutorial # 11
- Apache POI Kullanan Selenium WebDriver'da Veriye Dayalı Çerçeve
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Yeni Başlayanlar İçin Derinlemesine Eclipse Eğiticileri
- Selenium Komut Dosyaları Oluşturmak için TestNG Framework Nasıl Kullanılır - TestNG Selenium Tutorial # 12
- Etkili Selenium Komut Dosyası Oluşturma ve Sorun Giderme Senaryoları - Selenium Eğitimi # 27
- Günlüklerle Selenium Komut Dosyalarında Hata Ayıklama (Log4j Eğitimi) - Selenium Eğitimi # 26