selenium framework creation
Dans le dernier tutoriel, nous vous avons familiarisé avec le bases des frameworks d'automatisation des tests , ses composants et ses types. Les frameworks illustrés dans le tutoriel précédent étaient quelques-uns des frameworks les plus populaires utilisés par la fraternité de test.
Nous avons brièvement discuté des cadres basés sur des modules, du cadre basé sur l'architecture de bibliothèque, du cadre piloté par les mots clés, du framework piloté par les données et du framework hybride. Il existe également divers autres cadres sur place.
Veuillez prendre note que nous adopterions Framework d'automatisation des tests pilotés par les données pour le reste de nos didacticiels.
Dans l'actuel tutoriel dans cette série , nous vous ferions connaître un exemple de cadre, les Excels qui stockeraient les données de test et leurs manipulations Excel . Dans le même ordre d'idées, nous avancerions et introduirions de nouvelles stratégies et ressources pour faire mûrir notre cadre.
Alors, apprenons:
- Stratégie de création de framework à l'aide d'un exemple de projet
- Accéder aux données de test stockées dans la source de données externe
Pour aller de l'avant, nous commencerions par la description de la hiérarchie du projet que nous créerions afin de séparer les différents composants du projet.
Reportez-vous à l'image ci-dessous pour la hiérarchie de projet créée pour l'exemple de projet. Le projet java ci-dessous peut être facilement créé dans l'éclipse de la manière dont nous avons créé les projets dans les didacticiels précédents.

Ce que vous apprendrez:
- Structure des dossiers du projet Selenium - Procédure pas à pas
- Création de données de test
- Conclusion:
- lecture recommandée
Structure des dossiers du projet Selenium - Procédure pas à pas
# 1) src - Le dossier contient tous les scripts de test, les génériques, les lecteurs et les utilitaires. Toutes ces ressources ne sont rien d'autre que de simples classes Java. Sous le dossier source (src), nous avons créé une hiérarchie de dossiers.
un examen - Le dossier «test» est constitué majoritairement de deux ingrédients - la suite de tests et les dossiers représentant les différents modules de l'application testée. Ainsi, chacun de ces dossiers contient les scripts de test spécifiques au module auquel il est associé. Testsuite est une combinaison logique de plusieurs scripts de test. Ainsi, l'utilisateur peut marquer une entrée de n'importe lequel des scripts de test dans la suite de tests qu'il souhaite exécuter dans les exécutions suivantes.
logiciel pour télécharger des vidéos depuis n'importe quel site Web
b) services publics - Le dossier «utilities» est constitué de divers génériques, constantes, lecteurs et classes pour l'implémentation d'exceptions définies par l'utilisateur. Chacun des dossiers sous les utilitaires a sa propre signification.
- Lecteur Excel - Une classe générique et commune a été créée pour lire les données de test (paramètres d'entrée et résultats attendus) à partir des feuilles Excel
- EnvironnementConstants - Le dossier est l'intégration des classes java qui stockent les variables statiques faisant référence aux chemins et autres détails environnementaux. Ces détails peuvent être l'URL de l'application, l'URL des bases de données, les informations d'identification des bases de données et l'URL de tout outil tiers utilisé. Les URL d'applications disparates peuvent être définies pour différents environnements (dev, prod, test, maître, esclave, etc.).
- DataSetters - Le dossier comprend les classes qui implémentent les getters et les setters des données de test extraites d'Excel. Pour charger plusieurs ensembles de données de test, nous créons des ArrayLists.
- UserRoles - Le dossier contient les classes qui prennent en charge les critères d'accès basés sur les rôles, le cas échéant, pour les utilisateurs instincts.
- FunctionLibrary - Le dossier est constitué des classes qui contiennent des fonctions et des méthodes qui peuvent être partagées et utilisées entre les multiples classes. Très souvent, nous sommes censés effectuer certaines procédures avant et après l'exécution réelle du test comme la connexion à l'application, la configuration des environnements, les activités liées aux rouleaux, les manipulations de données, l'écriture des résultats, les méthodes qui génèrent des pré / post-conditions à d'autres méthodes . Puisque nous avons tendance à effectuer ces activités pour tout ou la plupart du script de test. Il est donc toujours recommandé de créer une classe distincte pour ces activités au lieu de les coder à plusieurs reprises dans chacun des scripts de test.
- Méthodes préconditionnelles
- PostConditionnelMethods
Très souvent, nous sommes censés effectuer certaines procédures avant et après l'exécution réelle du test comme la connexion à l'application, la mise en place d'environnements, les activités liées aux rôles des utilisateurs, les manipulations de données, l'écriture des résultats, les méthodes qui génèrent des pré / post-conditions à d'autres méthodes. Puisque nous avons tendance à effectuer ces activités pour la totalité ou la plupart des scripts de test, il est donc toujours recommandé de créer une classe distincte pour ces activités au lieu de les coder à plusieurs reprises dans chacun des scripts de test.
Méthodes courantes
Comme les pré et postconditions, il peut y avoir des méthodes et des fonctions qui peuvent être utilisées par plus d'un script de test. Ainsi, ces méthodes sont regroupées dans une classe. Le script de test peut accéder à ces méthodes en utilisant l'objet de la classe commune.
# 2) Fichiers Excel - Les fichiers Excel sont considérés comme les sources de données / fournisseurs de données pour l'exécution du script de test. Ces fichiers stockent les données de test dans des paires clé-valeur. Notez que nous créons une feuille Excel distincte pour chacun des scripts de test, c'est-à-dire que chaque script de test a son propre fichier de données de test. Le nom du script de test et les fichiers de données de test / feuille Excel correspondants ont été conservés pour la perspective de traçabilité. Consultez l'exemple de format de données de test ci-dessous:
Format des données de test

Chacune des colonnes représente une clé et chacune des lignes représente une donnée / valeur de test. Spécifiez les lignes multiples afin d'exécuter le même script de test avec plusieurs ensembles de données.
Notez que les formats de données de test sont uniquement définis par l'utilisateur. Ainsi en fonction de vos besoins, vous pouvez personnaliser les fichiers de données de test.
# 3) Bibliothèque - Le dossier agit comme un référentiel / artificiel pour tous les fichiers jar, bibliothèques, pilotes, etc. requis pour créer avec succès l'environnement de test et exécuter les scripts de test. Reportez-vous à la figure suivante pour découvrir les bibliothèques que nous serions employés dans notre projet.

# 4) Journaux - Le dossier contient un fichier .txt qui stocke les informations de journalisation à chaque exécution.
# 5) Matériel d'essai - Le dossier contient les données de test réelles qui doivent être téléchargées le cas échéant. Ce dossier entrerait en image lorsque nous rencontrions des scénarios de test où l'utilisateur est tenu de télécharger des fichiers, des documents, des images, des rapports, etc.
# 6) build.xml - Le fichier xml est utilisé par le «Ant Server» pour automatiser l'ensemble du processus de construction.
# 7) log4j.xml - Ce fichier xml est utilisé par un utilitaire Java nommé «Log4j» pour générer les journaux d'exécution.
Noter : Nous étudierons plus en détail les journaux, les exceptions définies par l'utilisateur et Ant dans les prochains tutoriels. Alors ne paniquez pas si vous êtes confus entre les notions.
Maintenant, au fur et à mesure que nous avançons, comprenons le phénomène où nous accédons aux fichiers Excel et remplissons les données de test dans nos scripts de test.
Afin de comprendre le processus plus facilement, nous le décomposerions en étapes suivantes.
Création de données de test
Étape 1 : La première et la plus importante étape consiste à créer les données de test avec lesquelles nous exécuterions les scripts de test. Compte tenu du format de données de test susmentionné, créons un fichier Excel nommé «TestScript1». Fournissez les valeurs dans les éléments.

Étape 2 : L'étape suivante consiste à télécharger une API / bibliothèque standard basée sur Java appelée «Java Excel Library» (jxl) pour pouvoir accéder aux méthodes génériques déjà créées pour la manipulation d'Excel.
Étape 3 : Créez une classe de lecteur Excel générique nommée «ExcelReader.java». Copiez le code ci-dessous dans 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 Étape 4 : Créez une classe générique - «CommonMethods.java». Créez une méthode commune au sein de la classe qui lirait les cellules de la feuille Excel à l'aide des méthodes implémentées dans 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 Étape 5 : Créez une nouvelle classe Java nommée «TestData.java». Cette classe agirait comme un getter et un setter pour les données Excel. Copiez et collez le code suivant dans la classe 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; } } Étape 6 : L'étape suivante consiste à créer des instances des classes java «TestData.java» et «CommonMethods.java» dans le script de test afin d'accéder et de remplir les données de test. Reportez-vous à l'extrait de code ci-dessous pour l'initialisation des objets, la lecture des données Excel et le remplissage des valeurs si nécessaire.
// 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)); Par conséquent, en utilisant l'instance de la classe testData.java en conjonction avec les getters, toute valeur de données de test peut être renseignée dans le script.
Conclusion:
Le tutoriel a principalement tourné autour de notions telles que la création de framework et l'accès aux données de test à partir d'Excel. Nous vous avons fait connaître la stratégie de création du Framework à l'aide d'un exemple de projet. Nous avons brièvement mis en lumière les différents composants et aspects de notre cadre.
comment supprimer un élément d'un tableau java
Afin d'accéder aux données de test stockées dans la source de données externe, nous avons utilisé une API basée sur Java - jxl. Nous avons également créé l'exemple de code pour lire et remplir les données Excel dans les scripts de test.
Tutoriel suivant # 22 : Dans le prochain tutoriel, nous baserons notre tutoriel sur le concepts de génériques et leur mécanisme d'accessibilité . Nous créerions quelques exemples de méthodes génériques, puis y accédions dans les scripts de test. Nous vous présenterons également le concept de Testsuite et l'exemple de développement de code.
lecture recommandée
- Introduction à JUnit Framework et à son utilisation dans Selenium Script - Tutoriel Selenium # 11
- Framework basé sur les données dans Selenium WebDriver à l'aide d'Apache POI
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Tutoriels Eclipse détaillés pour les débutants
- Comment utiliser le framework TestNG pour créer des scripts Selenium - Tutoriel TestNG Selenium # 12
- Script Selenium efficace et scénarios de dépannage - Tutoriel Selenium # 27
- Débogage de scripts Selenium avec des journaux (Tutoriel Log4j) - Tutoriel Selenium # 26