Test del database tramite Selenium e JDBC: come connettersi?

⚡ Riepilogo intelligente

Test del database tramite Selenium si basa su JDBC, perché WebDriver stesso convalida solo il livello del browser. Questi passaggi mostrano come aprire un MySQL stabilire una connessione, eseguire query SQL, leggere un ResultSet e verificare i dati memorizzati.

  • ???? Ponte JDBC: Selenium WebDriver gestisce solo il browser, quindi JDBC fornisce il livello del database per ogni asserzione di dati.
  • 🧩 Classe di conducente: Moderno MySQL Connector/J registra automaticamente com.mysql.cj.jdbc.Driver, quindi una chiamata esplicita a Class.forName è facoltativa.
  • 🔗 Stringa di connessione: A MySQL URL segue jdbc:mysql://host:3306/database, e 3306 è la porta predefinita del server.
  • 📥 Gestione dei risultati: Il metodo Statement.executeQuery restituisce un ResultSet, che si può iterare con next() e leggere tramite getString.
  • 🛡️ Sicurezza delle risorse: try-with-resources chiude Connection, Statement e ResultSet anche quando un'asserzione fallisce a metà.
  • 🚀 Domanda sull'igiene: I parametri PreparedStatement eliminano il rischio di injection e consentono al server di riutilizzare un piano di esecuzione memorizzato nella cache.

Test del database utilizzando Selenium

Connessione al database in Selenium

Selenium Webdriver è limitato a Collaudo le tue applicazioni utilizzando il browser. Usare Selenium Webdriver per la verifica del database è necessario utilizzare JDBC (“Java Connettività database”).

JDBC (Java Connettività al database) è a SQL API di livello che consente di eseguire istruzioni SQL. È responsabile della connettività tra Java Linguaggio di programmazione e un'ampia gamma di database. L'API JDBC fornisce le seguenti classi e interfacce

  • Driver Manager
  • Guidatore
  • Connessione
  • dichiarazione
  • Set di risultati
  • SQLException

Come connettere il database in Selenium

Per testare il tuo database utilizzando Selenium, è necessario osservare i seguenti 3 passaggi

Connetti il ​​database in Selenium

Passaggio 1) Stabilire una connessione al database

Per stabilire una connessione al database la sintassi è

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

Qui,

  • Userid è il nome utente configurato nel database
  • Password dell'utente configurato
  • URL è nel formato jdbc:< dbtype>://indirizzoip:numero_porta/nome_db”
  • - Il driver per il database a cui stai tentando di connetterti. Per connettersi al database Oracle, questo valore sarà "oracle". Per connettersi al database con nome "emp" in MySQL URL sarà jdbc:mysql://localhost:3036/emp

E il codice per creare la connessione assomiglia

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

È inoltre necessario caricare il driver JDBC utilizzando il codice

Class.forName("com.mysql.jdbc.Driver");
⚠️ Attenzione: La classe com.mysql.jdbc.Driver è stata deprecata in Connector/J 8.0. Utilizzare com.mysql.cj.jdbc.Driver. A partire da JDBC 4.0, il driver si registra automaticamente, quindi Class.forName è facoltativo. MySQL Ascolta sulla frequenza 3306, non sulla 3036.

Passaggio 2) Invia query al database

Una volta stabilita la connessione, è necessario eseguire le query.

È possibile utilizzare l'oggetto Statement per inviare query.

Statement stmt = con.createStatement();

Una volta creato l'oggetto istruzione, utilizzare il metodoexequery per eseguire le query SQL

stmt.executeQuery(select *  from employee;);
⚠️ Attenzione: executeQuery accetta una stringa, quindi racchiudi tra virgolette la query SQL: executeQuery("select * from employee"). Utilizza PreparedStatement per l'input dell'utente.

Passaggio 3) Elaborare i risultati

I risultati della query eseguita vengono archiviati nell'oggetto ResultSet.

Java fornisce moltissimi metodi avanzati per elaborare i risultati. Alcuni dei metodi sono elencati di seguito

Elaborare i risultati

Esempio di test del database con Selenium

Passo 1) Installazione MySQL server and MySQL banco di lavoro

Consulta la guida completa a Mysql e Mysql Workbench Qui.

Durante l'installazione MySQL Server, si prega di notare il database

  • Nome utente
  • Password
  • Numero di porta

Sarà richiesto in fasi successive.

MySQL Workbench semplifica l'amministrazione del database senza la necessità di codificare SQL. Tuttavia, puoi anche utilizzare il file MySQL Terminale per interagire con il database.

Passo 2) In MySQL WorkBench, connettiti al tuo MySQL server

Test del database con Selenium

Nella schermata successiva,

  1. Seleziona Istanza locale di MySQL
  2. Inserisci il numero di porta
  3. Inserire username
  4. "Inserisci la password"
  5. fare clic su OK

Test del database con Selenium

Passo 3) Per creare un database,

  1. Fare clic sul pulsante Crea schema
  2. Immettere il nome dello schema/database
  3. Fai clic su Applica

Test del database con Selenium

Passo 4) Nel menu del navigatore,

  1. Fare clic su Tabelle, sotto il database emp
  2. Inserisci il nome della tabella come dipendente
  3. Inserisci i campi come Nome ed Età
  4. Fai clic su Applica

Test del database con Selenium

Vedrai il seguente pop-up. Fai clic su Applica

Test del database con Selenium

Passo 5) Creeremo i seguenti dati

Nome Età
Top 25
Nick 36
Bill 47

Per creare dati nella tabella

  1. Nel navigatore, seleziona la tabella dei dipendenti
  2. Nel riquadro di destra, fare clic su Editor modulo
  3. Inserisci Nome ed Età
  4. Fai clic su Applica

Test del database con Selenium

Ripetere il processo finché non vengono creati tutti i dati

Test del database con Selenium

Passo 6) Scarica la MySQL Connettore JDBC Qui.

Test del database con Selenium

Passo 7) Aggiungi il Jar scaricato al tuo progetto

  1. Fai clic con il pulsante destro del mouse sul tuo file Java File. Quindi fai clic su Percorso di compilazione → Configura percorso di compilazione
  2. Seleziona le biblioteche
  3. Fare clic su aggiungi JAR esterni
  4. Puoi vedere MySQL connettore Java nella tua libreria
  5. Fare clic su Apri per aggiungerlo al progetto

Test del database con Selenium

Passo 8) Copia il seguente codice nell'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();			
		}
}
⚠️ Attenzione: Elenco conservato così come pubblicato. Equivalenti moderni: com.mysql.cj.jdbc.Driver, porta 3306, pacchetto in minuscolo e try-with-resources per la pulizia.

Passo 9) Esegui il codice e controlla l'output

Test del database con Selenium

Gli stessi passaggi si applicano a qualsiasi motore relazionale.

Driver JDBC e stringhe di connessione per i database più diffusi

MySQL è solo un'opzione. Il modello JDBC rimane identico su tutti i motori: le importazioni, la chiamata Statement e il ciclo ResultSet non cambiano. Solo l'artefatto del driver e il URL differiscono, quindi utilizzare la tabella seguente quando l'applicazione in fase di test viene eseguita su un database diverso.

Banca Dati Classe di conducente Esempio di connessione URL Porta predefinita
MySQL com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306/emp 3306
PostgreSQL Driver di org.postgresql jdbc:postgresql://localhost:5432/emp 5432
Oracle oracle.jdbc.OracleGuidatore jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

I numeri di porta sono la causa della maggior parte dei primi errori. Un errore di connessione rifiutata significa quasi sempre che la porta nella URL non corrisponde alla porta su cui il server è effettivamente in ascolto. Verifica la configurazione del server prima di dare per scontato il valore predefinito.

Ogni driver viene distribuito come un singolo file JAR che va aggiunto al percorso di compilazione esattamente come mostrato nel passaggio 7. Ogni motore elencato sopra si registra automaticamente, quindi non è necessaria alcuna riga Class.forName. Ciò significa che un singolo metodo di supporto può servire tutti gli ambienti a cui è destinata la suite.

DOMANDE FREQUENTI

No. Da JDBC 4.0 (Java 6) DriverManager rileva i driver tramite il meccanismo ServiceLoader, quindi è sufficiente aggiungere il JAR di Connector/J al classpath. Mantenere la chiamata solo quando un container legacy non riesce a registrare automaticamente il driver.

Il file JAR Connector/J non è presente nel classpath di runtime, oppure URL è malformato. Conferma che il JAR appare in Librerie di riferimento e controlla che il URL Inizia con jdbc:mysql:// e specifica un host e una porta raggiungibili.

Sì. Assistenti come Copilota GitHub Funzioni di supporto per la connessione di scaffolding, cicli ResultSet e asserzioni derivanti da una descrizione dello schema. RevPrima di confermare, esamina ogni query generata per verificare la correttezza dei nomi delle tabelle e la sicurezza delle iniezioni.

I modelli di IA generano righe di seed realistiche, suggeriscono valori limite e segnalano le asserzioni che si discostano dopo una migrazione dello schema. Piattaforme come Testim Applicare questo principio alla manutenzione, sebbene la revisione umana rimanga necessaria per garantire l'integrità referenziale.

Sempre. Una Connection o un ResultSet non chiusi esauriscono il pool di connessioni del server per un lungo periodo di tempo. Racchiudili in un blocco try-with-resources oppure chiudili in un blocco @AfterMethod in modo che la pulizia venga eseguita anche quando un'asserzione fallisce.

Riassumi questo post con: