Database testen met behulp van Selenium En JDBC: hoe maak je verbinding?

⚡ Slimme samenvatting

Database testen met behulp van Selenium is afhankelijk van JDBC, omdat WebDriver zelf alleen de browserlaag valideert. Deze stappen laten zien hoe je een browser opent. MySQL Verbinding maken, SQL uitvoeren, een ResultSet lezen en opgeslagen gegevens controleren.

  • ???? JDBC-brug: Selenium WebDriver stuurt alleen de browser aan, dus JDBC levert de databaselaag voor elke gegevenscontrole.
  • 🧩 Bestuurdersklasse: MODERN MySQL Connector/J registreert com.mysql.cj.jdbc.Driver automatisch, dus een expliciete Class.forName-aanroep is optioneel.
  • 🔗 Verbindingsreeks: A MySQL URL Het commando volgt jdbc:mysql://host:3306/database, waarbij 3306 de standaard serverpoort is.
  • 📥 Resultaatverwerking: Statement.executeQuery retourneert een ResultSet, die je doorloopt met next() en uitleest via getString.
  • 🛡️ Hulpbronnenveiligheid: try-with-resources sluit Connection, Statement en ResultSet, zelfs als een bewering halverwege mislukt.
  • 🚀 Vraag over hygiëne: De parameters van PreparedStatement elimineren het risico op injectie en stellen de server in staat een in de cache opgeslagen uitvoeringsplan te hergebruiken.

Databasetesten met behulp van Selenium

Databaseverbinding in Selenium

Selenium Webdriver is beperkt tot Testen uw toepassingen met behulp van de browser. Gebruiken Selenium Webdriver voor databaseverificatie moet u de JDBC (“Java Databaseconnectiviteit”).

JDBC (Java Databaseconnectiviteit) is een SQL API op niveau waarmee u SQL-instructies kunt uitvoeren. Het is verantwoordelijk voor de connectiviteit tussen de Java Programmeertaal en een breed scala aan databases. De JDBC API biedt de volgende klassen en interfaces

  • Driver Manager
  • bestuurder
  • Aansluiting
  • Statement
  • Resultaatset
  • SQLUitzondering

Database aansluiten Selenium

Om uw database te testen met behulp van Selenium, moet u de volgende 3 stappen in acht nemen

Database aansluiten Selenium

Stap 1) Maak verbinding met de database

Om verbinding te maken met de database is de syntaxis:

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

Hier

  • UserID is de gebruikersnaam die in de database is geconfigureerd
  • Wachtwoord van de geconfigureerde gebruiker
  • URL heeft de volgende indeling: jdbc:< dbtype>://ipaddress:portnumber/db_name”
  • - De driver voor de database waarmee u verbinding probeert te maken. Om verbinding te maken met een Oracle-database is deze waarde 'oracle'. Om verbinding te maken met een database met de naam 'emp' in MySQL. URL zal jdbc:mysql://localhost:3036/emp zijn

En de code om verbinding te maken ziet er zo uit

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

U moet ook het JDBC-stuurprogramma laden met behulp van de code

Class.forName("com.mysql.jdbc.Driver");
⚠️ Waarschuwing: com.mysql.jdbc.Driver is afgekeurd in Connector/J 8.0. Gebruik com.mysql.cj.jdbc.Driver. Sinds JDBC 4.0 registreert de driver zichzelf, waardoor Class.forName optioneel is. MySQL Luistert op 3306, niet op 3036.

Stap 2) Stuur zoekopdrachten naar de database

Zodra de verbinding tot stand is gebracht, moet u query's uitvoeren.

U kunt het Statement-object gebruiken om query's te verzenden.

Statement stmt = con.createStatement();

Zodra het instructieobject is gemaakt, gebruikt u de executeQuery-methode om de SQL-query's uit te voeren

stmt.executeQuery(select *  from employee;);
⚠️ Waarschuwing: De SQL-query vereist een String, dus plaats de SQL-query tussen aanhalingstekens: executeQuery(“select * from employee”). Gebruik PreparedStatement voor gebruikersinvoer.

Stap 3) Verwerk de resultaten

Resultaten van de uitgevoerde query worden opgeslagen in het ResultSet-object.

Java biedt tal van geavanceerde methoden om de resultaten te verwerken. Enkele van de methoden worden hieronder vermeld

Verwerk de resultaten

Voorbeeld van databasetesten met Selenium

Stap 1) Install MySQL Server en MySQL Werkbank

Bekijk de complete gids voor Mysql & Mysql Workbench hier

Tijdens het installeren MySQL Server, let op de database

  • Gebruikersnaam
  • Wachtwoord
  • Poortnummer

Dit zal bij verdere stappen nodig zijn.

MySQL Workbench maakt het eenvoudig om de database te beheren zonder dat u SQL hoeft te coderen. Je kunt echter ook de MySQL Terminal voor interactie met de database.

Stap 2) In MySQL WorkBench, maak verbinding met uw MySQL Server

Database testen met Selenium

