keyword driven framework selenium with examples
Ce didacticiel complet sur le framework basé sur les mots-clés explique divers composants du framework et comment en créer un dans Selenium:
En général, Framework est un ensemble de lignes directrices qui, lorsqu'elles sont suivies, donneront des résultats bénéfiques.
La clé de sécurité du réseau est-elle la même que le mot de passe wifi
Le framework basé sur les mots-clés est une technique d'externalisation des mots-clés / actions qui sont utilisés dans le script dans un référentiel d'objets séparé (ici, il s'agit d'un fichier de classe Java), ce qui donnera des résultats positifs tels qu'une réutilisation accrue du code, une maintenance réduite des scripts, et une meilleure portabilité.
=> Jetez un œil au guide du débutant Selenium ici.
Ce que vous apprendrez:
- Qu'est-ce qu'un cadre basé sur les mots clés dans Selenium?
- Composants du cadre de test basé sur les mots clés
- Conclusion
Qu'est-ce qu'un cadre basé sur les mots clés dans Selenium?
Voici les didacticiels vidéo:
Cadre basé sur les mots-clés - Planification et conception
Création d'une partie du cadre piloté par mots-clés - I
Création d'un cadre basé sur les mots-clés, partie II
Composants du cadre de test basé sur les mots clés
Vous trouverez ci-dessous la liste des composants impliqués dans le Framework basé sur les mots-clés.
- Bibliothèque de fonctions
- Feuille Excel pour stocker les mots-clés
- Modèle de cas de test de conception
- Référentiel d'objets pour les éléments / localisateurs
- Scripts de test ou script de pilote
# 1) Bibliothèque de fonctions
Il s'agit généralement d'un fichier de classe Java dans lequel les mots clés sont définis. En d'autres termes, toutes les actions effectuées sur l'application sont définies comme des méthodes définies par l'utilisateur (qui sont des mots-clés) dans le fichier de classe de la bibliothèque.
Par exemple:
Supposons que notre application doive effectuer les actions suivantes dans un ou plusieurs cas de test:
- Saisissez l'URL.
- Cliquez sur un élément.
- Tapez une zone de texte.
Puis, le fichier bibliothèque est créé en définissant des méthodes individuelles pour toutes ces actions comme indiqué ci-dessous:
Ici, nous créons une méthode définie par l'utilisateur pour l'action - 'Saisir l'URL'.
Le nom fourni pour la méthode définie par l'utilisateur s'appelle un Mot-clé.
Donc, ici 'enter_URL' est le mot-clé
public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); }
Paramètres :
chauffeur - Le pilote est initialisé dans la classe principale et est passé ici.
Données de test - est lu à partir de la source externe par la classe principale et transmis ici.
Fonction :
Ici, driver.get () - est la fonction de Selenium qui exécute l'action «entrer l'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) Feuille Excel pour stocker les mots-clés
Toutes les méthodes définies par l'utilisateur ainsi que les détails de ses fonctionnalités doivent être mentionnés dans la feuille Excel afin que l'utilisateur puisse comprendre le mot-clé contenu dans le fichier de bibliothèque.
La feuille Excel agit comme un résumé pour le fichier de bibliothèque et devient utile lors de la création du modèle de scénario de test, où l'utilisateur regarde la liste de mots-clés de feuille Excel et choisit le mot-clé correspondant pour chaque action dans le scénario de test.
Par exemple:
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) Modèle de cas de test de conception
Un modèle de scénario de test peut être créé selon la convenance du projet. Il n'y a pas de règle particulière pour créer un modèle. Il est conçu en fonction de la nécessité pour le projet d'externaliser le cadre. L'externalisation peut concerner uniquement les mots clés, ou parfois même les données de test et les éléments d'interface utilisateur sont également externalisés.
Un exemple de modèle de scénario de test est créé:
Dans l'exemple donné, le modèle est créé de telle manière que:
- Chaque feuille correspond à un scénario de test et la dernière feuille est celle qui contient la «liste de mots clés».
- Chaque ligne correspond aux étapes de test d'un TC.
- Chaque colonne correspond aux paramètres nécessaires pour chaque action.
Comment remplir le modèle de scénario de test:
#1) À partir de la feuille de cas de test fournie, lisez chaque cas de test et ses étapes de test correspondantes. Pour chaque étape de test, recherchez l'action et recherchez le mot-clé correspondant dans le fichier de bibliothèque.
#deux) Une fois que l'action correspond au mot-clé, remplissez le modèle de scénario de test dans l'ordre du scénario de test et transmettez également les autres paramètres requis si nécessaire.
# 4) Référentiel d'objets pour les localisateurs
Le localisateur d'interface utilisateur peut être identifié et sa valeur peut être mentionnée dans le modèle de scénario de test ou conservée dans un référentiel d'objets distinct.
Dans l'exemple ci-dessous, les propriétés d'identification d'élément
- Type de localisateur - La technique d'identification utilisée est id, Xpath, ClassName, etc.
- Valeur du localisateur - Valeur de cet attribut - Par exemple: Si son attribut Id, alors la valeur de id et ainsi de suite.
Une autre façon est de maintenir dans le référentiel d'objets et de mentionner le nom de l'objet dans la feuille Excel.
- Type de localisateur - La technique d'identification utilisée est id, Xpath, ClassName, etc.
- Nom du localisateur –Le nom de l'objet du référentiel d'objets dans lequel la valeur du localisateur est stockée. Par exemple, Si le référentiel contient la valeur Xpath d’un élément avec le ObjectName comme «Username», alors le LocatorName est mentionné comme «UserName».
REMARQUE: Selon le LocatorType mentionné dans la feuille Excel, sa valeur doit être stockée dans le référentiel d'objets. Par exemple: Si Xpath est spécifié comme LocatorType, alors le référentiel doit stocker Xpath de cet élément, si l'id est spécifié comme Locatortype, alors l'id doit être stocké et ainsi de suite.
# 5) Scripts de test ou script de pilote
Il s'agit du script principal qui lit tout le contenu de la feuille Excel et exécute l'action correspondante. Le script est conçu en fonction de la façon dont le modèle est créé.
Dans notre cas, comme chaque feuille de test agit comme un cas de test et chaque ligne comme une étape de test, le script de pilote peut être créé en itérant sur les feuilles, puis sur les lignes.
Dans chaque ligne particulière, un mot-clé est lu et sa méthode correspondante dans le fichier de bibliothèque est exécutée et ainsi de suite. Cela continue jusqu'à ce que toutes les étapes de test du scénario de test soient exécutées. Ensuite, il passe au scénario / feuille de test suivant et l'exécute.
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;testcaseConclusion
Ainsi, une fois qu'un framework est créé, il est réutilisable pour plusieurs cas de test / projets. De cette façon, il réduit les heures-homme de création d'un script d'automatisation pour chaque projet.
Dans le chapitre suivant, nous discuterons de la création du framework hybride qui est une combinaison du framework piloté par mot-clé et du framework piloté par les données.
=> Lisez la série de formations Easy Selenium.
lecture recommandée
- Framework basé sur les données dans Selenium WebDriver à l'aide d'Apache POI
- Fonctionnement des tests pilotés par les données (exemples de QTP et de sélénium)
- Introduction à JUnit Framework et à son utilisation dans Selenium Script - Tutoriel Selenium # 11
- Qu'est-ce que le cadre hybride dans Selenium?
- Tutoriel de recherche d'élément par texte de sélénium avec des exemples
- 30+ meilleurs tutoriels sur Selenium: Apprenez le sélénium avec de vrais exemples
- Création du framework Selenium et accès aux données de test à partir d'Excel - Tutoriel Selenium # 21
- Mot-clé Java 'this': Tutoriel avec des exemples de code