data driven framework selenium webdriver using apache poi
πώς να ανοίξετε εκτελέσιμο αρχείο βάζου
Πώς να εργαστείτε στο Data Driven Framework στο Selenium χρησιμοποιώντας το Apache POI;
Το Data Driven Framework είναι ένα από τα δημοφιλή αυτοματοποιημένα πλαίσια δοκιμών στην τρέχουσα αγορά. Οι αυτοματοποιημένες δοκιμές βάσει δεδομένων είναι μια μέθοδος κατά την οποία το σύνολο δεδομένων δοκιμής δημιουργείται στο φύλλο excel και στη συνέχεια εισάγεται σε εργαλεία δοκιμών αυτοματισμού για τροφοδοσία του υπό δοκιμή λογισμικού.
Το Selenium Webdriver είναι ένα εξαιρετικό εργαλείο για την αυτοματοποίηση εφαρμογών που βασίζονται στον Ιστό. Αλλά δεν υποστηρίζει λειτουργίες ανάγνωσης και εγγραφής σε αρχεία excel.
Επομένως, χρησιμοποιούμε API τρίτων όπως το Apache POI.
Τι θα μάθετε σε αυτό το σεμινάριο:
- Τι είναι το πλαίσιο βάσει δεδομένων στο Selenium WebDriver χρησιμοποιώντας το παράδειγμα excel
- Πώς να διαβάσετε και να γράψετε δεδομένα από το φύλλο excel στο Selenium WebDriver χρησιμοποιώντας το Apache POI
Τι θα μάθετε:
- Τι είναι το Apache POI;
- Γιατί δοκιμές μονάδων δεδομένων;
- Τι χρειαζόμαστε για να εφαρμόσουμε το πλαίσιο βάσει δεδομένων;
- Διεπαφή σε POI
- Τα βήματα για τη χρήση του σεληνίου με Apache POI
- Πλεονεκτήματα της χρήσης πλαισίου βάσει δεδομένων
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Τι είναι το Apache POI;
Το Apache POI (Εφαρμογή Κακής Συμπίεσης) είναι ένα API γραμμένο σε Java για την υποστήριξη λειτουργιών ανάγνωσης και εγγραφής - τροποποίηση αρχείων γραφείου. Αυτό είναι το πιο κοινό API που χρησιμοποιείται για Δοκιμές βάσει δεδομένων σεληνίου .
Υπάρχουν διάφοροι τρόποι για την εφαρμογή ενός πλαισίου βάσει δεδομένων , και το καθένα διαφέρει στην προσπάθεια που απαιτείται για την ανάπτυξη του πλαισίου και της συντήρησης.
Η ανάπτυξη πλαισίου βάσει δεδομένων στο Selenium με χρήση POI συμβάλλει στη μείωση της συντήρησης, στη βελτίωση της κάλυψης δοκιμών παρέχοντας έτσι μια καλή απόδοση της επένδυσης
Προτεινόμενες αναγνώσεις:
Γιατί δοκιμές μονάδων δεδομένων;
Συχνά μπορεί να υπάρχουν ορισμένα σύνολα δεδομένων που πρέπει να χρησιμοποιηθούν για τη δοκιμή ενός χαρακτηριστικού μιας εφαρμογής. Τώρα η εκτέλεση της ίδιας δοκιμής με διαφορετικά δεδομένα χειροκίνητα είναι χρονοβόρα, επιρρεπής σε σφάλματα και μια βαρετή εργασία.
Ας κατανοήσουμε αυτό το σενάριο με ένα παράδειγμα .
Ας υποθέσουμε ότι πρέπει να δοκιμάσουμε τη σύνδεση / Εγγραφή / Οποιαδήποτε φόρμα με πολλαπλά πεδία εισαγωγής με 100 διαφορετικά σύνολα δεδομένων.
Για να το δοκιμάσετε, έχετε τρεις διαφορετικές προσεγγίσεις:
1) Δημιουργήστε 100 σενάρια ένα για κάθε σύνολο δεδομένων και εκτελέστε κάθε δοκιμή ένα προς ένα.
δύο) Αλλάξτε τα δεδομένα στο σενάριο και εκτελέστε τα πολλές φορές.
3) Εισαγάγετε τα δεδομένα από το φύλλο excel και εκτελέστε το σενάριο πολλές φορές με διαφορετικά δεδομένα.
Τα δύο πρώτα σενάρια είναι επίπονα, χρονοβόρα - υπονοώντας χαμηλή απόδοση επένδυσης (ROI). Ως εκ τούτου, πρέπει να ακολουθήσουμε την τρίτη προσέγγιση.
Στην τρίτη προσέγγιση, εφαρμόζουμε το πλαίσιο βάσει δεδομένων, όπου όλα τα δεδομένα μας βρίσκονται σε ένα φύλλο excel, όπου εισάγονται και χρησιμοποιούνται για τη δοκιμή των χαρακτηριστικών της εφαρμογής.
=> Θέλετε να μάθετε περισσότερα σχετικά με το Data Driven Framework; Έχουμε μια λεπτομερή άρθρο μπορείτε να δείτε εδώ .
Τι χρειαζόμαστε για να εφαρμόσουμε το πλαίσιο βάσει δεδομένων;
Για να ακολουθήσουμε αυτήν την προσέγγιση πρέπει να έχουμε το Eclipse, το TestNG σωστά ρυθμισμένο.
Μόλις ολοκληρωθεί, θα εξετάσουμε:
- Διάφορες διεπαφές του Apache POI.
- Ενσωμάτωση του Apache POI στο Eclipse.
- Διαβάστε δεδομένα από το φύλλο Excel.
- Γράψτε δεδομένα στο φύλλο Excel.
- Πλεονεκτήματα της χρήσης Apache POI με Selenium.
Διεπαφή σε POI
Ένα από τα πιο αξιοσημείωτα χαρακτηριστικά του Apache POI είναι ότι υποστηρίζει λειτουργίες ανάγνωσης και εγγραφής σε αρχεία .xls και .xslx.
Παρακάτω αναφέρονται μερικά από τα διεπαφές του POI .
- Βιβλίο εργασίας XSSF: Αντιπροσωπεύει το βιβλίο εργασίας σε αρχείο xlsx.
- Βιβλίο εργασίας HSSF: Αντιπροσωπεύει το βιβλίο εργασίας σε αρχείο xls.
- Φύλλο XSSF: Αντιπροσωπεύει ένα φύλλο σε αρχείο XLSX.
- Φύλλο HSSF: Αντιπροσωπεύει ένα φύλλο σε αρχείο XLS.
- XSSFRow: Αντιπροσωπεύει μια σειρά σε ένα φύλλο αρχείου XLSX.
- HSSFRow: Αντιπροσωπεύει μια σειρά σε ένα φύλλο αρχείου XLS.
- XSSFCell: Αντιπροσωπεύει ένα κελί σε μια σειρά αρχείου XLSX.
- HSSFCell: Αντιπροσωπεύει ένα κελί σε μια σειρά αρχείου XLS.
Διαθέσιμα πεδία σε κελί:
- CELL_TYPE_BLANK: Αντιπροσωπεύει ένα κενό κελί.
- CELL_TYPE_BOOLEAN: Αντιπροσωπεύει ένα κελί Boolean (true ή false).
- CELL_TYPE_ERROR: Αντιπροσωπεύει μια τιμή σφάλματος σε ένα κελί.
- CELL_TYPE_FORMULA: Αντιπροσωπεύει ένα αποτέλεσμα τύπου σε ένα κελί.
- CELL_TYPE_NUMERIC: Αντιπροσωπεύει αριθμητικά δεδομένα σε ένα κελί.
- CELL_TYPE_STRING: Αντιπροσωπεύει τη συμβολοσειρά σε ένα κελί.
Τα βήματα για τη χρήση του σεληνίου με Apache POI
Ας δημιουργήσουμε ένα σενάριο αυτοματοποίησης για να δοκιμάσουμε τη διαδικασία σύνδεσης εφαρμογών που βασίζονται στον Ιστό.
εργαλεία παρακολούθησης συστήματος για παράθυρα 10
Εδώ, έχω λάβει το LinkedIn ως παράδειγμα .
Εισάγουμε δεδομένα από ένα φύλλο excel και μετά τα χρησιμοποιούμε για να συνδεθούμε στην εφαρμογή και μετά την εκτέλεση, γράφουμε το αποτέλεσμα στο φύλλο excel.
Χρειαζόμαστε το ακόλουθο λογισμικό εγκατεστημένο στο σύστημά μας για να συνεχίσουμε τα βήματα για την εκτέλεση του πλαισίου:
- Java JDK 1,7+
- Eclipse IDE
- ΔοκιμήNG
- Βάζα σεληνίου
- Microsoft Office / Open Office
Βήμα 1)
Πρώτον, πρέπει να ρυθμίσουμε το Eclipse Apache POI .
Κατεβάστε αρχεία βάζων για Apache POI.
Βήμα 2)
Αποσυμπιέστε το αρχείο βάζου και προσθέστε τα ακόλουθα βάζα στο έργο σας και διαμορφώστε τα.
- dom4j-1.6.1.jar
- poi-3.10-FINAL-20140208.jar
- poi-ooxml-3.10-FINAL-20140208.jar
- poi-ooxml-schemas-3.10-FINAL-20140208.jar
- xmlbeans-2.3.0.jar
Βήμα # 3)
Αφού διαμορφώσετε τα αντίστοιχα βάζα, δημιουργήστε ένα φύλλο excel εισάγετε ορισμένα δεδομένα σε αυτό και αποθηκεύστε τα ως TestData.xlsx στην προτιμώμενη τοποθεσία σας.
τύποι μεταδεδομένων στην αποθήκη δεδομένων
Βήμα # 4)
Τώρα ας ακολουθήσουμε το δείγμα κώδικα για να διαβάσουμε δεδομένα από το φύλλο excel και να το χρησιμοποιήσουμε για να συνδεθείτε linkin.com .
package automationFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; /** * @author Admin * */ public class ReadWriteExcel { WebDriver driver; WebDriverWait wait; HSSFWorkbook workbook; HSSFSheet sheet; HSSFCell cell; @BeforeTest public void TestSetup() { // Set the path of the Firefox driver. System.setProperty('webdriver.gecko.driver', 'C:\Users\geckodriver.exe'); driver = new FirefoxDriver(); // Enter url. driver.get('http://www.linkedin.com/'); driver.manage().window().maximize(); wait = new WebDriverWait(driver,30); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void ReadData() throws IOException { // Import excel sheet. File src=new File('C:\Users\Admin\Desktop\TestData.xls'); // Load the file. FileInputStream finput = new FileInputStream(src); // Load he workbook. workbook = new HSSFWorkbook(finput); // Load the sheet in which data is stored. sheet= workbook.getSheetAt(0); for(int i=1; i<=sheet.getLastRowNum(); i++) { // Import data for Email. cell = sheet.getRow(i).getCell(1); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-email')).sendKeys(cell.getStringCellValue()); // Import data for password. cell = sheet.getRow(i).getCell(2); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-password')).sendKeys(cell.getStringCellValue()); } } }
Βήμα # 5)
Κάντε δεξί κλικ στην κατηγορία δοκιμαστικών περιπτώσεων και κάντε κλικ στο Εκτελέστε ως -> TestNG Test.
Apache POI εισάγει δεδομένα από το φύλλο excel και τα χρησιμοποιεί για να συνδεθεί στην εφαρμογή μας. Τώρα που είδαμε πώς να διαβάζουμε δεδομένα από το φύλλο excel, ας δούμε πώς να γράφουμε στο φύλλο.
package automationFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; /** * @author Admin * */ public class ReadWriteExcel { WebDriver driver; WebDriverWait wait; HSSFWorkbook workbook; HSSFSheet sheet; HSSFCell cell; @BeforeTest public void TestSetup() { // Set the path of the Firefox driver. System.setProperty('webdriver.gecko.driver', 'C:\Users\geckodriver.exe'); driver = new FirefoxDriver(); // Enter url. driver.get('http://www.linkedin.com/'); driver.manage().window().maximize(); wait = new WebDriverWait(driver,30); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void ReadData() throws IOException { // Import excel sheet. File src=new File('C:\Users\Admin\Desktop\TestData.xls'); // Load the file. FileInputStream finput = new FileInputStream(src); // Load he workbook. workbook = new HSSFWorkbook(finput); // Load the sheet in which data is stored. sheet= workbook.getSheetAt(0); for(int i=1; i<=sheet.getLastRowNum(); i++) { // Import data for Email. cell = sheet.getRow(i).getCell(1); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-email')).sendKeys(cell.getStringCellValue()); // Import data for password. cell = sheet.getRow(i).getCell(2); cell.setCellType(Cell.CELL_TYPE_STRING); driver.findElement(By.id('login-password')).sendKeys(cell.getStringCellValue()); // Write data in the excel. FileOutputStream foutput=new FileOutputStream(src); // Specify the message needs to be written. String message = 'Data Imported Successfully.'; // Create cell where data needs to be written. sheet.getRow(i).createCell(3).setCellValue(message); // Specify the file in which data needs to be written. FileOutputStream fileOutput = new FileOutputStream(src); // finally write content workbook.write(fileOutput); // close the file fileOutput.close(); } } }
Σημείωση : Εάν αντιμετωπίσετε προβλήματα κατά τη διάρκεια αυτής της διαδικασίας, ελέγξτε τα ακόλουθα σημεία.
- Βεβαιωθείτε ότι όλα τα αναφερόμενα βάζα έχουν προστεθεί στο έργο και έχουν ρυθμιστεί σωστά.
- Το απαιτούμενο λογισμικό έχει εγκατασταθεί σωστά.
- Η σωστή χρήση μιας διεπαφής σε σχέση με το αρχείο excel, όπως HSSF για .xls και XSSF για .xlsx.
- Χρησιμοποιείται έγκυρο ευρετήριο γραμμών και στηλών.
- Το αρχείο Excel πρέπει να κλείσει πριν από την εκτέλεση.
- Σωστά μαθήματα που χρησιμοποιούνται για το αρχείο excel όπως το XSSF που χρησιμοποιείται για αρχεία .xlsx και το HSSF που χρησιμοποιείται για αρχεία .xls.
Πλεονεκτήματα της χρήσης πλαισίου βάσει δεδομένων
- Βελτιώνει την κάλυψη των δοκιμών.
- Επαναχρησιμοποίηση κώδικα.
- Λιγότερη συντήρηση.
- Ταχύτερη εκτέλεση.
- Επιτρέπει καλύτερο χειρισμό σφαλμάτων.
συμπέρασμα
Η είσοδος / έξοδος από και προς ένα αρχείο είναι ένα πολύ κρίσιμο μέρος της διαδικασίας δοκιμής λογισμικού. Apache POI διαδραματίζει ζωτικό ρόλο για να καταστεί αυτό δυνατό για το Selenium Test Automation.
Σελήνιο ενσωματωμένο με Apache POI σας διευκολύνει να εκτελέσετε το σενάριό σας πολλές φορές με διαφορετικά σύνολα δεδομένων, με όλα τα δεδομένα να διατηρούνται σε μία τοποθεσία. Εξοικονομεί χρόνο και προσπάθεια συντήρησης στο δοκιμαστικό σενάριο.
Για το συντάκτης: Αυτή είναι μια θέση επισκεπτών από τον Vivek, έναν μηχανικό αυτοματισμού QA.
Έχετε ερωτήματα που εφαρμόζουν το πλαίσιο δοκιμών βάσει δεδομένων στο Selenium WebDriver χρησιμοποιώντας το Apache POI; Ενημερώστε μας στα παρακάτω σχόλια.
Συνιστώμενη ανάγνωση
- Selenium Framework Δημιουργία και πρόσβαση σε δεδομένα δοκιμής από το Excel - Selenium Tutorial # 21
- Με βάση δεδομένα ή παραμετρικές δοκιμές με πλαίσιο Spock
- Πώς λειτουργεί η δοκιμή βάσει δεδομένων (παραδείγματα QTP και σεληνίου)
- Εισαγωγή στο JUnit Framework και τη χρήση του στο Σελήνιο Σενάριο - Σελήνιο Tutorial # 11
- Τρόπος εκτέλεσης δοκιμών βάσει δεδομένων χρησιμοποιώντας το εργαλείο TestComplete
- Εκμάθηση QTP # 18 - Προγράμματα βάσει δεδομένων και υβριδικά πλαίσια που εξηγούνται με παραδείγματα QTP
- Πώς να χρησιμοποιήσετε το TestNG Framework για τη δημιουργία σεναρίων Selenium - TestNG Selenium Tutorial # 12
- Πώς να εκτελέσετε δοκιμές βάσει δεδομένων στο SoapUI Pro - SoapUI Tutorial # 14