selenium framework creation
V minulom tutoriáli sme vás oboznámili s základy rámcov automatizácie testov , jeho súčasti a typy. Rámec ilustrovaný v predchádzajúcom návode patril medzi najobľúbenejšie rámce používané testovacím bratstvom.
Stručne sme diskutovali o modulových rámcoch, knižničnej architektúre, rámcoch riadených kľúčovými slovami, údajoch riadených rámcov a hybridných rámcoch. Na mieste sú aj rôzne ďalšie rámce.
Vezmite prosím na vedomie, že by sme ich prijali Rámec automatizácie testovania na základe údajov pre zvyšok našich výukových programov.
V súčasnom návod v tejto sérii , oboznámime vás s a vzorový rámec, Excel, ktorý by ukladal testovacie dáta a ich manipulácie s Excelom . Rovnakým spôsobom by sme sa posunuli vpred a zaviedli nové stratégie a zdroje na zdokonalenie nášho rámca.
Poďme sa teda naučiť:
- Stratégia tvorby rámca pomocou vzorového projektu
- Prístup k testovacím údajom uloženým v externom zdroji údajov
Ďalej by sme začali popisom hierarchie projektu, ktorú by sme vytvorili, aby sme oddelili rôzne komponenty projektu.
Na nasledujúcom obrázku nájdete hierarchiu projektu vytvorenú pre vzorový projekt. Nasledujúci java projekt je možné ľahko vytvoriť v rámci zatmenia tak, ako sme ich vytvorili v predchádzajúcich tutoriáloch.
Čo sa dozviete:
Štruktúra priečinka selénový projekt - návod
# 1) src - Priečinok obsahuje všetky testovacie skripty, všeobecné informácie, čítačky a pomocné programy. Všetky tieto zdroje nie sú nič iné ako jednoduché triedy Java. V priečinku source (src) sme vytvorili hierarchiu priečinkov.
test - Priečinok „test“ sa skladá hlavne z dvoch zložiek - testovacej sady a priečinkov predstavujúcich rôzne moduly testovanej aplikácie. Každý z týchto priečinkov teda obsahuje testovacie skripty špecifické pre modul, ku ktorému je priradený. Testsuite je logická kombinácia viacerých testovacích skriptov. Užívateľ teda môže označiť vstup ktoréhokoľvek z testovacích skriptov v rámci testovacej sady, ktorý chce vykonať v nasledujúcich behoch.
xbox one dátum uvedenia náhlavnej súpravy pre virtuálnu realitu
b) inžinierske siete - Priečinok „utilities“ sa skladá z rôznych generík, konštánt, čítačiek a tried na implementáciu výnimiek definovaných používateľom. Každý z priečinkov v rámci obslužných programov má svoj vlastný význam.
- Excel Reader - Bola vytvorená všeobecná a bežná trieda na čítanie údajov o testoch (vstupné parametre a očakávané výsledky) z hárkov programu Excel
- Konštanty prostredia - Priečinok je integráciou tried Java, ktoré ukladajú statické premenné odkazujúce na cesty a ďalšie podrobnosti o prostredí. Môžu to byť adresy URL aplikácie, URL databáz, poverenia pre databázy a URL ľubovoľného použitého nástroja tretej strany. Rozdielne adresy URL aplikácií je možné nastaviť pre rôzne prostredia (vývojové, prod, testovacie, master, slave atď.).
- DataSetters - Priečinok obsahuje triedy, ktoré implementujú vyhľadávače a nastavovače testovacích údajov načítaných z aplikácie Excel. Na načítanie viacerých množín testovacích údajov vytvoríme ArrayLists.
- UserRoles - Priečinok obsahuje triedy, ktoré sa starajú o prístupové kritériá založené na roliach, ak existujú, pre inštinktívnych používateľov.
- FunctionLibrary - Priečinok je tvorený triedami, ktoré obsahujú funkcie a metódy, ktoré možno zdieľať a používať medzi viacerými triedami. Veľmi často sa od nás očakáva, že vykonáme určité postupy pred a po vykonaní skutočného testu, ako je napríklad prihlásenie do aplikácie, nastavenie prostredí, činnosti súvisiace s úlohami, manipulácia s dátami, zápis výsledkov, metódy, ktoré generujú predbežné / následné podmienky pre iné metódy . Pretože máme tendenciu vykonávať tieto činnosti pre všetky alebo väčšinu testovacieho skriptu. Preto sa vždy odporúča pre tieto činnosti vytvoriť samostatnú triedu namiesto ich opakovaného kódovania v každom z testovacích skriptov.
- PreConditionalMethods
- PostConditionalMethods
Veľmi často sa od nás očakáva, že vykonáme určité postupy pred a po ukončení skutočného vykonania testu, ako je napríklad prihlásenie do aplikácie, nastavenie prostredí, činnosti súvisiace s rolami používateľov, manipulácia s dátami, zápis výsledkov, metódy, ktoré generujú predbežné / následné podmienky pre ďalšie metódy. Pretože máme tendenciu vykonávať tieto činnosti pre celý alebo väčšinu testovacích skriptov, vždy sa odporúča vytvoriť pre tieto činnosti samostatnú triedu namiesto ich opakovaného kódovania v každom z testovacích skriptov.
Časté metódy
Rovnako ako v prípade Pre a postconditions, môžu existovať metódy a funkcie, ktoré môže použiť viac ako jeden testovací skript. Tieto metódy sú teda zoskupené do jednej triedy. Testovací skript má prístup k týmto metódam pomocou objektu spoločnej triedy.
# 2) súbory programu Excel - Súbory programu Excel sa považujú za zdroj údajov / poskytovateľov údajov na vykonávanie testovacích skriptov. Tieto súbory ukladajú testovacie údaje do párov kľúč - hodnota. Upozorňujeme, že pre každý testovací skript vytvoríme samostatný hárok programu Excel, t. J. Každý testovací skript má svoj vlastný súbor s testovacími údajmi. Názov testovacieho skriptu a zodpovedajúce súbory s testovacími údajmi / hárok programu Excel boli z hľadiska vysledovateľnosti zachované rovnaké. Skontrolujte formát vzorových dát testu nižšie:
Formát testovacích údajov
Každý zo stĺpcov predstavuje kľúč a každý z riadkov predstavuje údaje / hodnotu testu. Zadajte viac riadkov, aby ste mohli vykonať ten istý testovací skript s viacerými množinami údajov.
Označte, že formáty testovacích údajov sú definované výlučne používateľom. Na základe vašich požiadaviek teda môžete prispôsobiť súbory s údajmi o teste.
# 3) knižnica - Priečinok slúži ako úložisko / artefakt pre všetky požadované súbory jar, knižnice, ovládače atď., Aby bolo možné úspešne vytvoriť testovacie prostredie a vykonať testovacie skripty. Na nasledujúcom obrázku si pozrite knižnice, ktoré by sme použili v rámci nášho projektu.
# 4) protokoly - Priečinok obsahuje súbor .txt, ktorý ukladá informácie o protokolovaní pri každom spustení.
# 5) testovací materiál - Priečinok obsahuje skutočné údaje o teste, ktoré je potrebné nahrať, ak existujú. Tento priečinok by sa dostal do obrazu, keď narazíme na testovacie scenáre, v ktorých je používateľ povinný nahrať súbory, dokumenty, obrázky, správy atď.
# 6) build.xml - Súbor xml používa server „Ant Server“ na automatizáciu celého procesu vytvárania.
# 7) log4j.xml - Tento súbor XML používa obslužný program založený na prostredí Java s názvom „Log4j“ na generovanie protokolov vykonania.
Poznámka : V nasledujúcich výučbách by sme si podrobnejšie preštudovali protokoly, používateľom definované výnimky a Ant. Takže ak ste zmätení medzi pojmami, neprepadajte panike.
Teraz, keď ideme vpred, pochopme jav, kedy pristupujeme k súborom programu Excel a vyplňujeme testovacie údaje do našich testovacích skriptov.
Aby sme proces ľahšie pochopili, rozdelili by sme ho na nasledujúce kroky.
Testovanie vytvárania údajov
Krok 1 : Prvým a najdôležitejším krokom je vytvorenie testovacích údajov, pomocou ktorých by sme vykonávali testovacie skripty. Vzhľadom na vyššie uvedený formát testovacích údajov vytvorme súbor programu Excel s názvom „TestScript1“. Zariaďte hodnoty v prvkoch.
Krok 2 : Ďalším krokom je stiahnutie štandardného java založeného API / knižnice s názvom „Java excel Library“ (jxl), aby ste mali prístup k už vytvoreným všeobecným metódam pre manipuláciu s programom Excel.
Krok 3 : Vytvorte všeobecnú triedu čítačiek programu Excel s názvom „ExcelReader.java“. Skopírujte nasledujúci kód do súboru 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 : Vytvorte všeobecnú triedu - „CommonMethods.java“. Vytvorte v rámci triedy bežnú metódu, ktorá by čítala bunky z hárka programu Excel pomocou metód implementovaných v súbore 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 : Vytvorte novú triedu java s názvom „TestData.java“. Táto trieda by fungovala ako vyhľadávač a nastavovač údajov programu Excel. Skopírujte a vložte nasledujúci kód do triedy 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 : Ďalším krokom je vytvorenie inštancií tried Java „TestData.java“ a „CommonMethods.java“ v rámci testovacieho skriptu, aby bolo možné získať prístup k testovacím údajom a vyplniť ich. V nasledujúcom úryvku kódu nájdete inicializáciu objektu, čítanie údajov programu Excel a vyplnenie hodnôt, kedykoľvek je to potrebné.
// 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));
Preto pomocou inštancie triedy testData.java v spojení s getrmi je možné v skripte vyplniť ľubovoľnú hodnotu testovacích údajov.
c ++ generuje náhodné číslo medzi 1 a 10
Záver:
Výukový program sa točil hlavne okolo pojmov ako Vytváranie rámcov a Prístup k testovacím údajom z programu Excel. So vzorovým projektom sme vás oboznámili so stratégiou tvorby rámca. Krátko sme osvetlili rôzne komponenty a aspekty nášho rámca.
Na prístup k testovacím údajom uloženým v externom zdroji údajov sme použili java založené API - jxl. Vytvorili sme tiež vzorový kód na čítanie a vyplnenie údajov programu Excel do testovacích skriptov.
Nasledujúci kurz č. 22 : V nasledujúcom tutoriáli by sme náš tutoriál založili na koncepcie generík a ich mechanizmy prístupnosti . Vytvorili by sme niekoľko vzorových všeobecných metód a potom k nim pristupujeme v rámci testovacích skriptov. Tiež by sme vám predstavili koncept Testsuite a vývoj vzorového kódu.
Odporúčané čítanie
- Úvod do rámca JUnit a jeho použitie v selénovom skripte - selén výučba # 11
- Rámec riadený dátami v selenovom WebDriveri pomocou POI Apache
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Hĺbkové návody pre zatmenie pre začiatočníkov
- Ako používať rámec TestNG na vytváranie skriptov selénu - návod na testovanie selénu TestNG # 12
- Efektívne scenáre selénu a riešenie problémov - scenáre selénu # 27
- Ladenie selénových skriptov pomocou denníkov (výučba Log4j) - výučba selénu č. 26