Testarea bazelor de date folosind Selenium și JDBC: Cum se conectează?

⚡ Rezumat inteligent

Testarea bazelor de date folosind Selenium se bazează pe JDBC, deoarece WebDriver în sine validează doar stratul browserului. Acești pași arată cum se deschide un MySQL conexiune, rulează SQL, citește un ResultSet și verifică datele stocate.

  • 🔌 Podul JDBC: Selenium WebDriver controlează doar browserul, așadar JDBC furnizează stratul bazei de date pentru fiecare aserțiune de date.
  • 🧩 Clasa șoferului: Modern MySQL Connector/J înregistrează automat com.mysql.cj.jdbc.Driver, deci un apel explicit Class.forName este opțional.
  • 🔗 Șir de conexiune: A MySQL URL urmează jdbc:mysql://host:3306/database, iar 3306 este portul implicit al serverului.
  • 📥 Tratarea rezultatelor: Statement.executeQuery returnează un ResultSet, pe care îl iterezi cu next() și îl citești prin getString.
  • 🛡️ Siguranța resurselor: Funcția try-with-resources închide Connection, Statement și ResultSet chiar și atunci când o aserțiune eșuează pe parcurs.
  • 🚀 Igiena interogărilor: Parametrii PreparedStatement elimină riscul de injectare și permit serverului să reutilizeze un plan de execuție memorat în cache.

Testarea bazei de date folosind Selenium

Conexiune la baza de date în Selenium

Selenium Webdriver este limitat la Testarea aplicațiile dvs. folosind Browser. A folosi Selenium Webdriver pentru verificarea bazei de date trebuie să utilizați JDBC („Java Conectivitate la baza de date”).

JDBC (Java Conectivitate la baza de date) este a SQL nivel API care vă permite să executați instrucțiuni SQL. Este responsabil pentru conexiunea dintre Java Limbaj de programare și o gamă largă de baze de date. API-ul JDBC oferă următoarele clase și interfețe

  • Manager șofer
  • Şofer
  • Conexiune
  • Declarație
  • Setul de rezultate
  • SQLException

Cum se conectează baza de date în Selenium

Pentru a testa baza de date folosind Selenium, trebuie să respectați următorii 3 pași

Conectați baza de date în Selenium

Pasul 1) Faceți o conexiune la baza de date

Pentru a realiza o conexiune la baza de date sintaxa este

DriverManager.getConnection(URL, "userid", "password" )

Aici,

  • Userid este numele de utilizator configurat în baza de date
  • Parola utilizatorului configurat
  • URL are formatul jdbc:<tip_bd>://adresă_ip:număr_port/nume_bd”
  • - Driverul pentru baza de date la care încercați să vă conectați. Pentru a vă conecta la baza de date Oracle, această valoare va fi „oracle”. Pentru conectarea la baza de date cu numele „emp” în MYSQL URL va fi jdbc:mysql://localhost:3036/emp

Și codul pentru a crea conexiunea arată ca

Connection con = DriverManager.getConnection(dbUrl,username,password);

De asemenea, trebuie să încărcați driverul JDBC folosind codul

Class.forName("com.mysql.jdbc.Driver");
⚠️ Avertisment: com.mysql.jdbc.Driver a fost depreciat în Connector/J 8.0. Folosiți com.mysql.cj.jdbc.Driver. Începând cu JDBC 4.0, driverul se înregistrează automat, deci Class.forName este opțional. MySQL ascultă pe 3306, nu pe 3036.

Pasul 2) Trimiteți interogări la baza de date

Odată ce conexiunea este realizată, trebuie să executați interogări.

Puteți utiliza obiectul Statement pentru a trimite interogări.

Statement stmt = con.createStatement();

Odată ce obiectul instrucțiunii este creat, utilizați metoda executeQuery pentru a executa interogările SQL

stmt.executeQuery(select *  from employee;);
⚠️ Avertisment: executeQuery primește un șir de caractere, deci comanda SQL se folosește între citate: executeQuery(“select * from employee”). Se folosește PreparedStatement pentru introducerea datelor de către utilizator.

Pasul 3) Procesați rezultatele

Rezultatele din interogarea executată sunt stocate în obiectul ResultSet.

Java oferă o mulțime de metode avansate de procesare a rezultatelor. Câteva dintre metode sunt enumerate mai jos

Procesați Rezultatele

Exemplu de testare a bazei de date cu Selenium

Pas 1) Instalare MySQL server de și MySQL Banc de lucru

Consultați ghidul complet pentru Mysql & Mysql Workbench aici

În timpul instalării MySQL Server, vă rugăm să rețineți baza de date

  • Nume de utilizator
  • Parolă
  • Numarul portului

Va fi necesar în pașii ulterioare.

MySQL Workbench facilitează administrarea bazei de date fără a fi nevoie să codificați SQL. Cu toate acestea, puteți utiliza și MySQL Terminal pentru a interacționa cu baza de date.

Pas 2) In MySQL WorkBench, conectați-vă la dvs MySQL server de

Testarea bazei de date cu Selenium

În ecranul următor,

  1. Selectați Instanța locală a MySQL
  2. Introduceți numărul portului
  3. Introduceti numele de utilizator
  4. Introdu parola
  5. Faceți clic pe OK

Testarea bazei de date cu Selenium

Pas 3) Pentru a crea o bază de date,

  1. Faceți clic pe butonul Creați Schema
  2. Introduceți numele schemei/bazei de date
  3. Faceți clic pe Aplicați

Testarea bazei de date cu Selenium

Pas 4) În meniul navigatorului,

  1. Faceți clic pe Tabele, sub baza de date emp
  2. Introduceți numele tabelului ca angajat
  3. Introduceți câmpuri ca Nume și Vârstă
  4. Faceți clic pe Aplicați

Testarea bazei de date cu Selenium

Veți vedea următorul pop-up. Faceți clic pe Aplicare

Testarea bazei de date cu Selenium

Pas 5) Vom crea următoarele date

Nume Vârstă
Top 25
Nick 36
Bill 47

Pentru a crea date în tabel

  1. În navigator, selectați tabelul de angajați
  2. În panoul din dreapta, faceți clic pe Editor de formulare
  3. Introduceți numele și vârsta
  4. Faceți clic pe Aplicați

Testarea bazei de date cu Selenium

Repetați procesul până când toate datele sunt create

Testarea bazei de date cu Selenium

Pas 6) Descărcați MySQL conector JDBC aici

Testarea bazei de date cu Selenium

Pas 7) Adăugați Jarul descărcat în proiect

  1. Faceți clic dreapta pe dvs Java Fișier. Apoi faceți clic pe Build Path à Configurați calea de compilare
  2. Selectați bibliotecile
  3. Faceți clic pe adăugați JAR externe
  4. Poti sa vezi MySQL conector java în biblioteca dvs
  5. Faceți clic pe deschide pentru a-l adăuga la proiect

Testarea bazei de date cu Selenium

Pas 8) Copiați următorul cod în editor

Package  htmldriver;		
import  java.sql.Connection;		
import  java.sql.Statement;		
import  java.sql.ResultSet;		
import  java.sql.DriverManager;		
import  java.sql.SQLException;		
public class  SQLConnector {				
    	public static void  main(String[] args) throws  ClassNotFoundException, SQLException {													
				//Connection URL Syntax: "jdbc:mysql://ipaddress:portnumber/db_name"		
                String dbUrl = "jdbc:mysql://localhost:3036/emp";					

				//Database Username		
				String username = "root";	
                
				//Database Password		
				String password = "guru99";				

				//Query to Execute		
				String query = "select *  from employee;";	
                
         	    //Load mysql jdbc driver		
           	    Class.forName("com.mysql.jdbc.Driver");			
           
           		//Create Connection to DB		
            	Connection con = DriverManager.getConnection(dbUrl,username,password);
          
          		//Create Statement Object		
        	   Statement stmt = con.createStatement();					
       
       			// Execute the SQL Query. Store results in ResultSet		
         		ResultSet rs= stmt.executeQuery(query);							
         
         		// While Loop to iterate through all data and print results		
				while (rs.next()){
			        		String myName = rs.getString(1);								        
                            String myAge = rs.getString(2);					                               
                            System. out.println(myName+"  "+myAge);		
                    }		
      			 // closing DB Connection		
      			con.close();			
		}
}
⚠️ Avertisment: Listare păstrată așa cum a fost publicată. Echivalente moderne: com.mysql.cj.jdbc.Driver, portul 3306, pachetul cu litere mici și try-with-resources pentru curățare.

Pas 9) Executați codul și verificați rezultatul

Testarea bazei de date cu Selenium

Aceiași pași se aplică oricărui motor relațional.

Drivere JDBC și șiruri de conexiune pentru baze de date populare

MySQL este doar o opțiune. Modelul JDBC rămâne identic în toate motoarele: importurile, apelul Statement și bucla ResultSet nu se modifică. Doar artefactul driverului și URL diferă, așadar folosiți tabelul de mai jos atunci când aplicația testată rulează pe o altă bază de date.

Baza de date Clasa de șoferi Conexiune exemplu URL Port implicit
MySQL com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306/emp 3306
PostgreSQL org.postgresql.Driver jdbc:postgresql://localhost:5432/emp 5432
Oracle oracle.jdbc.OracleŞofer jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databasename=emp 1433

Numerele de port cauzează majoritatea erorilor inițiale. O eroare de refuz al conexiunii înseamnă aproape întotdeauna că portul din URL nu corespunde cu portul pe care serverul ascultă de fapt. Verificați configurația serverului înainte de a prelua portul implicit.

Fiecare driver este livrat ca un singur JAR pe care îl adăugați la calea de compilare exact așa cum se arată în Pasul 7. Fiecare motor enumerat mai sus se înregistrează automat, deci nu este necesară nicio linie Class.forName. Aceasta înseamnă că o singură metodă helper poate servi fiecare mediu vizat de suita dvs.

Întrebări frecvente

Nu. De la JDBC 4.0 (Java 6), DriverManager descoperă driverele prin mecanismul ServiceLoader, așadar adăugarea fișierului JAR Connector/J la calea de clasă este suficientă. Păstrați apelul doar atunci când un container vechi nu reușește să înregistreze automat driverul.

Fișierul JAR Connector/J lipsește din calea de clasă la momentul execuției sau URL este incorect. Confirmați că JAR apare sub Biblioteci referite și verificați dacă URL începe cu jdbc:mysql:// și denumește o gazdă și un port accesibil.

Da. Asistenți precum Copilotul GitHub asistenți pentru conexiuni schelă, bucle ResultSet și aserțiuni dintr-o descriere a schemei. RevVizualizați fiecare interogare generată pentru a verifica numele corecte ale tabelelor și siguranța injectării înainte de validare.

Modelele AI generează rânduri de început realiste, sugerează valori limită și semnalează aserțiunile care se modifică după o migrare a schemei. Platforme precum Testim Aplicați acest lucru la întreținere, deși revizuirea umană rămâne necesară pentru integritatea referențială.

Întotdeauna. O conexiune sau un ResultSet neînchis epuizează pool-ul de conexiuni al serverului pe o suită lungă. Încadrați-le în try-with-resources sau închideți-le într-un bloc @AfterMethod, astfel încât curățarea să ruleze chiar și atunci când o aserțiune eșuează.

Rezumați această postare cu: