most popular test automation frameworks with pros
V posledných niekoľkých výučbách selénu sme diskutovali o rôznych bežne a populárne používaných príkazy vo WebDriveri , spracovanie webových prvkov, ako sú webové tabuľky, rámy a vybavovanie výnimiek v selénových skriptoch.
Diskutovali sme o každom z týchto príkazov pomocou ukážkových úryvkov kódu a príkladov, aby sme vám umožnili efektívne používať tieto príkazy vždy, keď sa vyskytnú podobné situácie. Medzi príkazmi, o ktorých sme hovorili v predchádzajúcom tutoriále, je málo z nich vďačnú maximálnej dôležitosti.
Pri postupe v sérii selén by sme sa sústredili na Tvorba automatizačného rámca v niekoľkých nasledujúcich pripravovaných návodoch. Tiež by sme si posvietili na rôzne aspekty automatizačného rámca, typy automatizačných rámcov, výhody použitia rámca a základné komponenty, ktoré tvoria automatizačný rámec.
ako sa stať testerom produktu
Čo sa dozviete:
- Čo je to Framework?
- Testovací automatizačný rámec
- Typy rámca automatizácie testov
- # 1) Rámec pre testovanie na základe modulov
- # 2) Rámec na testovanie architektúry knižnice
- # 3) Rámec testovania dát
- # 4) Rámec testovania kľúčových slov
- # 5) Hybridný testovací rámec
- # 6) Rámec vývoja založený na správaní
- Záver
- Odporúčané čítanie
Čo je to Framework?
Rámec sa považuje za kombináciu stanovených protokolov, pravidiel, štandardov a pokynov, ktoré je možné začleniť alebo dodržiavať ako celok, aby sa tak využili výhody lešenia poskytovaného týmto rámcom.
Zvážme scenár z reálneho života.
Veľmi často používame výťahy alebo výťahy. Existuje niekoľko pokynov, ktoré sú spomenuté vo výťahu, ktoré treba dodržiavať a o ktoré sa treba starať, aby sa maximalizoval úžitok a predĺžila životnosť systému.
Používatelia si teda mohli všimnúť nasledujúce pokyny:
- Neustále kontrolujte maximálnu kapacitu výťahu a nenastupujte do výťahu, ak dosiahla maximálnu kapacitu.
- V prípade núdze alebo problému stlačte tlačidlo alarmu.
- Pred vstupom do výťahu nechajte spolujazdca vystúpiť z výťahu, ak existuje, a postavte sa pred dvere.
- V prípade požiaru v budove alebo v prípade náhodnej situácie sa vyhnite použitiu výťahu.
- Nehrajte sa a neskákajte vo vnútri výťahu.
- Vo výťahu nefajčite.
- Ak sa dvere neotvárajú alebo ak výťah nefunguje vôbec, zavolajte pomoc. Nepokúšajte sa dvere otvárať nasilu.
Môže existovať oveľa viac pravidiel alebo súborov pokynov. Ak teda budú tieto pokyny dodržané, urobia systém užitočnejším, prístupnejším, škálovateľným a menej znepokojujúcim pre používateľov.
Teraz, keď hovoríme o „Test Automation Frameworks“, zamerajme sa na ne.
Testovací automatizačný rámec
„Rámec testovacej automatizácie“ je lešenie, ktoré je stanovené tak, aby poskytovalo prostredie na vykonávanie testovacích skriptov automatizácie. Rámec poskytuje používateľovi rôzne výhody, ktoré mu pomáhajú efektívne vyvíjať, spúšťať a hlásiť skripty automatizačných testov. Je to skôr ako systém, ktorý bol vytvorený špeciálne na automatizáciu našich testov.
Vo veľmi jednoduchom jazyku môžeme povedať, že rámec je konštruktívnou zmesou rôznych smerníc, kódovacích štandardov, konceptov, procesov, postupov, hierarchií projektov, modularity, mechanizmu podávania správ, injekcií testovacích údajov atď. Do testovania automatizácie piliera. Používateľ teda môže postupovať podľa týchto pokynov a zároveň automatizovať aplikáciu, aby využil výhody rôznych produktívnych výsledkov.
Výhody môžu mať rôzne formy, ako napríklad ľahké skriptovanie, škálovateľnosť, modularita, zrozumiteľnosť, definícia procesu, opätovné použitie, náklady, údržba atď. Vývojárom sa preto odporúča, aby používali jednu alebo viac z týchto výhod rámec automatizácie testov.
Potreba jednotného a štandardného testovacieho automatizačného rámca navyše vzniká, keď máte veľa vývojových pracovníkov pracujúcich na rôznych moduloch tej istej aplikácie a keď sa chceme vyhnúť situáciám, keď každý z vývojárov implementuje svoj prístup k automatizácii.
Poznámka : Vezmite na vedomie, že testovací rámec je vždy nezávislý od aplikácie, to znamená, že ho možno použiť s akoukoľvek aplikáciou bez ohľadu na komplikácie testovanej aplikácie (napríklad technologický zásobník, architektúra atď.). Rámec by mal byť škálovateľný a udržiavateľný.
Výhoda rámca automatizácie testov
- Opätovná použiteľnosť kódu
- Maximálne pokrytie
- Scenár obnovy
- Lacná údržba
- Minimálny manuálny zásah
- Jednoduché hlásenie
Typy rámca automatizácie testov
Teraz, keď máme základnú predstavu o tom, čo je to Automation Framework, by sme vás v tejto časti vyzvali s rôznymi typmi testovacích automatizačných rámcov, ktoré sú dostupné na trhu. Skúsime tiež osvetliť ich výhody a nevýhody a odporúčania týkajúce sa použiteľnosti.
V dnešnej dobe existuje rozdielna škála automatizačných rámcov. Tieto rámce sa môžu navzájom líšiť na základe ich podpory rôznych kľúčových faktorov pri automatizácii, ako je opätovné použitie, ľahká údržba atď.
Poďme diskutovať o niekoľkých najpopulárnejších rámcoch automatizácie testov:
- Rámec pre testovanie na základe modulov
- Rámec na testovanie architektúry knižnice
- Rámec testovania na základe údajov
- Rámec testovania na základe kľúčových slov
- Hybridný testovací rámec
- Rámec vývoja založený na správaní
(kliknite na obrázok pre zväčšenie)
Poďme si každý z nich podrobne rozobrať.
Predtým by som však rád spomenul, že napriek používaniu tohto rámca je používateľ vždy motivovaný vytvárať a navrhovať svoj vlastný rámec, ktorý je najvhodnejší pre jeho / jej projektové potreby.
# 1) Rámec pre testovanie na základe modulov
Testovací rámec založený na moduloch je založený na jednom z populárnych konceptov OOP - Abstrakcia. Rámec rozdeľuje celú „Testovanú aplikáciu“ na niekoľko logických a izolovaných modulov. Pre každý modul vytvoríme samostatný a nezávislý testovací skript. Keď sa teda tieto testovacie skripty spojili, zostrojí sa väčší testovací skript predstavujúci viac ako jeden modul.
Tieto moduly sú oddelené abstrakčnou vrstvou tak, aby zmeny vykonané v častiach aplikácie nepriniesli žiadny vplyv na tento modul.
Klady:
- Rámec zavádza vysokú úroveň modularizácie, ktorá vedie k ľahšej a nákladovo efektívnej údržbe.
- Rámec je do značnej miery škálovateľný
- Ak sú zmeny implementované v jednej časti aplikácie, je potrebné opraviť iba testovací skript predstavujúci túto časť aplikácie, aby všetky ostatné časti zostali nedotknuté.
Zápory:
- Pri implementácii testovacích skriptov pre každý modul zvlášť vložíme testovacie údaje (údaje, s ktorými máme testovať) do testovacích skriptov. Kedykoľvek teda máme testovať s inou sadou testovacích údajov, vyžaduje sa vykonanie manipulácie v testovacích skriptoch.
# 2) Rámec na testovanie architektúry knižnice
Rámec testovania architektúry knižnice je zásadne a základne založený na testovacom rámci založenom na moduloch s niektorými ďalšími výhodami. Namiesto rozdelenia testovanej aplikácie do testovacích skriptov aplikáciu rozdelíme na funkcie alebo skôr môžu byť bežné funkcie použité aj v ostatných častiach aplikácie. Tak vytvárame spoločnú knižnicu tvoriacu spoločné funkcie pre testovanú aplikáciu. Preto je možné tieto knižnice volať z testovacích skriptov, kedykoľvek je to potrebné.
Základným základom rámca je určiť spoločné kroky, zoskupiť ich do funkcií v knižnici a kedykoľvek tieto funkcie volať v testovacích skriptoch.
Príklad : Kroky prihlásenia je možné spojiť do funkcie a uchovať v knižnici. Preto všetky testovacie skripty, ktoré vyžadujú prihlásenie do aplikácie, môžu túto funkciu volať namiesto opätovného písania kódu.
najlepší nástroj na kontrolu kódu pre git
Klady:
- Rovnako ako rámec založený na moduloch, aj tento rámec zavádza vysokú úroveň modularizácie, ktorá vedie k ľahšej a nákladovo efektívnej údržbe a škálovateľnosti.
- Pri vytváraní bežných funkcií, ktoré môžu efektívne využívať rôzne testovacie skripty v rámci Framework. Rámec tak zavádza veľkú mieru opätovného použitia.
Zápory:
- Rovnako ako rámec založený na moduloch, testovacie údaje sa ukladajú do testovacích skriptov, takže akákoľvek zmena v testovacích dátach by vyžadovala zmeny aj v testovacom skripte.
- Zavedením knižníc sa rámec trochu skomplikoval.
# 3) Rámec testovania dát
Pri automatizácii alebo testovaní ľubovoľnej aplikácie môže byť niekedy potrebné testovať rovnakú funkčnosť viackrát s odlišnou sadou vstupných údajov. V takýchto prípadoch teda nemôžeme nechať testovacie údaje vložené do testovacieho skriptu. Preto sa odporúča uchovať testovacie údaje v externej databáze mimo testovacích skriptov.
Rámec testovania na základe dát pomáha používateľovi oddeliť logiku testovacieho skriptu a testovacie údaje od seba navzájom. Umožňuje používateľovi ukladať testovacie údaje do externej databázy. Externými databázami môžu byť súbory vlastností, súbory XML, súbory programu Excel, textové súbory, súbory CSV, úložiská ODBC atď. Údaje sa konvenčne ukladajú do párov „kľúč - hodnota“. Kľúč teda možno použiť na prístup a vyplnenie údajov v testovacích skriptoch.
Poznámka : Testovacie dáta uložené v externom súbore môžu patriť do matice očakávanej hodnoty aj do matice vstupných hodnôt.
Príklad:
Pochopme vyššie uvedený mechanizmus pomocou príkladu.
Uvažujme o funkcii „Gmail - prihlásenie“.
Krok 1: Najdôležitejším krokom je vytvorenie externého súboru, ktorý uchováva testovacie údaje (vstupné údaje a očakávané údaje). Uvažujme napríklad o hárku programu Excel.
Krok 2: Ďalším krokom je vyplnenie testovacích údajov do Automation test Script. Na tento účel možno na čítanie údajov z testu použiť niekoľko 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++; }
Vyššie uvedená metóda pomáha načítať údaje z testu a nasledujúci krok testu umožňuje používateľovi zadať údaje o teste do grafického používateľského rozhrania.
element.sendKeys (obj_value.get (obj_index));
Klady:
- Najdôležitejšou vlastnosťou tohto rámca je to, že výrazne znižuje celkový počet skriptov potrebných na pokrytie všetkých možných kombinácií testovacích scenárov. Na otestovanie kompletnej sady scenárov je teda potrebné menšie množstvo kódu.
- Akákoľvek zmena v testovacej dátovej matici by nebránila kódu testovacieho skriptu.
- Zvyšuje flexibilitu a udržiavateľnosť
- Môže sa vykonať jeden testovací scenár, ktorý zmení hodnoty testovacích údajov.
Zápory:
- Tento proces je zložitý a vyžaduje si ďalšie úsilie, pokiaľ ide o zdroje testovacích údajov a mechanizmy čítania.
- Vyžaduje znalosti programovacieho jazyka, ktorý sa používa na vývoj testovacích skriptov.
# 4) Rámec testovania kľúčových slov
Rámec testovania na základe kľúčových slov je rozšírením rámca testovania na základe dát v tom zmysle, že nielenže oddeľuje testovacie údaje od skriptov, ale aj zachováva určitú sadu kódu patriacu k testovaciemu skriptu do externého dátového súboru.
Táto sada kódu je známa ako Kľúčové slová, a preto je tento rámec pomenovaný. Kľúčové slová sú samovoľné, pokiaľ ide o to, aké kroky je potrebné v súvislosti s aplikáciou vykonať.
Kľúčové slová a údaje o teste sú uložené v tabuľkovej štruktúre, a preto sa ľudovo považujú aj za rámec riadený tabuľkami. Všimnite si, že kľúčové slová a údaje z testov sú entity nezávislé od použitého automatizačného nástroja.
PríkladTestovací prípad testovacieho rámca riadeného kľúčovým slovom
Vo vyššie uvedenom príklade sú kľúčové slová ako prihlásenie, kliknutie a overenie odkazu definované v kóde.
Podľa povahy aplikácie je možné odvodiť kľúčové slová. A všetky kľúčové slová je možné opakovane použiť opakovane v jednom testovacom prípade. Stĺpec Locator obsahuje hodnotu lokátora, ktorá sa používa na identifikáciu webových prvkov na obrazovke alebo testovacích údajov, ktoré je potrebné dodať.
Všetky požadované kľúčové slová sú navrhnuté a umiestnené v základnom kóde rámca.
Klady:
- Okrem výhod poskytovaných testovaním na základe údajov, rámec založený na kľúčových slovách nevyžaduje od používateľa, aby mal znalosti skriptovania, na rozdiel od testovania na základe údajov.
- Jedno kľúčové slovo je možné použiť vo viacerých testovacích skriptoch.
Zápory:
- Používateľ by mal dobre ovládať mechanizmus vytvárania kľúčových slov, aby mohol efektívne využívať výhody poskytované rámcom.
- Rámec sa komplikuje postupne, ako rastie a zavádza sa množstvo nových kľúčových slov.
# 5) Hybridný testovací rámec
Ako naznačuje názov, hybridný testovací rámec je kombináciou viac ako jedného vyššie spomenutého rámca. Najlepšie na takomto nastavení je, že využíva výhody všetkých druhov súvisiacich rámcov.
Príkladhybridného rámca
Testovací hárok by obsahoval kľúčové slová aj údaje.
skopírovať pole do iného poľa java
Vo vyššie uvedenom príklade stĺpec s kľúčovými slovami obsahuje všetky požadované kľúčové slová použité v konkrétnom testovacom prípade a stĺpec s údajmi obsahuje všetky údaje požadované v testovacom scenári. Ak niektorý krok nepotrebuje žiadny vstup, môže zostať prázdny.
# 6) Rámec vývoja založený na správaní
Behaviorálny vývojový rámec umožňuje automatizáciu funkčných validácií v ľahko čitateľnom a zrozumiteľnom formáte pre obchodných analytikov, vývojárov, testerov atď. Takéto rámce nevyhnutne nevyžadujú, aby bol používateľ oboznámený s programovacím jazykom. Pre BDD sú k dispozícii rôzne nástroje, ako napríklad uhorka, Jbehave atď. Podrobnosti o BDD rámci sú popísané nižšie v návode na uhorku. Diskutovali sme tiež o podrobnostiach jazyka Gherkin, aby sme mohli písať testovacie prípady v uhorke.
Komponenty rámca na testovanie automatizácie
Aj keď je vyššie uvedené obrazové znázornenie rámca samozrejmé, ešte by sme zdôraznili niekoľko bodov.
- Objektové úložisko : Skratka Object Repository ako OR je tvorená množinou typov lokátorov spojených s webovými prvkami.
- Testovacie údaje: Vstupné údaje, s ktorými by sa scenár testoval, môžu to byť očakávané hodnoty, s ktorými by sa porovnali skutočné výsledky.
- Konfiguračný súbor / Konštanty / Nastavenia prostredia : Súbor ukladá informácie týkajúce sa adresy URL aplikácie, informácií špecifických pre prehliadač atď. Spravidla sú to informácie, ktoré v rámci celého rámca zostanú statické.
- Generiká / Programové logiky / Čítačky : Toto sú triedy, ktoré uchovávajú funkcie, ktoré je možné bežne používať v celom rámci.
- Vytváranie nástrojov a nepretržitá integrácia : Toto sú nástroje, ktoré pomáhajú schopnostiam rámca generovať protokoly o testoch, e-mailové oznámenia a informácie o protokolovaní.
Záver
Vyššie zobrazené rámce sú najobľúbenejšími rámcami, ktoré používa testovacie bratstvo. Na mieste sú aj rôzne ďalšie rámce. Pri všetkých ďalších výučbách by sme vychádzali z Rámec testovania na základe údajov .
V tomto tutoriáli sme diskutovali o základoch automatizačného rámca. Diskutovali sme tiež o druhoch rámcov dostupných na trhu.
Nasledujúci kurz č. 21 : V nasledujúcom návode by sme stručne povedali zoznámime vás so vzorovým rámcom, programom MS Excel, ktorý by ukladal údaje z testov, vynikal v manipulácii atď.
Potom sa môžete pokojne opýtať na dotazy týkajúce sa rámcov automatizácie.
Odporúčané čítanie
- 7 faktorov ovplyvňujúcich odhad testu projektu automatizácie selénu - selén výučba # 32
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- 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
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Hĺbkové návody pre zatmenie pre začiatočníkov
- Ako nájsť prvky v prehliadačoch Chrome a IE na vytváranie skriptov selénu - selénový tutoriál # 7
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration