Selenium Easy

Comme nous le savons, chaque application doit maintenir une base de données comme Mon SQL, Oracle ou toute autre base de données pour stocker toutes ses données. Et où Selenium Webdriver est utilisé pour tester des applications Web et nous effectuons de nombreuses opérations comme la soumission d’informations et parfois la récupération d’informations et leur validation.

Dans les scripts selenium, lorsqu’il est nécessaire d’obtenir les données de la base de données, nous devrons peut-être utiliser des API qui aident à interagir avec une base de données comme JDBC.

Java Database Connectivity (JDBC) est une API Java utilisée pour se connecter et interagir avec la base de données.

Pourquoi utilisons-nous JDBC à la place d’ODBC?

ODBC est développé et écrit en C, qui est indépendant de la plate-forme. où l’API JDBC est une spécification fournissant un ensemble d’interfaces écrites et développées en langage de programmation Java.

Comment se connecter à la base de données en utilisant JDBC?

Voici les étapes pour vous connecter à la base de données, avant de continuer, vous devez avoir un connecteur MySQL. Vous pouvez télécharger à partir d’ici Télécharger MySQL Connector Jar et ajouter le chemin de construction lorsque nous ajoutons selenium webdriver jar.

1. Charger et enregistrer le pilote
2. Établir Une connexion.
3. Création d’un objet d’instruction
4. Exécutez l’instruction
5. Fermeture de la connexion.

1. Charger et enregistrer le Pilote:

Pour enregistrer le pilote, nous chargeons la classe de pilote en utilisant la méthode forName().

forName() est la méthode d’usine statique qui est présente dans une classe prédéfinie appelée « Classe ». Cette méthode charge la classe qui est mentionnée comme paramètre.

Class.forName("com.mysql.jdbc.Driver");// class.forName load the Driver class

En interne, cette classe de pilote enregistrera le pilote en utilisant une méthode statique appelée registerDriver().

2. Établir une connexion:

Pour établir une connexion avec une base de données, nous appelons une méthode statique appelée getConnection(…) présent dans la classe DriverManager. Cette méthode contient trois arguments de type string. c’est-à-dire l’url, le nom d’utilisateur et le mot de passe

DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root","root"); 

L’URL contient « jdbc (protocole principal): mysql (sous-protocole pour MySQL): // localhost: 3306 (sous-nom pour mysql (hôte: prot)) / Employé (base de données) » et ce type de retour de méthode est l’objet de connexion ie.,

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root","root"); 

3. Création d’un objet d’instruction:

Pour créer un objet d’instruction, nous devons appeler une méthode appelée createStatement() qui est présente dans l’interface de connexion.

con.createStatement();

Et cette méthode renvoie un objet d’instruction et ce n’est pas une méthode d’argument.

Statement st= con.createStatement();

4.Exécution de requêtes :

Pour exécuter des requêtes il existe différentes méthodes présentes dans l’interface d’instructions pour récupérer des enregistrements et mettre à jour des enregistrements.

Récupération des enregistrements:
pour exécuter des requêtes select (pour récupérer des enregistrements), nous appelons une méthode appelée executeQuery (String qry) en prenant string comme paramètre.

st.executeQuery("Select * from Employee");

Cette méthode renvoie l’objet ResultSet.

Resultset rs= st.executeQuery("Select * from Employee");// once executeQuery() executes the query and stores the records in to ResultSet object. 

Maintenant, nous devons obtenir les enregistrements de l’objet ResultSet. Pour accéder à l’objet resultset, il utilise une méthode appelée next() qui se présente dans l’interface ResultSet.

Par défaut, la référence du jeu de résultats ‘rs’ pointe vers avant la première ligne. il déplace rs à la ligne suivante et renvoie true. Lorsqu’il renvoie true, nous récupérons les données de la première ligne. next() renvoie false lorsque rs pointe après la dernière ligne. this next() répétera l’exécution en utilisant la boucle while jusqu’à ce qu’elle renvoie false.

Pour obtenir les données des lignes, nous utilisons getXxx(..) en prenant comme paramètres une chaîne ou un entier. Ici, un entier signifie la position de la colonne et une chaîne signifie le nom de la colonne de l’enregistrement. xxx indique des types de données primitifs ou un objet chaîne.

