selenium framework creation
Στο τελευταίο σεμινάριο, σας εξοικειώσαμε με το βασικά στοιχεία του πλαισίου αυτοματοποίησης δοκιμών , τα συστατικά και τα είδη του. Τα πλαίσια που απεικονίστηκαν στο προηγούμενο σεμινάριο ήταν μερικά από τα πιο δημοφιλή πλαίσια που χρησιμοποιήθηκαν από τη δοκιμαστική αδελφότητα.
Συζητήσαμε εν συντομία Πλαίσια βασισμένα σε Ενότητες, Πλαίσιο βασισμένο στην Αρχιτεκτονική Βιβλιοθήκης, Πλαίσιο βάσει λέξεων-κλειδιών, Πλαίσιο βάσει δεδομένων και Υβριδικό Πλαίσιο. Υπάρχουν επίσης διάφορα άλλα πλαίσια.
Σημειώστε ότι θα υιοθετήσουμε Data Driven Test Automation Framework για τα υπόλοιπα σεμινάρια μας.
Στο τρέχον φροντιστήριο σε αυτήν τη σειρά , θα σας κάνουμε να εξοικειωθείτε με ένα δείγμα πλαισίου, τα Excel που θα αποθηκεύσουν τα δεδομένα δοκιμών και τους χειρισμούς του Excel . Στην ίδια κατεύθυνση, θα προχωρούσαμε και θα εισαγάγαμε νέες στρατηγικές και πόρους για να ωριμάσουμε το πλαίσιο μας.
Ας μάθουμε λοιπόν:
- Στρατηγική δημιουργίας πλαισίου χρησιμοποιώντας ένα δείγμα έργου
- Πρόσβαση στα δοκιμαστικά δεδομένα που είναι αποθηκευμένα στην εξωτερική πηγή δεδομένων
Προχωρώντας, θα ξεκινήσουμε με την περιγραφή της ιεραρχίας του έργου που θα δημιουργούσαμε για να διαχωρίσουμε τα διάφορα στοιχεία του έργου.
Ανατρέξτε στην παρακάτω εικόνα για την ιεραρχία έργου που δημιουργήθηκε για το δείγμα έργου. Το παρακάτω έργο java μπορεί να δημιουργηθεί εύκολα μέσα στην έκλειψη με τον τρόπο που δημιουργήσαμε τα έργα στα προηγούμενα σεμινάρια.
Τι θα μάθετε:
- Δομή φακέλου έργου Selenium - Περιήγηση
- Δημιουργία δεδομένων δοκιμής
- Συμπέρασμα:
- Συνιστώμενη ανάγνωση
Δομή φακέλου έργου Selenium - Περιήγηση
# 1) src - Ο φάκελος περιέχει όλα τα σενάρια δοκιμής, τα γενικά, τους αναγνώστες και τα βοηθητικά προγράμματα. Όλοι αυτοί οι πόροι δεν είναι παρά τα απλά μαθήματα java. Κάτω από το φάκελο source (src), δημιουργήσαμε μια ιεραρχία φακέλων.
α) δοκιμή - Ο φάκελος «test» αποτελείται κυρίως από δύο συστατικά - test suite και τους φακέλους που αντιπροσωπεύουν τις διάφορες ενότητες της υπό δοκιμή εφαρμογής. Έτσι, κάθε ένας από αυτούς τους φακέλους περιέχει τα σενάρια δοκιμής ειδικά για τη λειτουργική μονάδα με την οποία συνδέεται. Το Testsuite είναι ένας λογικός συνδυασμός περισσότερων από ενός σεναρίων δοκιμών. Έτσι, ο χρήστης μπορεί να επισημάνει μια καταχώριση οποιουδήποτε από τα σενάρια δοκιμής εντός της δοκιμαστικής σουίτας που επιθυμεί να εκτελέσει στις επόμενες εκτελέσεις.
λογισμικό για λήψη βίντεο από οποιονδήποτε ιστότοπο
β) βοηθητικά προγράμματα - Ο φάκελος «βοηθητικά προγράμματα» αποτελείται από διάφορα γενικά, σταθερές, αναγνώστες και τάξεις για την εφαρμογή εξαιρέσεων που καθορίζονται από το χρήστη. Κάθε ένας από τους φακέλους στο βοηθητικό πρόγραμμα έχει τη δική του σημασία.
- Αναγνώστης Excel - Έχει δημιουργηθεί μια γενική και κοινή κλάση για την ανάγνωση των δεδομένων δοκιμής (παράμετροι εισαγωγής και αναμενόμενα αποτελέσματα) από τα φύλλα του Excel
- Περιβάλλον συστατικά - Ο φάκελος είναι ενοποίηση των κλάσεων java που αποθηκεύουν τις στατικές μεταβλητές που αναφέρονται στις διαδρομές και άλλες περιβαλλοντικές λεπτομέρειες. Αυτές οι λεπτομέρειες μπορεί να είναι URL εφαρμογής, διεύθυνση URL για βάσεις δεδομένων, διαπιστευτήρια για βάσεις δεδομένων και διεύθυνση URL για οποιοδήποτε εργαλείο τρίτου μέρους χρησιμοποιείται. Τα διαφορετικά URL εφαρμογών μπορούν να ρυθμιστούν για διαφορετικά περιβάλλοντα (dev, prod, test, master, slave κ.λπ.).
- Ρυθμιστές δεδομένων - Ο φάκελος ενσωματώνει τις κλάσεις που εφαρμόζουν τα προγράμματα λήψης και ρυθμιστές των δεδομένων δοκιμής που έχουν ληφθεί από το Excels. Για να φορτώσουμε πολλά σύνολα δεδομένων δοκιμής, δημιουργούμε ArrayLists.
- Ρόλοι χρηστών - Ο φάκελος φιλοξενεί τις τάξεις που φροντίζουν τα κριτήρια πρόσβασης βάσει ρόλου, εάν υπάρχουν, για χρήστες ενστικτώδους.
- Λειτουργία Βιβλιοθήκη - Ο φάκελος αποτελείται από τις κλάσεις που περιέχουν συναρτήσεις και μεθόδους που μπορούν να μοιραστούν και να χρησιμοποιηθούν μεταξύ των πολλαπλών τάξεων. Πολύ συχνά, υποτίθεται ότι εκτελούμε συγκεκριμένες διαδικασίες πριν και μετά την πραγματική εκτέλεση δοκιμής, όπως σύνδεση στην εφαρμογή, ρύθμιση περιβάλλοντος, δραστηριότητες που σχετίζονται με ρολά, χειρισμοί δεδομένων, αποτελέσματα γραφής, μεθόδους που δημιουργούν προ-μετα-συνθήκες σε άλλες μεθόδους . Δεδομένου ότι έχουμε την τάση να εκτελούμε αυτές τις δραστηριότητες για το σύνολο ή το μεγαλύτερο μέρος του δοκιμαστικού σεναρίου. Συνεπώς, συνιστάται πάντα να δημιουργείτε μια ξεχωριστή τάξη για τέτοιες δραστηριότητες αντί να τις κωδικοποιείτε επανειλημμένα σε καθένα από τα δοκιμαστικά σενάρια.
- Προϋπολογιστικές μέθοδοι
- Μέθοδοι PostConditional
Πολύ συχνά, υποτίθεται ότι θα εκτελέσουμε ορισμένες διαδικασίες πριν και μετά την πραγματική εκτέλεση δοκιμής, όπως σύνδεση στην εφαρμογή, ρύθμιση περιβάλλοντος, δραστηριότητες που σχετίζονται με ρόλους χρήστη, χειρισμοί δεδομένων, αποτελέσματα γραφής, μεθόδους που δημιουργούν προ-μετα-συνθήκες σε άλλους μεθόδους. Δεδομένου ότι έχουμε την τάση να εκτελούμε αυτές τις δραστηριότητες για το σύνολο ή το μεγαλύτερο μέρος του δοκιμαστικού σεναρίου, συνεπώς συνιστάται πάντα να δημιουργείτε μια ξεχωριστή τάξη για τέτοιες δραστηριότητες αντί να τις κωδικοποιείτε επανειλημμένα σε κάθε ένα από τα δοκιμαστικά σενάρια.
Κοινές μέθοδοι
Όπως οι προ και οι μετα-προϋποθέσεις, μπορεί να υπάρχουν μέθοδοι και λειτουργίες που μπορούν να χρησιμοποιηθούν από περισσότερα από ένα δοκιμαστικά σενάρια. Έτσι, αυτές οι μέθοδοι ομαδοποιούνται μαζί σε μια τάξη. Το σενάριο δοκιμής μπορεί να έχει πρόσβαση σε αυτές τις μεθόδους χρησιμοποιώντας το αντικείμενο της κοινής κλάσης.
# 2) αρχεία excel - Τα αρχεία excel θεωρούνται ότι είναι η πηγή δεδομένων / πάροχοι δεδομένων για την εκτέλεση δοκιμαστικών σεναρίων. Αυτά τα αρχεία αποθηκεύουν τα δεδομένα δοκιμής σε ζεύγη τιμών-κλειδιών. Σημειώστε ότι δημιουργούμε ένα ξεχωριστό φύλλο excel για κάθε δοκιμαστικό σενάριο, δηλαδή κάθε σενάριο δοκιμής έχει το δικό του αρχείο δεδομένων δοκιμής. Το όνομα του δοκιμαστικού σεναρίου και τα αντίστοιχα αρχεία δεδομένων δοκιμής / φύλλο excel διατηρήθηκαν ίδιο για την προοπτική ιχνηλασιμότητας. Ρίξτε μια ματιά στη μορφή δειγμάτων δεδομένων δοκιμής παρακάτω:
Μορφή δεδομένων δοκιμής
Κάθε μία από τις στήλες αντιπροσωπεύει ένα κλειδί και κάθε μία από τις σειρές αντιπροσωπεύει μια δοκιμαστική τιμή / τιμή. Καθορίστε τις πολλαπλές σειρές για να εκτελέσετε το ίδιο σενάριο δοκιμής με πολλά σύνολα δεδομένων.
Σημειώστε ότι οι μορφές δεδομένων δοκιμής καθορίζονται αποκλειστικά από τον χρήστη. Με βάση τις απαιτήσεις σας, μπορείτε να προσαρμόσετε τα δοκιμαστικά αρχεία δεδομένων.
# 3) βιβλιοθήκη - Ο φάκελος λειτουργεί ως αποθετήριο / τεχνητό για όλα τα απαιτούμενα αρχεία βάζων, βιβλιοθήκες, προγράμματα οδήγησης κ.λπ. για να δημιουργήσετε με επιτυχία το περιβάλλον δοκιμής και να εκτελέσετε τα σενάρια δοκιμής. Ανατρέξτε στο παρακάτω σχήμα για να δείτε τις βιβλιοθήκες που θα χρησιμοποιούσαμε στο έργο μας.
# 4) αρχεία καταγραφής - Ο φάκελος περιέχει ένα αρχείο .txt που αποθηκεύει τις πληροφορίες καταγραφής σε κάθε εκτέλεση.
# 5) υλικό δοκιμής - Ο φάκελος περιέχει τα πραγματικά δεδομένα δοκιμής που πρέπει να μεταφορτωθούν εάν υπάρχουν. Αυτός ο φάκελος θα ερχόταν σε εικόνα όταν συναντάμε δοκιμαστικά σενάρια όπου απαιτείται από τον χρήστη να ανεβάσει αρχεία, έγγραφα, εικόνες, αναφορές κ.λπ.
# 6) build.xml - Το αρχείο xml χρησιμοποιείται από τον 'Ant Server' για την αυτοματοποίηση ολόκληρης της διαδικασίας κατασκευής.
# 7) log4j.xml - Αυτό το αρχείο xml χρησιμοποιείται από ένα βοηθητικό πρόγραμμα που βασίζεται σε Java και ονομάζεται 'Log4j' για τη δημιουργία των αρχείων καταγραφής εκτέλεσης.
Σημείωση : Θα μελετήσουμε λεπτομερέστερα τα αρχεία καταγραφής, τις εξαιρέσεις που καθορίζονται από τον χρήστη και το Ant σε προσεχή μαθήματα. Επομένως, μην πανικοβληθείτε εάν συγχέετε τις έννοιες.
Τώρα, καθώς προχωράμε, ας κατανοήσουμε το φαινόμενο όπου έχουμε πρόσβαση στα αρχεία excel και συμπληρώνουμε τα δοκιμαστικά δεδομένα στα σενάρια δοκιμής μας.
Προκειμένου να κατανοήσουμε τη διαδικασία ευκολότερα, θα χωρίσουμε τη διαδικασία στα ακόλουθα βήματα.
Δημιουργία δεδομένων δοκιμής
Βήμα 1 : Το πρώτο και κύριο βήμα είναι να δημιουργήσουμε τα δεδομένα δοκιμής με τα οποία θα εκτελούσαμε τα δοκιμαστικά σενάρια. Λαμβάνοντας υπόψη την προαναφερθείσα μορφή δεδομένων δοκιμής, ας δημιουργήσουμε ένα αρχείο excel που ονομάζεται 'TestScript1'. Δώστε τις τιμές στα στοιχεία.
Βήμα 2 : Το επόμενο βήμα είναι να κατεβάσετε ένα τυπικό API / Βιβλιοθήκη με βάση το java που ονομάζεται 'Java excel Library' (jxl) για να έχετε πρόσβαση στις ήδη δημιουργημένες γενικές μεθόδους για το Excel Manipulation.
Βήμα 3 : Δημιουργήστε μια γενική κλάση αναγνωστών excel που ονομάζεται 'ExcelReader.java'. Αντιγράψτε τον παρακάτω κώδικα στο ExcelReader.java.
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col Βήμα 4 : Δημιουργήστε μια γενική τάξη - 'CommonMethods.java'. Δημιουργήστε μια κοινή μέθοδο μέσα στην τάξη που θα διαβάζει τα κελιά από το φύλλο excel χρησιμοποιώντας τις μεθόδους που εφαρμόζονται στο ExcelReader.java.
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt Βήμα 5 : Δημιουργήστε μια νέα τάξη java που ονομάζεται 'TestData.java'. Αυτή η τάξη θα λειτουργούσε ως κατακτήτρια και ρυθμιστής για τα δεδομένα του Excel. Αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα στην κλάση TestData.java.
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
Βήμα 6 : Το επόμενο βήμα είναι να δημιουργήσετε παρουσίες τάξεων java 'TestData.java' και 'CommonMethods.java' μέσα στο σενάριο δοκιμής για να αποκτήσετε πρόσβαση και να συμπληρώσετε τα δεδομένα δοκιμής. Ανατρέξτε στο παρακάτω απόσπασμα κώδικα για αρχικοποίηση αντικειμένων, ανάγνωση δεδομένων excel και συμπλήρωση των τιμών όπου απαιτείται.
πώς να εκτελέσετε ένα αρχείο torrent
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
Επομένως, χρησιμοποιώντας την παρουσία της κλάσης testData.java σε συνδυασμό με τους getters, οποιαδήποτε τιμή δεδομένων δοκιμής μπορεί να συμπληρωθεί μέσα στο σενάριο.
Συμπέρασμα:
Το σεμινάριο περιστράφηκε κυρίως γύρω από τις έννοιες όπως η Δημιουργία Πλαισίου και η Πρόσβαση σε δεδομένα δοκιμών από το Excel. Σας ενημερώσαμε για τη στρατηγική δημιουργίας πλαισίου χρησιμοποιώντας ένα δείγμα έργου. Εν συντομία, ρίξαμε φως στα διάφορα στοιχεία και πτυχές του πλαισίου μας.
Για να αποκτήσουμε πρόσβαση στα δεδομένα δοκιμής που είναι αποθηκευμένα στην εξωτερική πηγή δεδομένων, χρησιμοποιήσαμε ένα API που βασίζεται σε Java - jxl. Δημιουργήσαμε επίσης το δείγμα κώδικα για ανάγνωση και συμπλήρωση των δεδομένων excel στα σενάρια δοκιμής.
Επόμενο σεμινάριο # 22 : Στο επόμενο σεμινάριο, θα βασίζαμε το σεμινάριό μας στο έννοιες των γενικών και του μηχανισμού προσβασιμότητας τους . Θα δημιουργήσουμε μερικά δείγματα γενικών μεθόδων και στη συνέχεια θα έχουμε πρόσβαση σε αυτά στα δοκιμαστικά σενάρια. Θα σας παρουσιάσουμε επίσης την έννοια του Testsuite και την ανάπτυξη δείγματος κώδικα.
Συνιστώμενη ανάγνωση
- Εισαγωγή στο JUnit Framework και τη χρήση του στο Σελήνιο Σενάριο - Σελήνιο Tutorial # 11
- Πλαίσιο βάσει δεδομένων στο Selenium WebDriver με χρήση Apache POI
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Πώς να χρησιμοποιήσετε το TestNG Framework για τη δημιουργία σεναρίων Selenium - TestNG Selenium Tutorial # 12
- Αποτελεσματικά σενάρια Selenium και Αντιμετώπιση προβλημάτων - Σελήνιο Σεμινάριο # 27
- Αποσφαλμάτωση σεναρίων σεληνίου με αρχεία καταγραφής (Tutorial Log4j) - Σεμινάριο σεμινάριο # 26