In het volgende scherm,

  1. Selecteer Lokaal exemplaar van MySQL
  2. Voer poortnummer in
  3. Voer gebruikersnaam in
  4. Voer wachtwoord in
  5. klik op OK

Database testen met Selenium

Stap 3) Om een ​​database te maken,

  1. Klik op Schemaknop maken
  2. Voer de naam van het schema/de database in
  3. Klik op Toepassen

Database testen met Selenium

Stap 4) In het navigatiemenu,

  1. Klik op Tabellen, onder de emp-database
  2. Voer de tafelnaam in als werknemer
  3. Voer velden in als Naam en Leeftijd
  4. Klik op Toepassen

Database testen met Selenium

U ziet de volgende pop-up. Klik op Toepassen

Database testen met Selenium

Stap 5) We zullen de volgende gegevens creëren

Naam Leeftijd
Top 25
Nick 36
Bill 47

Om gegevens in de tabel te creëren

  1. Selecteer in de navigator de medewerkerstabel
  2. Klik in het rechterdeelvenster op Formuliereditor
  3. Voer naam en leeftijd in
  4. Klik op Toepassen

Database testen met Selenium

Herhaal het proces totdat alle gegevens zijn aangemaakt

Database testen met Selenium

Stap 6) Download de MySQL JDBC-connector hier

Database testen met Selenium

Stap 7) Voeg de gedownloade Jar toe aan uw project

  1. Klik met de rechtermuisknop op uw Java Bestand. Klik vervolgens op Build Path → Configure build path
  2. Selecteer de bibliotheken
  3. Klik op externe JAR's toevoegen
  4. U kunt zien MySQL connector Java in uw bibliotheek
  5. Klik op openen om het aan het project toe te voegen

Database testen met Selenium

Stap 8) Kopieer de volgende code in de 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();			
		}
}
⚠️ Waarschuwing: Lijst behouden zoals gepubliceerd. Moderne equivalenten: com.mysql.cj.jdbc.Driver, poort 3306, pakket met kleine letters en try-with-resources voor opschoning.

Stap 9) Voer de code uit en controleer de uitvoer

Database testen met Selenium

Dezelfde stappen gelden voor elke relationele database-engine.

JDBC-stuurprogramma's en verbindingsreeksen voor populaire databases

MySQL is slechts één optie. Het JDBC-patroon blijft identiek voor alle engines: de imports, de Statement-aanroep en de ResultSet-lus veranderen niet. Alleen het driver-artefact en de URL Omdat de databases verschillen, kunt u de onderstaande tabel gebruiken wanneer de te testen applicatie op een andere database draait.

Database Bestuurdersklasse Voorbeeldverbinding URL Standaardpoort
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.Oraclebestuurder jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

Poortnummers zijn meestal de oorzaak van de eerste problemen. Een foutmelding 'verbinding geweigerd' betekent bijna altijd dat de poort in de verbinding niet correct is. URL Dit komt niet overeen met de poort waarop de server daadwerkelijk luistert. Controleer uw serverconfiguratie voordat u de standaardwaarde aanneemt.

Elke driver wordt geleverd als een afzonderlijk JAR-bestand dat u aan het buildpad toevoegt, precies zoals weergegeven in stap 7. Elke hierboven vermelde engine registreert zichzelf automatisch, dus er is geen Class.forName-regel nodig. Dat betekent dat één enkele hulpmethode alle omgevingen kan bedienen waarop uw suite is gericht.

Veelgestelde vragen

Nee. Sinds JDBC 4.0 (Java 6) DriverManager ontdekt stuurprogramma's via het ServiceLoader-mechanisme, dus het toevoegen van de Connector/J JAR aan het classpath is voldoende. Behoud de aanroep alleen wanneer een legacy-container er niet in slaagt het stuurprogramma automatisch te registreren.

De Connector/J JAR ontbreekt in het runtime-classpath, of de URL is onjuist geformuleerd. Controleer of het JAR-bestand verschijnt onder 'Referenced Libraries' en controleer of de URL begint met jdbc:mysql:// en noemt een bereikbare host en poort.

Ja. Assistenten zoals GitHub-copiloot Hulpmiddelen voor het leggen van verbindingen, ResultSet-lussen en beweringen op basis van een schemaomschrijving. RevControleer elke gegenereerde query op correcte tabelnamen en injectiebeveiliging voordat u deze uitvoert.

AI-modellen genereren realistische startrijen, suggereren grenswaarden en signaleren beweringen die afwijken na een schema-migratie. Platforms zoals Testim Dit geldt ook voor het onderhoud, hoewel menselijke controle noodzakelijk blijft voor de betrouwbaarheid van de referenties.

Altijd. Een niet-gesloten Connection of ResultSet put de serververbindingspool uit bij een lange reeks aanroepen. Wikkel ze in try-with-resources of sluit ze in een @AfterMethod-blok, zodat de opschoning wordt uitgevoerd, zelfs als een bewering mislukt.

Vat dit bericht samen met: