Databastestning med hjälp av Selenium och JDBC: Hur ansluter man?

⚡ Smart sammanfattning

Databastestning med hjälp av Selenium förlitar sig på JDBC, eftersom WebDriver självt bara validerar webbläsarlagret. Dessa steg visar hur man öppnar en MySQL anslutning, kör SQL, läs en ResultSet och verifiera lagrad data.

  • 🔌 JDBC-brygga: Selenium WebDriver driver endast webbläsaren, så JDBC tillhandahåller databaslagret för varje datakontroll.
  • 🧩 Förarklass: Modern Konst MySQL Connector/J registrerar com.mysql.cj.jdbc.Driver automatiskt, så ett explicit Class.forName-anrop är valfritt.
  • 🔗 Anslutningssträng: A MySQL URL följer jdbc:mysql://host:3306/database, och 3306 är standardserverporten.
  • 📥 Resultathantering: Statement.executeQuery returnerar en ResultSet, som du itererar med next() och läser igenom getString.
  • 🛡️ Resurssäkerhet: try-with-resources stänger Connection, Statement och ResultSet även när en assertion misslyckas halvvägs.
  • 🚀 Frågehygien: PreparedStatement-parametrar tar bort injiceringsrisken och låter servern återanvända en cachad körningsplan.

Databastestning med hjälp av Selenium

Databasanslutning in Selenium

Selenium Webdriver är begränsad till Testning dina applikationer med hjälp av webbläsaren. Att använda Selenium Webdriver för databasverifiering du behöver för att använda JDBC ("Java Databasanslutning").

JDBC (Java Databas Connectivity) är en SQL nivå API som låter dig köra SQL-satser. Det är ansvarigt för anslutningen mellan Java Programmeringsspråk och ett brett utbud av databaser. JDBC API tillhandahåller följande klasser och gränssnitt

  • Driver Manager
  • Chaufför
  • förbindelse
  • .
  • Resultatet satt
  • SQLException

Hur man ansluter databas till Selenium

För att testa din databas med hjälp av Selenium, måste du följa följande 3 steg

Anslut databas i Selenium

Steg 1) Skapa en anslutning till databasen

För att göra en anslutning till databasen är syntaxen

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

Här,

  • Användar-id är användarnamnet som konfigurerats i databasen
  • Lösenord för den konfigurerade användaren
  • URL är av formatet jdbc:< dbtype>://ipaddress:portnummer/db_namn”
  • - Drivrutinen för databasen du försöker ansluta till. För att ansluta till Oracle-databasen kommer detta värde att vara "oracle". För att ansluta till databasen med namnet "emp" i MYSQL URL kommer att vara jdbc:mysql://localhost:3036/emp

Och koden för att skapa anslutning ser ut

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

Du måste också ladda JDBC-drivrutinen med koden

Class.forName("com.mysql.jdbc.Driver");
⚠️ Varning: com.mysql.jdbc.Driver har tagits bort från Connector/J 8.0. Använd com.mysql.cj.jdbc.Driver. Sedan JDBC 4.0 registrerar sig drivrutinen själv, så Class.forName är valfritt. MySQL lyssnar på 3306, inte 3036.

Steg 2) Skicka frågor till databasen

När anslutningen är gjord måste du utföra frågor.

Du kan använda Statement Object för att skicka frågor.

Statement stmt = con.createStatement();

När satsobjektet har skapats använder du metoden executeQuery för att köra SQL-frågorna

stmt.executeQuery(select *  from employee;);
⚠️ Varning: executeQuery tar en sträng, så citera SQL: executeQuery("select * from employee"). Använd PreparedStatement för användarinmatning.

Steg 3) Bearbeta resultaten

Resultat från den körda frågan lagras i ResultSet-objektet.

Java ger massor av avancerade metoder för att bearbeta resultaten. Några av metoderna listas nedan

Bearbeta resultaten

Exempel på databastestning med Selenium

Steg 1) installera MySQL server och MySQL Arbetsbänk

Kolla in den kompletta guiden till Mysql & Mysql Workbench här.

Under installationen MySQL Server, notera databasen

  • Användarnamn
  • Lösenord
  • Portnummer

Det kommer att krävas i ytterligare steg.

MySQL Workbench gör det enkelt att administrera databasen utan att behöva koda SQL. Men du kan också använda MySQL Terminal för att interagera med databasen.

Steg 2) In MySQL WorkBench, anslut till din MySQL server

Databastestning med Selenium

På nästa skärm,

  1. Välj Lokal instans av MySQL
  2. Ange portnummer
  3. Skriv in ditt användarnamn
  4. Skriv in lösenord
  5. klicka på OK

Databastestning med Selenium

Steg 3) För att skapa en databas,

  1. Klicka på knappen skapa schema
  2. Ange namn på schema/databas
  3. Klicka på Apply

Databastestning med Selenium

Steg 4) I navigatormenyn,

  1. Klicka på Tabeller, under emp-databasen
  2. Ange tabellnamn som anställd
  3. Ange fält som namn och ålder
  4. Klicka på Apply

Databastestning med Selenium

Du kommer att se följande popup-fönster. Klicka på Använd

Databastestning med Selenium

Steg 5) Vi kommer att skapa följande data

Namn Ålder
★★★★ 25
Nick 36
Bill 47

För att skapa data i tabellen

  1. I navigatorn, välj medarbetartabellen
  2. Klicka på Form Editor i den högra rutan
  3. Ange namn och ålder
  4. Klicka på Apply

Databastestning med Selenium

Upprepa processen tills all data har skapats

Databastestning med Selenium

Steg 6) ladda ner MySQL JDBC-kontakt här.

Databastestning med Selenium

Steg 7) Lägg till den nedladdade Jar till ditt projekt

  1. Högerklicka på din Java Fil. Klicka sedan på Byggsökväg à Konfigurera byggsökväg
  2. Välj biblioteken
  3. Klicka på lägg till externa JAR
  4. Du kan se MySQL connector java i ditt bibliotek
  5. Klicka på öppna för att lägga till det i projektet

Databastestning med Selenium

Steg 8) Kopiera följande kod till editorn

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();			
		}
}
⚠️ Varning: Listningen bevarad som publicerad. Moderna motsvarigheter: com.mysql.cj.jdbc.Driver, port 3306, gemener paket och try-with-resources för rensning.

Steg 9) Kör koden och kontrollera utdata

Databastestning med Selenium

Samma steg gäller för alla relationsmotorer.

JDBC-drivrutiner och anslutningssträngar för populära databaser

MySQL är bara ett alternativ. JDBC-mönstret förblir identiskt över motorer: importerna, Statement-anropet och ResultSet-slingan ändras inte. Endast drivrutinsartefakten och URL skiljer sig åt, så använd tabellen nedan när applikationen som testas körs på en annan databas.

Databas Förarklass Exempelanslutning URL Standardport
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.OracleChaufför jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databasnamn=emp 1433

Portnummer orsakar de flesta förstagångsfel. Ett felmeddelande om att anslutningen vägrades betyder nästan alltid att porten i URL matchar inte porten som servern faktiskt lyssnar på. Kontrollera din serverkonfiguration innan du antar standardinställningen.

Varje drivrutin levereras som en enda JAR-fil som du lägger till i byggsökvägen exakt som visas i steg 7. Varje motor som listas ovan registrerar sig automatiskt, så ingen Class.forName-rad krävs. Det betyder att en enda hjälpmetod kan hantera alla miljöer som din svit riktar sig mot.

Vanliga frågor

Nej. Sedan JDBC 4.0 (Java 6), DriverManager upptäcker drivrutiner via ServiceLoader-mekanismen, så det räcker med att lägga till Connector/J JAR:n i klassvägen. Behåll anropet endast när en äldre container misslyckas med att registrera drivrutinen automatiskt.

Connector/J JAR saknas i runtime-klasssökvägen, eller URL är felaktigt formaterad. Bekräfta att JAR-filen visas under Refererade bibliotek och kontrollera att URL börjar med jdbc:mysql:// och namnger en nåbar värd och port.

Ja. Assistenter som till exempel GitHub Copilot scaffold-anslutningshjälpare, ResultSet-loopar och påståenden från en schemabeskrivning. RevVisa varje genererad fråga för korrekta tabellnamn och injektionssäkerhet innan du genomför.

AI-modeller genererar realistiska frörader, föreslår gränsvärden och flaggar påståenden som driver efter en schemamigrering. Plattformar som Testim tillämpa detta på underhåll, även om mänsklig granskning fortfarande är nödvändig för referensintegritet.

Alltid. En icke-stängd anslutning eller ResultSet uttömmer serverns anslutningspool över en lång svit. Slå in dem i try-with-resources, eller stäng dem i ett @AfterMethod-block så att rensningen körs även när en assertion misslyckas.

Sammanfatta detta inlägg med: