keyword driven framework selenium with examples
Αυτό το περιεκτικό σεμινάριο σχετικά με το πλαίσιο βάσει λέξεων-κλειδιών εξηγεί διάφορα στοιχεία του πλαισίου και πώς να δημιουργήσετε ένα στο Σελήνιο:
πώς να γράψετε περιπτώσεις δοκιμών uat
Σε γενικές γραμμές, το Πλαίσιο είναι ένα σύνολο οδηγιών, οι οποίες όταν ακολουθούν θα δώσουν ευεργετικά αποτελέσματα.
Το πλαίσιο βάσει λέξεων-κλειδιών είναι μια τεχνική για την εξωτερική ανάθεση λέξεων-κλειδιών / ενεργειών που χρησιμοποιούνται στο σενάριο σε ξεχωριστό χώρο αποθήκευσης αντικειμένων (εδώ, είναι αρχείο Java Class), το οποίο θα δώσει θετικά αποτελέσματα όπως αυξημένη επαναχρησιμοποίηση κώδικα, μειωμένη συντήρηση σεναρίων, και υψηλότερη φορητότητα.
=> Ρίξτε μια ματιά στον οδηγό για αρχάριους του Selenium εδώ.
Τι θα μάθετε:
- Τι είναι ένα πλαίσιο βάσει λέξεων-κλειδιών στο Σελήνιο;
- Στοιχεία του πλαισίου δοκιμών βάσει λέξεων-κλειδιών
- συμπέρασμα
Τι είναι ένα πλαίσιο βάσει λέξεων-κλειδιών στο Σελήνιο;
Εδώ είναι τα εκπαιδευτικά βίντεο:
Πλαίσιο βάσει λέξεων-κλειδιών - Σχέδιο και σχεδιασμός
Δημιουργία μέρους-πλαισίου βάσει λέξεων-κλειδιών - I
Δημιουργία πλαισίου βάσει λέξεων-κλειδιών Μέρος - II
Στοιχεία του πλαισίου δοκιμών βάσει λέξεων-κλειδιών
Παρακάτω δίνεται η λίστα των στοιχείων που εμπλέκονται στο Πλαίσιο βάσει λέξεων-κλειδιών.
- Βιβλιοθήκη λειτουργιών
- Φύλλο Excel για αποθήκευση λέξεων-κλειδιών
- Πρότυπο δοκιμής υπόθεσης σχεδίασης
- Αποθήκη αντικειμένων για στοιχεία / εντοπιστές
- Δοκιμή σεναρίων ή σεναρίου προγράμματος οδήγησης
# 1) Βιβλιοθήκη λειτουργιών
Αυτό είναι συνήθως ένα αρχείο Java Class όπου καθορίζονται οι λέξεις-κλειδιά. Με άλλα λόγια, όλες οι ενέργειες που εκτελούνται στην εφαρμογή ορίζονται ως μέθοδοι καθορισμένες από το χρήστη (που είναι λέξεις-κλειδιά) στο αρχείο κλάσης βιβλιοθήκης.
Για παράδειγμα:
Ας υποθέσουμε ότι η εφαρμογή μας πρέπει να εκτελέσει τις ακόλουθες ενέργειες σε μία ή περισσότερες περιπτώσεις δοκιμής:
- Εισαγάγετε τη διεύθυνση URL.
- Κάντε κλικ σε ένα στοιχείο.
- Πληκτρολογήστε ένα πλαίσιο κειμένου.
Επειτα, το αρχείο βιβλιοθήκης δημιουργείται με τον καθορισμό μεμονωμένων μεθόδων για όλες αυτές τις ενέργειες όπως φαίνεται παρακάτω:
Εδώ, δημιουργούμε μια μέθοδο που καθορίζεται από τον χρήστη για την ενέργεια - 'Enter URL'.
Το όνομα που παρέχεται για τη μέθοδο που ορίζεται από το χρήστη ονομάζεται a Λέξη-κλειδί.
Λοιπόν, εδώ «enter_URL» είναι η λέξη-κλειδί
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
Παράμετροι :
οδηγός - Ο οδηγός αρχικοποιείται στην Κύρια τάξη και περνά εδώ.
Δεδομένα δοκιμής - διαβάζεται από την εξωτερική πηγή από το Main Class και το διαβιβάζεται εδώ.
Λειτουργία :
Εδώ, driver.get () - είναι η συνάρτηση του Selenium που εκτελεί την ενέργεια «enter URL».
Keywords.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver,String ObjectName, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) Φύλλο Excel για αποθήκευση λέξεων-κλειδιών
Όλες οι μέθοδοι που καθορίζονται από τον χρήστη μαζί με τις λεπτομέρειες λειτουργικότητάς της θα πρέπει να αναφέρονται στο φύλλο excel, έτσι ώστε ο χρήστης να μπορεί να καταλάβει τι Λέξη-κλειδί διατηρεί το αρχείο βιβλιοθήκης.
Το φύλλο Excel λειτουργεί ως σύνοψη του αρχείου βιβλιοθήκης και καθίσταται χρήσιμο κατά τη δημιουργία του προτύπου υπόθεσης, όπου ο χρήστης κοιτάζει τη λίστα λέξεων-κλειδιών του φύλλου excel και επιλέγει την αντίστοιχη λέξη-κλειδί για κάθε ενέργεια στη δοκιμαστική περίπτωση.
Για παράδειγμα:
πώς να ανοίξετε το αρχείο .torrent
package Keywords.Defined; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; public void enter_URL(WebDriver driver,String TestData) throws IOException{ driver.get(TestData); } public void type(WebDriver driver, String ObjectName, String locatorType, String testdata) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); //driver.findElement(By.xpath('//')).sendKeys(testdata); } public void wait(WebDriver driver,String ObjectName, String locatorType) throws IOException{ WebDriverWait wait = new WebDriverWait(driver, 60); wait.until(ExpectedConditions.visibilityOf(driver.findElement(this.getObject(ObjectName,locatorType)))); } public void click(WebDriver driver,String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName,locatorType)).click(); } public String get_currentURL(WebDriver driver){ String URL = driver.getCurrentUrl(); System.out.println('print URL '+URL); return URL; } By getObject(String ObjectName, String locatorType) throws IOException{ File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); } //find by class else if(locatorType.equalsIgnoreCase('CLASSNAME')){ return By.className(prop.getProperty(ObjectName)); } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); } //Find by css else if(locatorType.equalsIgnoreCase('CSS')){ return By.cssSelector(prop.getProperty(ObjectName)); } //find by link else if(locatorType.equalsIgnoreCase('LINK')){ return By.linkText(prop.getProperty(ObjectName)); } //find by partial link else if(locatorType.equalsIgnoreCase('PARTIALLINK')){ return By.partialLinkText(prop.getProperty(ObjectName)); } return null; } }
# 3) Πρότυπο δοκιμής υπόθεσης σχεδίασης
Το Πρότυπο δοκιμαστικής υπόθεσης μπορεί να δημιουργηθεί σύμφωνα με την ευκολία του έργου. Δεν υπάρχει συγκεκριμένος κανόνας για τη δημιουργία προτύπου. Έχει σχεδιαστεί ανάλογα με το πόσο χρειάζεται το έργο για το εξωτερικό πλαίσιο. Η εξωτερική ανάθεση ενδέχεται να αφορά μόνο λέξεις-κλειδιά ή μερικές φορές ακόμη και τα δεδομένα δοκιμής και τα στοιχεία διεπαφής χρήστη είναι επίσης εξωτερικά.
Δημιουργείται ένα δείγμα προτύπου υπόθεσης δοκιμής:
Στο δεδομένο παράδειγμα, το πρότυπο δημιουργείται με τέτοιο τρόπο ώστε:
- Κάθε φύλλο αντιστοιχεί σε μια υπόθεση δοκιμής και το τελευταίο φύλλο είναι αυτό που περιέχει τη «Λίστα λέξεων-κλειδιών».
- Κάθε σειρά αντιστοιχεί στα στάδια δοκιμής ενός TC.
- Κάθε στήλη είναι οι παράμετροι που είναι απαραίτητες για κάθε ενέργεια.
Τρόπος συμπλήρωσης του προτύπου δοκιμαστικής θήκης:
# 1) Από το παρεχόμενο φύλλο δοκιμαστικής υπόθεσης, διαβάστε κάθε δοκιμαστική θήκη και τα αντίστοιχα στάδια δοκιμής. Για κάθε βήμα δοκιμής, εντοπίστε την ενέργεια και βρείτε την αντίστοιχη λέξη-κλειδί από το αρχείο βιβλιοθήκης.
ερωτήσεις συνέντευξης για υπηρεσίες ιστού σαπουνιού και υπολοίπου
#δύο) Μόλις η ενέργεια αντιστοιχιστεί με τη λέξη-κλειδί, συμπληρώστε το πρότυπο δοκιμαστικής υπόθεσης με τη σειρά δοκιμαστικής υπόθεσης και περάστε επίσης τις άλλες απαιτούμενες παραμέτρους, όπως απαιτείται.
# 4) Αποθήκη αντικειμένων για εντοπιστές
Ο εντοπιστής διεπαφής χρήστη μπορεί να αναγνωριστεί και η τιμή του μπορεί είτε να αναφέρεται στο πρότυπο δοκιμαστικής περίπτωσης είτε να διατηρηθεί σε ξεχωριστό χώρο αποθήκευσης αντικειμένων.
Στο παρακάτω παράδειγμα, οι ιδιότητες αναγνώρισης στοιχείων
- Τύπος εντοπισμού - Η τεχνική αναγνώρισης που χρησιμοποιείται είναι id, Xpath, ClassName κ.λπ.
- Τιμή εντοπισμού - Τιμή αυτού του χαρακτηριστικού - Για παράδειγμα: Εάν το χαρακτηριστικό Id, τότε η τιμή του id και ούτω καθεξής.
Ένας άλλος τρόπος είναι η διατήρηση στο Object Repository και η αναφορά του ονόματος αντικειμένου στο φύλλο Excel.
- Τύπος εντοπισμού - Η τεχνική αναγνώρισης που χρησιμοποιείται είναι id, Xpath, ClassName κ.λπ.
- Όνομα εντοπισμού - Το όνομα του αντικειμένου από το αποθετήριο αντικειμένων όπου αποθηκεύεται η τιμή εντοπισμού. Για παράδειγμα, Εάν το αποθετήριο διατηρεί την τιμή Xpath ενός στοιχείου με το ObjectName ως «Όνομα χρήστη», τότε το LocatorName αναφέρεται ως «UserName».
ΣΗΜΕΙΩΣΗ: Σύμφωνα με το LocatorType που αναφέρεται στο φύλλο excel, η τιμή του πρέπει να αποθηκευτεί στο Object Repository. Για παράδειγμα: Εάν το Xpath έχει οριστεί ως LocatorType, τότε το αποθετήριο θα πρέπει να αποθηκεύει το Xpath αυτού του στοιχείου, εάν το αναγνωριστικό έχει οριστεί ως Locatortype, τότε το αναγνωριστικό θα πρέπει να αποθηκευτεί και ούτω καθεξής.
# 5) Σενάρια δοκιμής ή σενάριο προγράμματος οδήγησης
Αυτό είναι το κύριο σενάριο που διαβάζει όλα τα περιεχόμενα του φύλλου excel και εκτελεί την αντίστοιχη ενέργεια. Το σενάριο έχει σχεδιαστεί με βάση τον τρόπο δημιουργίας του προτύπου.
Στην περίπτωσή μας, καθώς κάθε φύλλο δοκιμής λειτουργεί ως δοκιμαστική περίπτωση και κάθε σειρά ως βήμα δοκιμής, το σενάριο του προγράμματος οδήγησης μπορεί να δημιουργηθεί με επανάληψη σε φύλλα και, στη συνέχεια, σειρές.
Σε κάθε συγκεκριμένη σειρά, διαβάζεται μια λέξη-κλειδί και εκτελείται η αντίστοιχη μέθοδος στο αρχείο βιβλιοθήκης και ούτω καθεξής. Αυτό συνεχίζεται έως ότου εκτελεστούν όλα τα στάδια δοκιμής στην υπόθεση δοκιμής. Στη συνέχεια, προχωρά στην επόμενη δοκιμαστική θήκη / φύλλο και το εκτελεί.
package Automation.KeywordFramework; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.LinkedList; import java.util.Properties; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.Reporter; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.asserts.Assertion; import Keywords.Defined.Assertions; import Keywords.Defined.Keywords; public class IrctcLogic { WebDriver driver; String path = System.getProperty('user.dir'); Keywords keyword = new Keywords(); Assertions assertion = new Assertions(); @Test public void readExcelandexecute() throws IOException, InterruptedException{ //From excelfile String excelFilePath = path+'\Externals\Test Cases.xlsx'; FileInputStream fileInputStream = new FileInputStream(excelFilePath); XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); int testcasescount = workbook.getNumberOfSheets()-1; System.out.println('Total test cases :'+testcasescount); for (int testcase=0;testcaseσυμπέρασμα
Έτσι, μόλις δημιουργηθεί ένα πλαίσιο, είναι επαναχρησιμοποιήσιμο για πολλαπλές δοκιμαστικές περιπτώσεις / έργα. Με αυτόν τον τρόπο, μειώνει τις ανθρωποώρες της δημιουργίας ενός σεναρίου αυτοματισμού για κάθε έργο.
Στο επόμενο κεφάλαιο, θα συζητήσουμε τη δημιουργία του υβριδικού πλαισίου που είναι ένας συνδυασμός του πλαισίου βάσει λέξεων-κλειδιών και του πλαισίου βάσει δεδομένων.
=> Διαβάστε τη σειρά προπόνησης Easy Selenium.
Συνιστώμενη ανάγνωση
- Πλαίσιο βάσει δεδομένων στο Selenium WebDriver με χρήση Apache POI
- Πώς λειτουργεί η δοκιμή βάσει δεδομένων (παραδείγματα QTP και σεληνίου)
- Εισαγωγή στο JUnit Framework και τη χρήση του στο Σελήνιο Σενάριο - Σελήνιο Σεμινάριο # 11
- Τι είναι το υβριδικό πλαίσιο στο σελήνιο;
- Selenium Find Element By Text Tutorial με παραδείγματα
- 30+ καλύτερα σεμινάρια σεληνίου: Μάθετε το σελήνιο με πραγματικά παραδείγματα
- Δημιουργία Selenium Framework και Πρόσβαση σε δεδομένα δοκιμών από το Excel - Selenium Tutorial # 21
- Java 'αυτό' Λέξη-κλειδί: Εκμάθηση με παραδείγματα κώδικα