Selenium Easy

Wie wir wissen, muss jede Anwendung eine Datenbank wie meine SQL-, Oracle- oder andere Datenbanken verwalten, um alle ihre Daten zu speichern. Und wo als Selenium Webdriver zum Testen von Webanwendungen verwendet wird und wir viele Vorgänge ausführen, z. B. das Senden von Informationen und manchmal das Abrufen von Informationen und deren Validierung.

Wenn in Selenium-Skripten die Daten aus der Datenbank abgerufen werden müssen, müssen wir möglicherweise APIs verwenden, die bei der Interaktion mit Datenbanken wie JDBC helfen.

Java Database Connectivity(JDBC) ist eine Java-API, die zum Verbinden und Interagieren mit Datenbanken verwendet wird.

Warum verwenden wir JDBC anstelle von ODBC?

ODBC wird in C entwickelt und geschrieben, das plattformunabhängig ist. wobei als JDBC-API eine Spezifikation eine Reihe von Schnittstellen bereitstellt, die in der Programmiersprache Java geschrieben und entwickelt wurden.

Wie verbinde ich mich mit JDBC mit der Datenbank?

Im Folgenden sind die Schritte zum Herstellen einer Verbindung zur Datenbank aufgeführt. Sie können von hier herunterladen MySQL Connector Jar herunterladen und den Build-Pfad hinzufügen, während wir Selenium Webdriver jar hinzufügen.

1. Laden und Registrieren des Treibers
2. Verbindung herstellen.
3. Erstellen des Anweisungsobjekts
4. Führen Sie die Anweisung
5 aus. Schließen der Verbindung.

1. Laden und registrieren Sie den Treiber:

Zum Registrieren des Treibers laden wir die Treiberklasse mit der Methode forName().

forName() ist die statische Factory-Methode, die in einer vordefinierten Klasse namens „Class“ vorhanden ist. Diese Methode lädt die Klasse, die als Parameter erwähnt wird.

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

Intern registriert diese Treiberklasse den Treiber mithilfe der statischen Methode registerDriver() .

2. Verbindungsaufbau:

Um eine Verbindung zur Datenbank herzustellen, rufen wir die statische Methode getConnection(…) in der DriverManager-Klasse vorhanden. Diese Methode enthält drei Argumente vom Typ string. dh URL, Benutzername und Passwort

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

URL enthält „jdbc (Hauptprotokoll): mysql (Unterprotokoll für MySQL): // localhost: 3306 (Untername für MySQL (Host: prot)) / Mitarbeiter (Datenbank)“ und diese Methode Rückgabetyp ist Verbindungsobjekt dh.,

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

3. Anweisungsobjekt erstellen:

Zum Erstellen eines Anweisungsobjekts müssen wir eine Methode namens createStatement() aufrufen, die in der Verbindungsschnittstelle vorhanden ist.

con.createStatement();

Und diese Methode gibt Anweisungsobjekt zurück und es ist keine Argumentmethode.

Statement st= con.createStatement();

4.Abfragen ausführen:

Zum Ausführen von Abfragen In der Anweisungsschnittstelle sind verschiedene Methoden zum Abrufen von Datensätzen und zum Aktualisieren von Datensätzen vorhanden.

Datensätze abrufen:
Zum Ausführen von Select-Abfragen (zum Abrufen von Datensätzen) rufen wir eine Methode namens executeQuery(String qry) auf, indem wir string als Parameter verwenden.

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

Diese Methode gibt ResultSet Objekt.

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

Jetzt müssen wir die Datensätze vom ResultSet-Objekt abrufen. Um auf das resultset Objekt zuzugreifen, wird eine Methode namens next() verwendet, die in der ResultSet Schnittstelle angezeigt wird.

Standardmäßig zeigt die Ergebnismengen-Referenz ‚rs‘ auf die erste Zeile. es bewegt rs zur nächsten Zeile und gibt true zurück. Wenn es true zurückgibt, rufen wir die Daten in der ersten Zeile ab. next() gibt false zurück, wenn rs nach der letzten Zeile zeigt. dieses next() wiederholt die Ausführung mit der while-Schleife, bis false zurückgegeben wird.

Um die Daten aus Zeilen zu erhalten, verwenden wir getXXX(..) unter String oder Integer als Parameter. Hier bedeutet integer die Spaltenposition und string den Spaltennamen des Datensatzes. xxx gibt primitive Datentypen oder Zeichenfolgenobjekte an.

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);}

Aktualisieren von Datensätzen:
Um Datensätze in einer Tabelle zu aktualisieren, verwenden wir eine Methode namens executeUpdate(String str)

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

der ganzzahlige Wert gibt an, wie viele Datensätze aktualisiert wurden.

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

5. Schließen der Verbindung:

Sobald die Ausführung aller Anweisungen abgeschlossen ist, müssen wir alle Verbindungen schließen, indem wir die Methode close() verwenden, die in der Verbindungsschnittstelle vorhanden ist

con.close();

Die Datenbank, die wir zum Beispiel verwenden, enthält die folgenden Datensätze in der Tabelle ‚Employee‘
 Datenbanktest mit Selen

Jetzt ist es an der Zeit, sich mit dem folgenden einfachen Beispielprogramm zu befassen, und später werden wir : – Im nächsten Tutorial werden wir versuchen, ein Beispiel zu nehmen, das die Parameter (wie Datenbankanmeldeinformationen, Umgebungsdetails usw.) aus Eigenschaftendateien übernimmt und den Test basierend auf den angegebenen Parametern durchführt.

/** * 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(); } } }}

Im obigen Beispiel haben wir, setUp() wird eine Datenbankverbindung erstellen, und in der @Test-Methode werden wir die Tabelle ausführen und iterieren, um alle Werte in der Datenbank zu drucken. Und last tearDown() hat eine enge Verbindung, die die Datenbankverbindung schließt, wenn sie geöffnet wird.

Die Ausgabe des obigen Programms sollte wie folgt aussehen:

 Datenbanktestergebnis mit Selen

Bis jetzt haben wir ein Beispiel für den Zugriff auf die Datenbank gesehen.

Es gibt hauptsächlich zwei Dinge, die wir testen möchten, um die Datenbank mit Selenium zu überprüfen.

Nachdem wir eine Aktion in der Webanwendung (Frontend) ausgeführt haben, möchten wir möglicherweise die Datenbank überprüfen, ob alle von uns übermittelten Details korrekt gespeichert sind. Wenn Sie beispielsweise ein Konto erstellen, geben wir einige Daten ein E-Mail-ID, Benutzername usw. Um sicherzustellen, dass ein Konto erstellt wird, können wir den in der Datenbank erstellten Datensatz mit allen vom Benutzer angegebenen Details überprüfen.

Andere fall kann wie, nach durchführung jede aktion, wir können überprüfen möchten die daten angezeigt in die UI korrekt ist durch den vergleich der Datenbank.

Ich hoffe, dieser Artikel hilft Ihnen. Lassen Sie uns wissen, wenn Schwierigkeiten bei der Arbeit mit dem obigen Programm aufgetreten sind, und Feedback ist ebenfalls willkommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.