most popular test automation frameworks with pros
U posljednjih nekoliko tutorijala za Selenium raspravljali smo o raznim često i popularno korištenim naredbe u WebDriveru , rukovanje web elementima poput web tablica, okvira i rukovanje iznimkama u skriptama selena.
Raspravljali smo o svakoj od ovih naredbi s uzorcima isječaka koda i primjerima kako bismo vam omogućili učinkovitu upotrebu ovih naredbi kad god se susretnete sa sličnim situacijama. Među naredbama o kojima smo raspravljali u prethodnom vodiču, malo njih duguje najveću važnost.
Kako idemo dalje u selenijinoj seriji, koncentrirali bismo svoj fokus na Stvaranje okvira za automatizaciju u sljedećih nekoliko nadolazećih vodiča. Također bismo rasvijetlili različite aspekte okvira za automatizaciju, vrste okvira za automatizaciju, prednosti korištenja okvira i osnovne komponente koje čine okvir za automatizaciju.
Što ćete naučiti:
- Što je Framework?
- Okvir za automatizaciju ispitivanja
- Vrste okvira za automatizaciju ispitivanja
- # 1) Okvir testiranja zasnovan na modulu
- # 2) Okvir za ispitivanje arhitekture knjižnice
- # 3) Okvir testiranja na temelju podataka
- # 4) Okvir testiranja na temelju ključnih riječi
- # 5) Okvir hibridnog testiranja
- # 6) Okvir razvoja vođen ponašanjem
- Zaključak
- Preporučena literatura
Što je Framework?
Smatra se da je okvir kombinacija postavljenih protokola, pravila, standarda i smjernica koji se mogu ugraditi ili slijediti u cjelini kako bi se iskoristile prednosti skele predviđene Okvirom.
Razmotrimo scenarij iz stvarnog života.
Vrlo često koristimo dizala ili dizala. Postoji nekoliko smjernica koje se spominju u dizalu, a koje treba slijediti i ukloniti kako bi se postigla maksimalna korist i dugotrajna usluga iz sustava.
Stoga bi korisnici mogli primijetiti sljedeće smjernice:
- Obavezno provjerite maksimalni kapacitet dizala i nemojte ulaziti u dizalo ako je dosegnut maksimalni kapacitet.
- Pritisnite gumb alarma u slučaju nužde ili problema.
- Dopustite putniku da izađe iz dizala, ako postoji, prije nego što uđe u dizalo i sklonite se od vrata.
- U slučaju požara u zgradi ili ako postoji slučajna situacija, izbjegavajte upotrebu dizala.
- Ne igrajte se i ne skačite unutar dizala.
- Ne pušite unutar dizala.
- Pozovite pomoć / pomoć ako se vrata ne otvore ili ako dizalo uopće ne radi. Ne pokušavajte silom otvoriti vrata.
Može postojati mnogo više pravila ili skupova smjernica. Stoga ove smjernice, ako se slijede, čine sustav korisnijim, dostupnijim, skalabilnijim i manje problematičnim za korisnike.
Sada, dok govorimo o 'Okvirima za automatizaciju testiranja', pomaknimo svoj fokus prema njima.
Okvir za automatizaciju ispitivanja
'Test Automation Framework' je skela postavljena kako bi se osiguralo okruženje za izvršavanje skripti za automatizaciju testa. Okvir pruža korisniku razne pogodnosti koje mu pomažu da učinkovito razvijaju, izvršavaju i izvještavaju o skriptama za automatizaciju. To je više poput sustava koji je stvoren posebno za automatizaciju naših testova.
Na vrlo jednostavnom jeziku možemo reći da je okvir konstruktivna mješavina različitih smjernica, standarda kodiranja, koncepata, procesa, praksi, hijerarhije projekata, modularnosti, mehanizma izvještavanja, ubrizgavanja podataka iz testa itd. U testiranje automatizacije stupova. Dakle, korisnik može slijediti ove smjernice dok automatizira aplikaciju kako bi iskoristio prednosti različitih produktivnih rezultata.
Prednosti mogu biti u različitim oblicima poput jednostavnosti skriptiranja, skalabilnosti, modularnosti, razumljivosti, definicije procesa, ponovne upotrebljivosti, troškova, održavanja itd. Stoga, kako bi mogli iskoristiti ove pogodnosti, programerima se savjetuje da koriste jednu ili više okvir za automatizaciju ispitivanja.
Štoviše, potreba za jedinstvenim i standardnim okvirom za automatizaciju testiranja javlja se kada imate hrpu programera koji rade na različitim modulima iste aplikacije i kada želimo izbjeći situacije u kojima svaki od programera implementira svoj pristup automatizaciji.
Bilješka : Imajte na umu da je okvir za testiranje uvijek neovisan o aplikaciji, odnosno da se može koristiti sa bilo kojom aplikacijom, bez obzira na komplikacije (poput tehnološkog sloga, arhitekture itd.) Aplikacije koja se testira. Okvir bi trebao biti skalabilan i održiv.
Prednost okvira za automatizaciju ispitivanja
- Ponovna upotrebljivost koda
- Maksimalna pokrivenost
- Scenarij oporavka
- Povoljno održavanje
- Minimalna ručna intervencija
- Jednostavno izvještavanje
Vrste okvira za automatizaciju ispitivanja
Sad kad imamo osnovnu ideju o tome što je automatizacijski okvir, u ovom ćemo vam odjeljku predočiti razne tipove testnih automatizacijskih okvira koji su dostupni na tržištu. Također bismo pokušali rasvijetliti njihove prednosti i nedostatke i preporuke za iskoristivost.
Danas postoji različit raspon okvira za automatizaciju. Ti se okviri mogu međusobno razlikovati na temelju podrške različitim ključnim čimbenicima za automatizaciju, poput ponovne upotrebe, jednostavnosti održavanja itd.
Razmotrimo nekoliko najpopularnijih okvira za automatizaciju ispitivanja:
- Okvir ispitivanja zasnovan na modulu
- Okvir za ispitivanje arhitekture knjižnice
- Okvir ispitivanja na temelju podataka
- Okvir za testiranje na temelju ključnih riječi
- Okvir hibridnog ispitivanja
- Okvir razvoja vođen ponašanjem
(kliknite na sliku za uvećan prikaz)
Razmotrimo detaljno svaku od njih.
najbolji kompajler za c ++
Ali prije toga, želio bih spomenuti i da, unatoč tome što ima ovaj okvir, korisnik se uvijek koristi za izgradnju i dizajn vlastitog okvira koji najbolje odgovara njegovim / njezinim projektnim potrebama.
# 1) Okvir testiranja zasnovan na modulu
Okvir za testiranje zasnovan na modulu temelji se na jednom od popularno poznatih koncepata OOP-ova - Apstrakcija. Okvir dijeli cjelokupnu 'Probnu aplikaciju' na niz logičkih i izoliranih modula. Za svaki modul izrađujemo zasebnu i neovisnu testnu skriptu. Dakle, kada se ove testne skripte povežu zajedno gradi veću testnu skriptu koja predstavlja više od jednog modula.
Ovi su moduli odvojeni apstrakcijskim slojem na takav način da promjene izvršene u odjeljcima aplikacije ne daju utjecaja na ovaj modul.
Pros:
- Okvir uvodi visoku razinu modularizacije što dovodi do lakšeg i isplativijeg održavanja.
- Okvir je prilično prilagodljiv
- Ako su promjene implementirane u jednom dijelu aplikacije, treba popraviti samo testnu skriptu koja predstavlja taj dio aplikacije kako bi svi ostali dijelovi ostali netaknuti.
Protiv:
- Tijekom implementacije testnih skripti za svaki modul zasebno, ugrađujemo testne podatke (podatke s kojima bismo trebali izvršiti testiranje) u testne skripte. Dakle, kad god bismo trebali testirati s različitim skupom podataka o testiranju, zahtijeva manipulacije u test skriptama.
# 2) Okvir za ispitivanje arhitekture knjižnice
Okvir za ispitivanje arhitekture knjižnice temeljno je i temeljen na modulskom okviru za testiranje, s nekim dodatnim prednostima. Umjesto da aplikaciju koja se testira podijelimo na test skripte, aplikaciju razdvajamo na funkcije, odnosno uobičajene funkcije mogu koristiti i drugi dijelovi aplikacije. Tako stvaramo zajedničku knjižnicu koja čini zajedničke funkcije za testiranu aplikaciju. Stoga se ove knjižnice mogu pozivati iz testnih skripti kad god je to potrebno.
Osnovni temelj iza okvira je odrediti zajedničke korake i grupirati ih u funkcije u biblioteci te pozvati te funkcije u testnim skriptama kad god je to potrebno.
Primjer : Koraci za prijavu mogu se kombinirati u funkciju i čuvati u knjižnici. Stoga sve testne skripte koje zahtijevaju prijavu u aplikaciju mogu pozvati tu funkciju umjesto da ispisuju kôd iznova.
Pros:
- Poput modularno zasnovanog okvira, ovaj okvir također uvodi visoku razinu modularizacije što dovodi do lakšeg i isplativijeg održavanja i skalabilnosti.
- Kako stvaramo zajedničke funkcije koje se mogu učinkovito koristiti od različitih testnih skripti u okviru Framework-a. Dakle, okvir uvodi veliki stupanj ponovne upotrebljivosti.
Protiv:
- Poput okvira temeljenog na modulima, test podaci se unose u testne skripte, pa bi svaka promjena u testnim podacima zahtijevala promjene i u testnoj skripti.
- Uvođenjem knjižnica okvir postaje malo kompliciran.
# 3) Okvir testiranja na temelju podataka
Tijekom automatizacije ili testiranja bilo koje aplikacije, ponekad će biti potrebno testirati istu funkciju više puta s različitim skupom ulaznih podataka. Stoga, u takvim slučajevima, ne možemo dopustiti da podaci o testiranju budu ugrađeni u test skriptu. Stoga se savjetuje zadržavanje testnih podataka u nekoj vanjskoj bazi podataka izvan testnih skripti.
Okvir za testiranje na temelju podataka pomaže korisniku da međusobno razdvoji logiku testne skripte i testne podatke. Omogućuje korisniku pohranjivanje testnih podataka u vanjsku bazu podataka. Vanjske baze podataka mogu biti datoteke svojstava, xml datoteke, excel datoteke, tekstualne datoteke, CSV datoteke, ODBC spremišta itd. Podaci su konvencionalno pohranjeni u parovima 'Ključ-vrijednost'. Dakle, ključ se može koristiti za pristup i popunjavanje podataka u testnim skriptama.
Bilješka : Test podaci pohranjeni u vanjskoj datoteci mogu pripadati matrici očekivane vrijednosti kao i matrici ulaznih vrijednosti.
Primjer:
Shvatimo gornji mehanizam uz pomoć primjera.
Razmotrimo funkciju 'Gmail - Prijava'.
Korak 1: Prvi i najvažniji korak je stvaranje vanjske datoteke koja pohranjuje testne podatke (ulazni podaci i očekivani podaci). Razmotrimo primjerice excel list.
Korak 2: Sljedeći je korak popunjavanje test podataka u skriptu za automatizaciju testa. U tu se svrhu za čitanje podataka o testiranju može koristiti nekoliko API-ja.
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++; }
Gornja metoda pomaže u čitanju testnih podataka, a donji testni korak pomaže korisniku da upiše testne podatke na GUI.
element.sendKeys (obj_value.get (obj_index));
Pros:
- Najvažnija značajka ovog okvira je da znatno smanjuje ukupan broj skripti potrebnih za pokrivanje svih mogućih kombinacija testnih scenarija. Stoga je potrebna manja količina koda za testiranje cijelog niza scenarija.
- Svaka promjena matrice testnih podataka ne bi omela kôd testne skripte.
- Povećava fleksibilnost i održivost
- Može se izvršiti jedan testni scenarij mijenjanjem vrijednosti podataka testa.
Protiv:
- Postupak je složen i zahtijeva dodatni napor za pronalaženje testnih izvora podataka i mehanizama čitanja.
- Zahtijeva znanje programskog jezika koji se koristi za razvoj testnih skripti.
# 4) Okvir testiranja na temelju ključnih riječi
Okvir za testiranje vođen ključnim riječima proširenje je Okvira za testiranje na temelju podataka u smislu da ne samo da razdvaja testne podatke od skripti, već zadržava i određeni skup koda koji pripada testnoj skripti u vanjsku datoteku podataka.
Ovi skupovi koda poznati su pod nazivom Ključne riječi i stoga je okvir tako nazvan. Ključne riječi su samoupravne o tome koje radnje treba izvršiti na aplikaciji.
Ključne riječi i testni podaci pohranjeni su u strukturi nalik tablici, pa se stoga u narodu također smatra okvirom vođenim tablicama. Primijetite da su ključne riječi i podaci o ispitivanju entiteti neovisni o alatu za automatizaciju koji se koristi.
PrimjerTest slučaj okvira za vođenje ključnih riječi
U gornjem primjeru ključne riječi poput prijave, klika i provjere veze definirane su u kodu.
Ovisno o prirodi aplikacije, mogu se izvesti ključne riječi. I sve se ključne riječi mogu ponovno koristiti više puta u jednom testnom slučaju. Stupac Locator sadrži vrijednost lokatora koja se koristi za identifikaciju web elemenata na zaslonu ili testnih podataka koje treba dostaviti.
Sve potrebne ključne riječi dizajnirane su i smještene u osnovni kôd okvira.
Pros:
- Pored prednosti koje pruža testiranje na temelju podataka, okvir vođen ključnim riječima ne zahtijeva da korisnik posjeduje znanje o skriptiranju, za razliku od testiranja na temelju podataka.
- Jedna ključna riječ može se koristiti u više testnih skripti.
Protiv:
- Korisnik bi trebao biti dobro upućen u mehanizam za stvaranje ključnih riječi kako bi mogao učinkovito iskoristiti blagodati koje pruža okvir.
- Okvir se postupno komplicira kako raste, a uvode se i brojne nove ključne riječi.
# 5) Okvir hibridnog testiranja
Kao što i samo ime govori, Hibridni okvir za testiranje kombinacija je više od jednog gore spomenutog okvira. Najbolja stvar kod takvog postavljanja je što koristi prednosti svih vrsta pridruženih okvira.
Primjerhibridnog okvira
Testni bi list sadržavao i ključne riječi i podatke.
U gornjem primjeru stupac ključnih riječi sadrži sve potrebne ključne riječi korištene u određenom testnom slučaju, a stupac podataka pokreće sve podatke potrebne u testnom scenariju. Ako bilo koji korak ne treba nikakav unos, onda ga možete ostaviti praznim.
# 6) Okvir razvoja vođen ponašanjem
Okvir za razvoj temeljen na ponašanju omogućuje automatizaciju funkcionalnih provjera valjanosti u lako čitljivom i razumljivom formatu poslovnim analitičarima, programerima, testerima itd. Takvi okviri ne zahtijevaju nužno da korisnik bude upoznat s programskim jezikom. Za BDD postoje različiti alati poput krastavca, Jbehavea itd. Pojedinosti o BDD okviru raspravljat će se kasnije u tutorialu o krastavcima. Također smo razgovarali o pojedinostima o kornišonskom jeziku kako bismo napisali test slučajeve u krastavcu.
Komponente okvira za ispitivanje automatizacije
Iako je gornji slikovni prikaz okvira sam po sebi razumljiv, ipak bismo istaknuli nekoliko točaka.
- Spremište objekata : Akronim Spremišta objekata kao OR sastoji se od skupa tipova lokatora povezanih s web elementima.
- Podaci o ispitivanju: Ulazni podaci s kojima bi se scenarij testirao i to mogu biti očekivane vrijednosti s kojima bi se uspoređivali stvarni rezultati.
- Konfiguracijska datoteka / Konstante / Postavke okruženja : Datoteka pohranjuje informacije o URL-u aplikacije, informacije specifične za preglednik itd. To su općenito podaci koji ostaju statični u cijelom okviru.
- Generički / Programska logika / Čitatelji : Ovo su klase koje pohranjuju funkcije koje se mogu često koristiti u cijelom okviru.
- Izrada alata i kontinuirana integracija : Ovo su alati koji pomažu mogućnostima okvira za generiranje izvještaja o testiranju, obavijesti e-poštom i podataka zapisivanja.
Zaključak
Gore ilustrirani okviri najpopularniji su okviri koje koristi bratstvo za testiranje. U mjestu postoje i razni drugi okviri. Za sve daljnje vodiče temeljili bismo se na Okvir ispitivanja na temelju podataka .
U ovom uputstvu razgovarali smo o osnovama okvira za automatizaciju. Također smo razgovarali o vrstama okvira dostupnih na tržištu.
Sljedeći vodič # 21 : U sljedećem uputstvu bismo kratko upoznati vas s uzorkom okvira, MS Excelom koji će pohraniti test podatke, excel manipulacije itd.
Do tada slobodno postavljajte svoja pitanja o okvirima automatizacije.
Preporučena literatura
- 7 čimbenika koji utječu na procjenu ispitivanja projekta automatizacije selena - Vodič za selen br. 32
- Uvod u Selenium WebDriver - Vodič za selenij br. 8
- Učinkoviti scenariji za skriptiranje i rješavanje problema sa selenom - Vodič za selenij br. 27
- Otklanjanje pogrešaka u skriptama za selen sa zapisnicima (Vodič za Log4j) - Vodič za selen # 26
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Dubinski vodiči pomračenja za početnike
- Kako pronaći elemente u preglednicima Chrome i IE za izgradnju skripti za selen - Vodič za selenij br. 7
- Vodič za selenij krastavaca: Integracija Java Selenium WebDriver za krastavac