most popular test automation frameworks with pros
V posledních několika selenových cvičeních jsme diskutovali o různých běžně a populárně používaných příkazy ve WebDriveru , zpracování webových prvků, jako jsou webové tabulky, rámečky a zpracování výjimek v selenových skriptech.
Diskutovali jsme o každém z těchto příkazů pomocí ukázkových fragmentů kódu a příkladů, abychom vám umožnili efektivně používat tyto příkazy, kdykoli se setkáte s podobnými situacemi. Mezi příkazy, které jsme probrali v předchozím tutoriálu, málo z nich vděčí za nesmírně důležitou.
Jak postupujeme vpřed v sérii Selenium, soustředíme se na to Vytváření automatizačního rámce v příštích několika nadcházejících výukových programech. Také bychom objasnili různé aspekty automatizačního rámce, typy automatizačních rámců, výhody používání rámce a základní komponenty, které tvoří automatizační rámec.
Co se naučíte:
- Co je to Framework?
- Test Automation Framework
- Druhy Test Automation Framework
- # 1) Testovací rámec založený na modulech
- # 2) Rámec pro testování architektury knihovny
- # 3) Rámec testování dat
- # 4) Rámec pro testování klíčových slov
- # 5) Hybridní testovací rámec
- # 6) Vývojový rámec založený na chování
- Závěr
- Doporučené čtení
Co je to Framework?
Rámec je považován za kombinaci stanovených protokolů, pravidel, standardů a pokynů, které lze začlenit nebo dodržovat jako celek, aby se využily výhody lešení poskytovaného rámcem.
Uvažujme o scénáři ze skutečného života.
Velmi často používáme výtahy nebo výtahy. Existuje několik pokynů, které jsou zmíněny ve výtahu, které je třeba dodržovat a o které je třeba se starat, aby bylo dosaženo maximálního přínosu a prodloužené služby ze systému.
Uživatelé si tak mohli všimnout následujících pokynů:
- Neustále kontrolujte maximální kapacitu výtahu a nenastupujte do výtahu, pokud byla dosažena maximální kapacita.
- V případě nouze nebo potíží stiskněte tlačítko alarmu.
- Před vstupem do výtahu nechte cestujícího vystoupit z výtahu, pokud existuje, a postavte se před dveře.
- V případě požáru v budově nebo v případě náhodných situací nepoužívejte výtah.
- Nehrajte a neskákejte dovnitř výtahu.
- Nekuřte uvnitř výtahu.
- Požádejte o pomoc / pomoc, pokud se dveře neotevřou nebo pokud výtah vůbec nefunguje. Nepokoušejte se dveře otevírat násilím.
Pravidel nebo sad pokynů může být mnohem více. Při dodržení těchto pokynů je tedy systém pro uživatele výhodnější, přístupnější, škálovatelnější a méně znepokojující.
Nyní, když mluvíme o „Test Automation Frameworks“, pojďme se zaměřit směrem k nim.
Test Automation Framework
„Test Automation Framework“ je lešení, které je vytvořeno tak, aby poskytovalo prostředí pro provádění testovacích skriptů automatizace. Rámec poskytuje uživateli různé výhody, které mu pomáhají efektivně vyvíjet, spouštět a hlásit testovací automatizační skripty. Je to spíš jako systém, který byl vytvořen speciálně pro automatizaci našich testů.
Ve velmi jednoduchém jazyce můžeme říci, že rámec je konstruktivní směsicí různých pokynů, kódovacích standardů, konceptů, procesů, postupů, hierarchií projektů, modularity, mechanismu hlášení, injekcí testovacích dat atd. Do testování automatizace pilíře. Uživatel tedy může tyto pokyny dodržovat při automatizaci aplikace, aby mohl využívat výhod různých produktivních výsledků.
Výhody mohou být v různých formách, jako je snadnost skriptování, škálovatelnost, modularita, srozumitelnost, definice procesu, opětovné použití, náklady, údržba atd. Vývojářům se proto doporučuje využít jednu nebo více z těchto výhod Test Automation Framework.
Potřeba jednotného a standardního Test Automation Framework navíc vyvstává, když máte spoustu vývojářů pracujících na různých modulech stejné aplikace a když se chceme vyhnout situacím, kdy každý z vývojářů implementuje svůj přístup k automatizaci.
Poznámka : Vezměte na vědomí, že testovací rámec je vždy nezávislý na aplikaci, to znamená, že jej lze použít s jakoukoli aplikací bez ohledu na komplikace (jako je technologický zásobník, architektura atd.) Testované aplikace. Rámec by měl být škálovatelný a udržovatelný.
Výhoda rámce automatizace testů
- Opakovaná použitelnost kódu
- Maximální pokrytí
- Scénář obnovy
- Levná údržba
- Minimální manuální zásah
- Snadné hlášení
Druhy Test Automation Framework
Nyní, když máme základní představu o tom, co je to Automation Framework, v této části bychom vás vyzvali s různými typy Test Automation Framework, které jsou k dispozici na trhu. Zkusili bychom také osvětlit jejich klady a zápory a doporučení ohledně použitelnosti.
V dnešní době je k dispozici odlišná řada automatizačních rámců. Tyto rámce se mohou navzájem lišit na základě jejich podpory různých klíčových faktorů pro automatizaci, jako je opětovné použití, snadná údržba atd.
Pojďme diskutovat o několika nejoblíbenějších testovacích automatizačních rámcích:
- Rámec pro testování na základě modulů
- Rámec testování architektury knihovny
- Rámec testování dat
- Rámec pro testování klíčových slov
- Hybridní testovací rámec
- Vývojový rámec založený na chování
(klikněte na obrázek pro zvětšení)
Pojďme si podrobně promluvit o každém z nich.
Ale ještě předtím bych chtěl zmínit, že navzdory tomuto rámci je uživatel vždy využíván k vytváření a navrhování svého vlastního rámce, který je nejvhodnější pro jeho / její projektové potřeby.
# 1) Testovací rámec založený na modulech
Testovací rámec založený na modulech je založen na jednom z populárně známého konceptu OOP - Abstrakce. Rámec rozděluje celou „Testovanou aplikaci“ na několik logických a izolovaných modulů. Pro každý modul vytvoříme samostatný a nezávislý testovací skript. Když se tedy tyto testovací skripty spojily, vytvoří se větší testovací skript představující více než jeden modul.
Tyto moduly jsou odděleny abstrakční vrstvou takovým způsobem, že změny provedené v částech aplikace nemají na tento modul vliv.
Profesionálové:
- Rámec zavádí vysokou úroveň modularizace, která vede ke snadnější a nákladově efektivnější údržbě.
- Rámec je do značné míry škálovatelný
- Pokud jsou změny implementovány v jedné části aplikace, je třeba opravit pouze testovací skript představující tuto část aplikace, aby všechny ostatní části zůstaly nedotčené.
Nevýhody:
- Při implementaci testovacích skriptů pro každý modul zvlášť jsme do testovacích skriptů vložili testovací data (Data, s nimiž bychom měli provádět testování). Kdykoli tedy máme testovat s jinou sadou testovacích dat, vyžaduje to, aby byly manipulace prováděny v testovacích skriptech.
# 2) Rámec pro testování architektury knihovny
Rámec pro testování architektury knihovny je zásadně a základně postaven na Rámečku testování na základě modulů s některými dalšími výhodami. Místo toho, abychom testovanou aplikaci rozdělili na testovací skripty, aplikaci rozdělíme na funkce nebo můžeme běžné funkce použít i v jiných částech aplikace. Vytvoříme tedy společnou knihovnu tvořící společné funkce pro testovanou aplikaci. Proto lze tyto knihovny volat z testovacích skriptů, kdykoli je to nutné.
Základním základem rámce je určit běžné kroky a seskupit je do funkcí v knihovně a tyto funkce volat v testovacích skriptech, kdykoli je to nutné.
Příklad : Kroky přihlášení lze zkombinovat do funkce a uložit do knihovny. Všechny testovací skripty, které vyžadují přihlášení k aplikaci, tedy mohou tuto funkci volat namísto opakovaného psaní kódu.
výchozí brána není k dispozici, Windows 10 se stále děje
Profesionálové:
- Stejně jako rámec založený na modulech zavádí tento rámec také vysokou úroveň modularizace, která vede také ke snadnější a nákladově efektivní údržbě a škálovatelnosti.
- Jak vytváříme běžné funkce, které lze efektivně využít různými testovacími skripty napříč Frameworkem. Rámec tak zavádí velkou míru opětovného použití.
Nevýhody:
- Stejně jako modul založený na modulu jsou testovací data uložena do testovacích skriptů, takže jakákoli změna v testovacích datech by vyžadovala také změny v testovacím skriptu.
- Se zavedením knihoven se rámec trochu komplikuje.
# 3) Rámec testování dat
Při automatizaci nebo testování jakékoli aplikace může být někdy nutné testovat stejnou funkci vícekrát s jinou sadou vstupních dat. V takových případech tedy nemůžeme nechat testovací data vložená do testovacího skriptu. Proto se doporučuje uchovat testovací data do nějaké externí databáze mimo testovací skripty.
Data Driven Testing Framework pomáhá uživateli oddělit logiku testovacího skriptu a testovací data od sebe navzájem. Umožňuje uživateli uložit testovací data do externí databáze. Externí databáze mohou být soubory vlastností, soubory XML, soubory Excel, textové soubory, soubory CSV, úložiště ODBC atd. Data jsou běžně ukládána ve dvojicích „klíč – hodnota“. Klíč lze tedy použít k přístupu a naplnění dat v testovacích skriptech.
Poznámka : Testovací data uložená v externím souboru mohou patřit do matice očekávané hodnoty i do matice vstupních hodnot.
jaký je nejlepší bezplatný firewall pro Windows 10
Příklad:
Rozumíme výše uvedenému mechanismu pomocí příkladu.
Uvažujme o funkčnosti „Gmail - přihlášení“.
Krok 1: Prvním a nejdůležitějším krokem je vytvoření externího souboru, který ukládá testovaná data (vstupní data a očekávaná data). Uvažujme například list aplikace Excel.
Krok 2: Dalším krokem je naplnění testovacích dat do Automation test Script. Za tímto účelem lze ke čtení údajů o testu použít několik rozhraní API.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
Výše uvedená metoda pomáhá číst testovací data a níže uvedený testovací krok pomáhá uživateli zadat testovací data v grafickém uživatelském rozhraní.
element.sendKeys (obj_value.get (obj_index));
Profesionálové:
- Nejdůležitější vlastností tohoto rozhraní je, že značně snižuje celkový počet skriptů potřebných k pokrytí všech možných kombinací testovacích scénářů. K otestování kompletní sady scénářů je tedy zapotřebí menší množství kódu.
- Jakákoli změna v matici testovacích dat by nebránila kódu testovacího skriptu.
- Zvyšuje flexibilitu a udržovatelnost
- Může být proveden jeden testovací scénář, který změní hodnoty testovacích dat.
Nevýhody:
- Proces je složitý a vyžaduje další úsilí, aby bylo možné přijít se zdroji testovacích dat a mechanismy čtení.
- Vyžaduje znalost programovacího jazyka, který se používá k vývoji testovacích skriptů.
# 4) Rámec pro testování klíčových slov
Rámec testování na základě klíčových slov je rozšířením rámce testování na základě dat v tom smyslu, že nejen odděluje data testu od skriptů, ale také udržuje určitou sadu kódu patřícího k testovacímu skriptu do externího datového souboru.
Tyto sady kódu jsou známé jako klíčová slova, a proto je rámec pojmenován. Klíčová slova jsou samonaváděcí ohledně toho, jaké akce je třeba v aplikaci provést.
Klíčová slova a testovací data jsou uložena ve struktuře podobné tabulkám, a proto je také populárně považována za tabulkově řízený rámec. Všimněte si, že klíčová slova a testovací data jsou entity nezávislé na použitém automatizačním nástroji.
PříkladTestovací případ testovacího rámce řízeného klíčovým slovem
Ve výše uvedeném příkladu jsou v kódu definována klíčová slova jako přihlášení, kliknutí a ověření odkazu.
V závislosti na povaze aplikace lze odvodit klíčová slova. A všechna klíčová slova lze opakovaně použít několikrát v jednom testovacím případě. Sloupec Locator obsahuje hodnotu lokátoru, která se používá k identifikaci webových prvků na obrazovce nebo testovacích dat, která je třeba zadat.
Všechna požadovaná klíčová slova jsou navržena a umístěna do základního kódu rámce.
Profesionálové:
- Kromě výhod poskytovaných testováním na základě dat nevyžaduje rámec řízený klíčovými slovy, aby uživatel měl na rozdíl od testování na základě dat znalosti skriptování.
- Jedno klíčové slovo lze použít ve více testovacích skriptech.
Nevýhody:
- Uživatel by měl dobře znát mechanismus vytváření klíčových slov, aby mohl efektivně využívat výhody poskytované rámcem.
- Rámec se postupně komplikuje, jak roste a zavádí se řada nových klíčových slov.
# 5) Hybridní testovací rámec
Jak název napovídá, hybridní testovací rámec je kombinací více než jednoho výše uvedeného rámce. Nejlepší na takovém nastavení je, že využívá výhod všech druhů přidružených rámců.
Příkladhybridního rámce
Testovací list by obsahoval jak klíčová slova, tak Data.
Ve výše uvedeném příkladu obsahuje sloupec klíčových slov všechna požadovaná klíčová slova použitá v konkrétním testovacím případě a sloupec dat řídí všechna data požadovaná v testovacím scénáři. Pokud některý krok nepotřebuje žádný vstup, může být ponechán prázdný.
# 6) Vývojový rámec založený na chování
Behavior Driven Development framework umožňuje automatizaci funkčních validací ve snadno čitelném a srozumitelném formátu pro obchodní analytiky, vývojáře, testery atd. Tyto rámce nevyžadují nutně seznámení uživatele s programovacím jazykem. Pro BDD jsou k dispozici různé nástroje, jako je okurka, Jbehave atd. Podrobnosti o BDD rámci jsou popsány dále v tutoriálu Okurky. Také jsme diskutovali o podrobnostech jazyka Gherkin, abychom mohli psát testovací případy v okurce.
Součásti Framework Automation Testing Framework
Ačkoli výše uvedené obrazové znázornění rámce je samozřejmé, přesto bychom zdůraznili několik bodů.
- Objektové úložiště : Zkratka Object Repository jako OR je tvořena sadou typů lokátorů spojených s webovými prvky.
- Testovací data: Vstupní data, se kterými by byl scénář testován, a mohou to být očekávané hodnoty, s nimiž by byly porovnány skutečné výsledky.
- Konfigurační soubor / Konstanty / Nastavení prostředí : Soubor ukládá informace týkající se adresy URL aplikace, informací specifických pro prohlížeč atd. Obecně jsou to informace, které zůstávají statické v celém rámci.
- Generika / Programová logika / Čtečky : Jedná se o třídy, které ukládají funkce, které lze běžně používat v celém rámci.
- Vytvářejte nástroje a průběžnou integraci : Jedná se o nástroje, které pomáhají schopnostem rámce generovat protokoly o zkouškách, e-mailová upozornění a informace o protokolování.
Závěr
Rámečky ilustrované výše jsou nejpopulárnější rámce používané testovacím bratrstvím. Na místě jsou také různé další rámce. Pro všechny další výukové programy bychom vycházeli z Rámec testování dat .
V tomto kurzu jsme probrali základy Automation Framework. Také jsme diskutovali o typech rámců dostupných na trhu.
Další výuka # 21 : V dalším tutoriálu bychom krátce představím vám ukázkový rámec, MS Excel, který by ukládal data z testu, excel manipulace atd.
Do té doby se můžete zeptat na vaše dotazy týkající se automatizačních rámců.
Doporučené čtení
- 7 faktorů ovlivňujících odhad testu projektu automatizace selenu - výuka selenu č. 32
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- 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
- 30+ nejlepších návodů na selen: Naučte se selen se skutečnými příklady
- Výukové programy pro zatmění do hloubky pro začátečníky
- Jak najít prvky v prohlížečích Chrome a IE pro vytváření skriptů selenu - výuka selenu č. 7
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration