Selēna automatizācijas ietvars: ar datiem pamatots, ar atslēgvārdiem pamatots & Hibrīds

Satura rādītājs:

Anonim

Kas ir Selenium Framework?

Selēns Framework ir koda struktūra, kas padara kodu uzturēšana viegli un efektīvi. Bez ietvariem lietotāji var ievietot “kodu” un “datus” tajā pašā vietā, kas nav ne atkārtoti izmantojama, ne lasāma. Sistēmas rada labvēlīgus rezultātus, piemēram, palielinātu koda atkārtotu izmantojamību, lielāku pārnesamību, zemākas skripta uzturēšanas izmaksas, labāku koda lasāmību utt.

Manuālo testa gadījumu automatizēšanai galvenokārt ir trīs veidu ietvari, kurus Selenium WebDriver ir izveidojis

  • Ar datiem pamatota testa sistēma
  • Atslēgvārdu vadīta testa sistēma
  • Hibrīdo testu ietvars

Datu vadīts pamatselēns

Datu vadīts ietvars selēnā ir metode, kā atdalīt datu kopas no testa gadījuma. Kad datu kopas ir atdalītas no testa gadījuma, tās var viegli modificēt atbilstoši noteiktai funkcionalitātei, nemainot kodu. To izmanto, lai izgūtu testa gadījumus un komplektus no ārējiem failiem, piemēram, Excel, .csv, .xml vai dažām datu bāzes tabulām.

Lai lasītu vai rakstītu Excel, Apache nodrošina ļoti slavenu bibliotēkas IP. Šī bibliotēka spēj pietiekami lasīt un rakstīt gan Excel XLS, gan XLSX failu formātus.

Lai lasītu XLS failus, POI bibliotēka nodrošina HSSF ieviešanu.

Lai lasītu XLSX, jāizvēlas POI bibliotēkas XSSF ieviešana . Detalizēti izpētīsim šīs ieviešanas iespējas.

Mēs jau uzzinājām par datu vadītu testēšanu mūsu iepriekšējā apmācībā

Atslēgvārdu vadīts pamatselēns

Atslēgvārdu vadīts ietvars selēnā ir metode, ko izmanto, lai paātrinātu automātisko testēšanu, atdalot atslēgvārdus kopējam funkciju un instrukciju kopumam. Visas veicamās darbības un instrukcijas ir ierakstītas kādā ārējā failā, piemēram, Excel lapā. Lietotāji var viegli kontrolēt un norādīt funkcijas, kuras viņi vēlas pārbaudīt.

Lūk, kā izskatās pilnīgs ietvars

Kā redzat, tas ir 5 pakāpju ietvars. Pētīsim to pakāpeniski detalizēti

1. darbība)

  • Draivera skripts Execute.java izsauks ReadGuru99ExcelFile.java
  • ReadGuru99ExcelFile.java ir IP skripts, lai nolasītu datus no Excel

2. solis)

  • ReadGuru99ExcelFile.java nolasīs datus no TestCase.xlsx
  • Lūk, kā lapa izskatās-
  • Saskaņā ar atslēgvārdiem, kas ierakstīti Excel failā, sistēma veiks darbību ar lietotāja interfeisu.
  • Piemēram, mums jānoklikšķina uz pogas Pieteikties. Attiecīgi mūsu Excel būs atslēgvārds “Noklikšķiniet”. Tagad AUT var būt simtiem pogu lapā, lai identificētu pogu Pieteikties, programmā Excel mēs ievadīsim Object Name kā loginPoga un objekta tips kā nosaukums (skat. Iezīmēto rindu augšējā attēlā). Objekta tips varētu būt Xpath, nosaukums CSS vai jebkura cita vērtība

3. solis) ReadGuru99ExcelFile.java nodos šos datus draivera skriptam Execute.java

4. solis)

  • Visiem mūsu lietotāja saskarnes tīmekļa elementiem mums ir jāizveido objektu repozitorijs, kur izvietosim to elementu lokatoru (piemēram, Xpath, nosaukums, CSS ceļš, klases nosaukums utt.)
  • Execute.java (mūsu draivera skripts) nolasīs visu objektu krātuvi un saglabās to mainīgajā
  • Lai lasītu šo objektu repozitoriju, mums ir nepieciešama klase ReadObject, kuras lasīšanai ir getObjectRepository metode.

PIEZĪME: Jūs domājat, kāpēc mums ir jāizveido objektu repozitorijs. Atbilde palīdz koda uzturēšanā. Piemēram, mēs izmantojam pogu ar nosaukumu = btnlogin 10 dažādos testa gadījumos. Nākotnē izstrādātājs nolemj mainīt nosaukumu no btnlogin, lai iesniegtu. Jums būs jāveic izmaiņas visos 10 pārbaudes gadījumos. Objekta repozitorija gadījumā izmaiņas veiksiet tikai vienu reizi repozitorijā.

5. solis)

  • Vadītājs nodos datus no Excel un objektu krātuves UIOperation klasei
  • UIOperation klasei ir funkcijas, lai veiktu darbības, kas atbilst atslēgvārdiem, piemēram, CLICK, SETTEXT uc
  • UIOperation klase ir Java klase, kurai faktiski tiek ieviests kods, lai veiktu darbības ar tīmekļa elementiem

Viss projekts izskatīsies

Apskatīsim piemēru:

Pārbaudes scenārijs

  • Mēs izpildām 2 pārbaudes gadījumus
  • 1. testa gadījums:
  • Pāriet uz http://demo.guru99.com/V4/
  • Ievadiet lietotāja ID
  • Ievadi paroli
  • Noklikšķiniet uz Atiestatīt
  • 2. testa gadījums:
  • Pāriet uz http://demo.guru99.com/V4/
  • Ievadiet lietotāja ID
  • Ievadi paroli
  • Noklikšķiniet uz Pieteikties

objekts.pašības

url = http: //demo.guru99.com/V4/

lietotājvārds = uid

parole = parole

nosaukums = barons

loginButton = btnLogin

resetButton = btnReset

ReadGuru99ExcelFile.java

pakete excelExportAndFileIO;importēt java.io.File;importēt java.io.FileInputStream;importēt java.io.IOException;importēt org.apache.poi.hssf.usermodel.HSSFWorkbook;importēt org.apache.poi.ss.usermodel.Sheet;importēt org.apache.poi.ss.usermodel.Workbook;importēt org.apache.poi.xssf.usermodel.XSSFWorkbook;publiskā klase ReadGuru99ExcelFile {publiskā lapa readExcel (String filePath, String fileName, String sheetName) izmet IOException {// Lai atvērtu failu xlsx, izveidojiet File klases objektuFile file = new File (filePath + "\\" + fileName);// Izveidojiet klases FileInputStream objektu, lai lasītu Excel failuFileInputStream inputStream = jauns FileInputStream (fails);Darbgrāmata guru99Workbook = null;// Atrodiet faila paplašinājumu, sadalot faila nosaukumu apakšstacijā un iegūstot tikai paplašinājuma nosaukumuString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Pārbaudiet nosacījumu, vai fails ir xlsx failsja (fileExtensionName.equals (". xlsx")) {// Ja tas ir xlsx fails, izveidojiet XSSFWorkbook klases objektuguru99Workbook = jauns XSSFWorkbook (inputStream);}// Pārbaudiet nosacījumu, vai fails ir xls failscits, ja (fileExtensionName.equals (". xls")) {// Ja tas ir xls fails, izveidojiet XSSFWorkbook klases objektuguru99Workbook = jauns HSSFWorkbook (inputStream);}// Izlasiet lapu darbgrāmatas iekšpusē pēc nosaukumaLapa guru99Sheet = guru99Workbook.getSheet (sheetName);atgriezties guru99Sheet;}}

ReadObject.java

pakas darbība;importēt java.io.File;importēt java.io.FileInputStream;importēt java.io.IOException;importēt java.io.InputStream;importēt java.util.Īpašības;publiskā klase ReadObject {Rekvizīti p = new Rekvizīti ();public Properties getObjectRepository () iemet IOException {// Lasīt objektu repozitorija failuInputStream straume = new FileInputStream (jauns fails (System.getProperty ("user.dir") + "\\ src \\ objekti \\ object.properties"));// ielādēt visus objektusp. slodze (straume);atgriešanās p;}}

UIOoperācija.java

pakas darbība;importēt java.util.Īpašības;importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;publiskā klase UIOoperation {WebDriver draiveris;publiskā UIOperation (WebDriver draiveris) {this.vadītājs = draiveris;}public void perform (Properties p, String operation, String objectName, String objectType, String value) throws Exception {System.out.println ("");slēdzis (operation.toUpperCase ()) {korpuss "CLICK":// Veiciet klikšķidriver.findElement (this.getObject (p, objectName, objectType)). noklikšķiniet ();pārtraukums;korpuss "SETTEXT":// Kontrolē iestatiet tekstudraiveris.findElement (this.getObject (p, objectName, objectType)). sendKeys (vērtība);pārtraukums;korpuss "GOTOURL":// Iegūt lietojumprogrammas URLdraiveris.get (p.getProperty (vērtība));pārtraukums;korpuss "GETTEXT":// Iegūt elementa tekstudraiveris.findElement (this.getObject (p, objectName, objectType)). getText ();pārtraukums;noklusējums:pārtraukums;}}/ *** Atrodiet elementu BY, izmantojot objekta tipu un vērtību* @param lpp* @param objectName* @param objectType* @return* @ throws izņēmums* /privāts Ar getObject (Rekvizīti p, String objectName, String objectType) izmet izņēmumu {// Atrast pēc xpathja (objectType.equalsIgnoreCase ("XPATH")) {atgriezties By.xpath (p.getProperty (objectName));}// atrast pēc klaseselse if (objectType.equalsIgnoreCase ("KLASES NOSAUKUMS")) {{atgriezt By.className (p.getProperty (objectName));}// atrast pēc nosaukumaelse if (objectType.equalsIgnoreCase ("NAME")) {atgriezt By.name (p.getProperty (objectName));}// Atrast pēc csselse if (objectType.equalsIgnoreCase ("CSS")) {atgriezt By.cssSelector (p.getProperty (objectName));}// atrast ar saitielse if (objectType.equalsIgnoreCase ("LINK")) {{atgriezt By.linkText (p.getProperty (objectName));}// atrast ar daļēju saiticits, ja (objectType.equalsIgnoreCase ("PARTIALLINK")) {atgriezt By.partialLinkText (p.getProperty (objectName));} cits{mest jaunu izņēmumu ("Nepareizs objekta tips");}}}

ExecuteTest.java

iepakojuma testCases;importēt java.util.Īpašības;importēšanas darbība.ReadObject;importa darbība. UIOoperācija;importēt org.apache.poi.ss.usermodel.Row;importēt org.apache.poi.ss.usermodel.Sheet;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.testng.annotations.Test;importēt excelExportAndFileIO.ReadGuru99ExcelFile;publiskā klase ExecuteTest {@Pārbaudepublic void testLogin () met izņēmumu {// TODO Automātiski ģenerētās metodes spraudnisWebDriver webdriver = jauns FirefoxDriver ();ReadGuru99ExcelFile fails = jauns ReadGuru99ExcelFile ();ReadObject objekts = jauns ReadObject ();Rekvizīti allObjects = object.getObjectRepository ();UIOoperation = jauna UIOperation (tīmekļa draiveris);// Lasīt atslēgvārdu lapuLapa guru99Sheet = file.readExcel (System.getProperty ("user.dir") + "\\", "TestCase.xlsx", "KeywordFramework");// Atrodiet rindu skaitu Excel failāint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Izveidojiet cilpu pār visām Excel faila rindām, lai to lasītupar (int i = 1; i " + row.getCell (0) .toString () + "Started");}}}}

Pēc izpildes izvade izskatīsies šādi -

Šajā apmācībā lejupielādējiet Selenium projekta failus demonstrācijai

Hibrīds ietvars

Hibrīds ietvars selēnā ir jēdziens, kurā mēs izmantojam gan ar atslēgvārdiem balstītas, gan datu vadītas ietvara priekšrocības. Tas ir viegli lietojams ietvars, kas ļauj manuālajiem testētājiem izveidot testa gadījumus, vienkārši aplūkojot atslēgvārdus, testa datus un objektu krātuvi, nekodējot sistēmā.

Šeit atslēgvārdiem mēs izmantosim Excel failus, lai uzturētu testa gadījumus, un testa datiem mēs varam izmantot datus, Testng ietvara nodrošinātāju.

Šeit, mūsu hibrīdajā sistēmā, mums nekas nav jāmaina atslēgvārdu vadītajā ietvarā, šeit mums vienkārši jāaizstāj ExecuteTest.java fails ar HybridExecuteTest.java failu.

Šajā failā HybridExecuteTest ir viss atslēgvārda kods, kura pamatā ir datu nodrošinātāja koncepcija.

Izskatīsies pilnīgs hibrīda ietvara attēlojums

HybridExecuteTest.java

iepakojuma testCases;importēt java.io.IOException;importēt java.util.Īpašības;importēšanas darbība.ReadObject;importa darbība. UIOoperācija;importēt org.apache.poi.ss.usermodel.Row;importēt org.apache.poi.ss.usermodel.Sheet;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.testng.annotations.DataProvider;importēt org.testng.annotations.Test;importēt excelExportAndFileIO.ReadGuru99ExcelFile;public class HybridExecuteTest {WebDriver tīmekļa draiveris = null;@Test (dataProvider = "hybridData")public void testLogin (String testcaseName, String keyword, String objectName, String objectType, String value) izmet izņēmumu {// TODO Automātiski ģenerētās metodes spraudnisif (testcaseName! = null && testcaseName.length ()! = 0) {webdriver = jauns FirefoxDriver ();}ReadObject objekts = jauns ReadObject ();Rekvizīti allObjects = object.getObjectRepository ();UIOoperation = jauna UIOperation (tīmekļa draiveris);// Funkcija Zvana veikšana, lai veiktu operāciju UIoperation.perform (allObjects, keyword, objectName,objectType, value);}@DataProvider (nosaukums = "hybridData")publiskais objekts [] [] getDataFromDataprovider () izmet IOException {Object [] [] object = null;ReadGuru99ExcelFile fails = jauns ReadGuru99ExcelFile ();// Lasīt atslēgvārdu lapuLapa guru99Sheet = file.readExcel (System.getProperty ("user.dir") + "\\", "TestCase.xlsx", "KeywordFramework");// Atrodiet rindu skaitu Excel failāint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();objekts = jauns Object [rowCount] [5];par (int i = 0; i 

Kopsavilkums:

  • Izmantojot Selenium WebDriver, mēs varam izveidot trīs veidu testēšanas ietvarus.
  • Tie ir ar datiem pamatoti, ar atslēgvārdiem pamatoti un hibrīdi testa ietvari.
  • Mēs varam sasniegt ar datiem pamatotu sistēmu, izmantojot TestNG datu nodrošinātāju.
  • Atslēgvārdu vadītajā sistēmā atslēgvārdi tiek ierakstīti dažos ārējos failos, piemēram, Excel failā, un Java kods izsauks šo failu un izpildīs pārbaudes gadījumus.
  • Hibrīdais ietvars ir atslēgvārdu un datu vadīts ietvars.

Šajā apmācībā lejupielādējiet Selenium projekta failus demonstrācijai