while(rs.next()) {int EmpId= rs.getInt("EmpId");String EmpName= rs.getString("EmpName");String EmpAddress=rs.getString(3);Double EmpSal= rs.getDouble(4);String EmpDept=rs.getString("EmpDept");System.out.println(EmpId+"\t"+EmpName+"\t"+EmpAddress+"\t"+EmpSal+"\t"+EmpDept);}

Mise à jour des enregistrements :
Pour mettre à jour les enregistrements d’une table, nous utilisons une méthode appelée executeUpdate (chaîne str)

st.executeUpdate("update Employee set EmpName='Robert' where EmpId=2");

qui renvoie une valeur entière comme le nombre d’enregistrements mis à jour.

int result = st.executeUpdate("update Employee set EmpName='Robert' where EmpId=2");System.out.println("number of records updated is" +result);

5. Fermeture de la connexion:

Une fois l’exécution de toutes les instructions terminée, nous devons fermer toutes les connexions en utilisant la méthode appelée close() présente dans l’interface de connexion

con.close();

La base de données que nous utilisons par exemple contient les enregistrements suivants dans la table ‘Employee’
 test de base de données avec du sélénium

Maintenant, il est temps de regarder ci-dessous un exemple de programme simple et plus tard, nous sauterons dans l’exemple de framework : – Dans le tutoriel suivant, Nous allons essayer de prendre un exemple qui prendra les paramètres (comme les informations d’identification de la base de données, les détails de l’environnement, etc.) à partir des fichiers de propriétés et procédera au test en fonction des paramètres spécifiés.

/** * Created by VISISHTA on 12/17/2015. */import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;import java.sql.*;public class SeleniumDataBaseTesting { private Connection connection; private static Statement statement; private static ResultSet rs; @BeforeClass public void setUp() { String databaseURL = "jdbc:mysql://localhost:3306/easy"; String user = "root"; String password = "root"; connection = null; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Connecting to Database..."); connection = DriverManager.getConnection(databaseURL, user, password); if (connection != null) { System.out.println("Connected to the Database..."); } } catch (SQLException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } } @Test public void getEmployeesFromDataBase() { try { String query = "select * from employee"; statement = connection.createStatement(); rs = statement.executeQuery(query); while(rs.next()){ int EmpId= rs.getInt("EmpId"); String EmpName= rs.getString("EmpName"); String EmpAddress=rs.getString(3); String EmpDept=rs.getString("EmpDept"); Double EmpSal= rs.getDouble(5); System.out.println(EmpId+"\t"+EmpName+"\t"+EmpAddress+"\t"+EmpSal+"\t"+EmpDept); } } catch (SQLException ex) { ex.printStackTrace(); } } @AfterClass public void tearDown() { if (connection != null) { try { System.out.println("Closing Database Connection..."); connection.close(); } catch (SQLException ex) { ex.printStackTrace(); } } }}

Dans l’exemple ci-dessus, setUp() créera une connexion à la base de données, et dans la méthode @Test, nous exécuterons et itérerons la table pour imprimer toutes les valeurs de la base de données. Et last tearDown() a une connexion étroite qui fermera la connexion à la base de données si elle est ouverte.

La sortie du programme ci-dessus devrait ressembler à celle ci-dessous:

 résultat du test de base de données avec du sélénium

Jusqu’à présent, nous avons vu un exemple sur la façon d’accéder à la base de données, voyons maintenant comment nous effectuons réellement des tests de base de données en utilisant du sélénium.

Il y a principalement deux choses que nous pourrions vouloir tester pour vérifier la base de données avec du sélénium.

Tout d’abord, après avoir effectué une action dans l’application Web (Front-end), nous pouvons vouloir vérifier la base de données si tous les détails que nous avons soumis sont stockés correctement. Maintenant, par exemple, lors de la création d’un compte, nous allons entrer des données identifiant de messagerie, nom d’utilisateur, etc. Pour vous assurer qu’un compte est créé, nous pouvons vérifier l’enregistrement créé dans la base de données avec tous les détails fournis par l’utilisateur.

Un autre cas peut être comme, après avoir effectué une action, nous pouvons vouloir vérifier que les données affichées dans l’interface utilisateur sont correctes en comparant la base de données.

J’espère que cet article vous aidera. Faites-nous savoir si vous avez rencontré des difficultés lorsque vous travaillez avec le programme ci-dessus et les commentaires sont également les bienvenus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.