selenium framework creation
V posledním tutoriálu jsme vás seznámili s základy rámců automatizace testů , jeho součásti a typy. Rámečky ilustrované v předchozím tutoriálu patřily mezi nejoblíbenější rámce používané testovacím bratrstvím.
Stručně jsme diskutovali o modulových rámcích, architektuře založené na knihovní architektuře, rámci řízeném klíčovým slovem, rámci řízeném daty a hybridním rámci. Na místě jsou také různé další rámce.
Vezměte prosím na vědomí, že bychom ji přijali Data Driven Test Automation Framework pro zbytek našich kurzů.
V proudu tutoriál v této sérii , seznámíme vás s a sample framework, the Excels which would store the test data and their Excel maniplations . Stejným způsobem bychom postupovali vpřed a zavedli nové strategie a zdroje k vylepšení našeho rámce.
Pojďme se tedy naučit:
- Strategie vytváření rámce pomocí ukázkového projektu
- Přístup k testovacím datům uloženým v externím zdroji dat
Pohybem vpřed bychom začali s popisem hierarchie projektu, kterou vytváříme, abychom oddělili různé komponenty projektu.
Na následujícím obrázku najdete hierarchii projektu vytvořenou pro ukázkový projekt. Níže uvedený projekt Java lze snadno vytvořit v rámci zatmění tak, jak jsme vytvořili projekty v dřívějších cvičeních.
Co se naučíte:
Struktura složky projektu Selenium - Návod
# 1) src - Složka obsahuje všechny testovací skripty, generika, čtečky a nástroje. Všechny tyto zdroje nejsou nic jiného než jednoduché třídy Java. Ve složce source (src) jsme vytvořili hierarchii složek.
a) test - Složka „test“ se skládá hlavně ze dvou složek - testovací sady a složek představujících různé moduly testované aplikace. Každá z těchto složek tedy obsahuje testovací skripty specifické pro modul, ke kterému je přidružena. Testsuite je logická kombinace více než jednoho testovacího skriptu. Uživatel tedy může označit vstup kteréhokoli z testovacích skriptů v testovací sadě, které si přeje provést v následujících bězích.
bezplatný převodník z YouTube na MP4 pro Mac
b) nástroje - Složka „utilities“ se skládá z různých generik, konstant, čteček a tříd pro implementaci uživatelem definovaných výjimek. Každá ze složek v obslužných programech má svůj vlastní význam.
- Excel Reader - Byla vytvořena obecná a běžná třída, která čte data testu (vstupní parametry a očekávané výsledky) z listů aplikace Excel
- Konstanty prostředí - Složka je integrací tříd Java, které ukládají statické proměnné odkazující na cesty a další podrobnosti o prostředí. Tyto podrobnosti mohou být URL aplikace, URL k databázím, pověření pro databáze a URL k jakémukoli použitému nástroji třetí strany. Odlišné adresy URL aplikací lze nastavit pro různá prostředí (dev, prod, test, master, slave atd.).
- DataSetters - Složka obsahuje třídy, které implementují getry a settery testovacích dat načtených z aplikace Excel. K načtení více sad testovacích dat vytvoříme ArrayLists.
- Uživatelské role - Složka obsahuje třídy, které se starají o přístupová kritéria založená na rolích, pokud existují, pro instinktové uživatele.
- FunctionLibrary - Složka se skládá z tříd, které obsahují funkce a metody, které lze sdílet a používat mezi více třídami. Velmi často se od nás předpokládá, že provedeme určité postupy před a po skutečném provedení testu, jako je přihlášení do aplikace, nastavení prostředí, aktivity související s rolemi, manipulace s daty, výsledky psaní, metody, které generují před / po podmínky pro jiné metody . Protože máme tendenci provádět tyto činnosti pro celý nebo většinu testovacího skriptu. Proto se vždy doporučuje vytvořit samostatnou třídu pro takové aktivity namísto jejich opakovaného kódování v každém z testovacích skriptů.
- PreConditionalMethods
- PostConditionalMethods
Velmi často se od nás předpokládá, že provedeme určité postupy před a po skutečném provedení testu, jako je přihlášení k aplikaci, nastavení prostředí, aktivity související s rolemi uživatelů, manipulace s daty, psaní výsledků, metody, které generují před / po podmínky jiným metody. Protože máme tendenci provádět tyto aktivity pro všechny nebo většinu testovacího skriptu, je vždy doporučeno vytvořit pro tyto aktivity samostatnou třídu namísto jejich opakovaného kódování v každém z testovacích skriptů.
Společné metody
Stejně jako Pre a postconditions mohou existovat metody a funkce, které mohou být použity více než jedním testovacím skriptem. Tyto metody jsou tedy seskupeny do třídy. Testovací skript může přistupovat k těmto metodám pomocí objektu běžné třídy.
# 2) soubory aplikace Excel - Soubory aplikace Excel jsou považovány za zdroj dat / poskytovatele dat pro provádění testovacích skriptů. Tyto soubory ukládají testovací data do párů klíč – hodnota. Všimněte si, že pro každý testovací skript vytvoříme samostatný list aplikace Excel, tj. Každý testovací skript má svůj vlastní testovací datový soubor. Název testovacího skriptu a odpovídajících testovacích datových souborů / listu aplikace Excel byl z hlediska sledovatelnosti zachován stejný. Podívejte se níže na ukázkový formát dat testu:
Testovací formát dat
Každý ze sloupců představuje klíč a každý z řádků představuje testovací data / hodnotu. Chcete-li provést stejný testovací skript s více datovými sadami, určete více řádků.
Označte, že formáty testovacích dat jsou definovány výhradně uživatelem. Na základě vašich požadavků tedy můžete přizpůsobit soubory testovacích dat.
# 3) knihovna - Složka funguje jako úložiště / artefakt pro všechny požadované soubory jar, knihovny, ovladače atd., Aby úspěšně vytvořila testovací prostředí a spustila testovací skripty. Na následujícím obrázku si prohlédněte knihovny, které bychom v rámci našeho projektu použili.
# 4) protokoly - Složka obsahuje soubor .txt, který ukládá informace o protokolování při každém spuštění.
# 5) zkušební materiál - Složka obsahuje skutečná data testu, která je třeba nahrát, pokud existují. Tato složka by se dostala do obrazu, když narazíme na testovací scénáře, kde je uživatel povinen nahrávat soubory, dokumenty, obrázky, zprávy atd.
# 6) build.xml - Soubor XML používá server „Ant Server“ k automatizaci celého procesu sestavení.
# 7) log4j.xml - Tento soubor XML používá obslužný program založený na prostředí Java s názvem „Log4j“ ke generování protokolů provádění.
co je bezpečnostní klíč wifi
Poznámka : V nadcházejících výukových programech bychom podrobněji prostudovali protokoly, uživatelsky definované výjimky a Ant. Pokud tedy nejste zmatení mezi pojmy, nepanikařte.
Nyní, když se pohybujeme vpřed, pochopme fenomén, kdy přistupujeme k souborům aplikace Excel a vyplňujeme testovací data do našich testovacích skriptů.
Abychom proces snáze pochopili, rozdělili bychom proces na následující kroky.
Otestujte vytváření dat
Krok 1 : Prvním a nejdůležitějším krokem je vytvoření testovacích dat, pomocí kterých bychom prováděli testovací skripty. Vzhledem k výše uvedenému formátu testovacích dat vytvořme soubor aplikace Excel s názvem „TestScript1“. Poskytněte hodnoty v prvcích.
Krok 2 : Dalším krokem je stažení standardní API / knihovny založené na Javě s názvem „Java excel Library“ (jxl), aby bylo možné přistupovat k již vytvořeným obecným metodám pro manipulaci s Excelem.
Krok 3 : Vytvořte obecnou třídu čtečky aplikace Excel s názvem „ExcelReader.java“. Zkopírujte níže uvedený kód do souboru ExcelReader.java.
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 Krok 4 : Vytvořte obecnou třídu - „CommonMethods.java“. Vytvořte společnou metodu ve třídě, která by čtela buňky z listu aplikace Excel pomocí metod implementovaných v aplikaci ExcelReader.java.
/** * 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 Krok 5 : Vytvořte novou třídu java s názvem „TestData.java“. Tato třída by fungovala jako getter a setter pro data aplikace Excel. Zkopírujte a vložte následující kód do třídy TestData.java.
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; } }
Krok 6 : Dalším krokem je vytvoření instancí tříd Java „TestData.java“ a „CommonMethods.java“ v rámci testovacího skriptu za účelem přístupu a naplnění testovacích dat. Podívejte se na níže uvedený fragment kódu pro inicializaci objektu, čtení dat aplikace Excel a vyplnění hodnot, kdykoli je to nutné.
// 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));
Proto pomocí instance třídy testData.java ve spojení s getry lze ve skriptu vyplnit jakoukoli hodnotu dat testu.
Závěr:
Výukový program se točil hlavně kolem pojmů, jako je vytváření rámců a přístup k testovacím datům z aplikace Excel. Seznámili jsme vás se strategií vytváření rámce pomocí ukázkového projektu. Krátce jsme osvětlili různé komponenty a aspekty našeho rámce.
Abychom měli přístup k testovacím datům uloženým v externím zdroji dat, použili jsme java založené API - jxl. Také jsme vytvořili ukázkový kód pro čtení a naplnění dat aplikace Excel do testovacích skriptů.
Další výuka # 22 : V dalším tutoriálu bychom náš tutoriál založili na pojmy generik a jejich mechanismus přístupnosti . Vytvořili bychom několik ukázkových obecných metod a poté k nim přistupujeme v rámci testovacích skriptů. Rádi bychom vám také představili koncept Testsuite a vývoj ukázkového kódu.
Doporučené čtení
- Úvod do rámce JUnit a jeho použití v selenovém skriptu - výuka selenu č. 11
- Rámec řízený daty v selenu WebDriver pomocí POI Apache
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Výukové programy pro zatmění do hloubky pro začátečníky
- Jak používat rámec TestNG pro vytváření skriptů selenu - výukový program TestNG selenu č. 12
- Efektivní scénáře selenu a řešení potíží - Scénář selenu č. 27
- Ladění selenových skriptů pomocí protokolů (výuka Log4j) - výuka selenu č. 26