Databasetestning ved hjælp af Selenium og JDBC: Hvordan opretter man forbindelse?

⚡ Smart opsummering

Databasetestning ved hjælp af Selenium er afhængig af JDBC, fordi WebDriver selv kun validerer browserlaget. Disse trin viser, hvordan man åbner en MySQL forbindelse, køre SQL, læse et ResultSet og verificere gemte data.

  • 🔌 JDBC-bro: Selenium WebDriver styrer kun browseren, så JDBC leverer databaselaget til hver dataassertion.
  • 🧩 Førerklasse: Moderne MySQL Connector/J registrerer com.mysql.cj.jdbc.Driver automatisk, så et eksplicit Class.forName-kald er valgfrit.
  • 🔗 Forbindelsesstreng: A MySQL URL følger jdbc:mysql://host:3306/database, og 3306 er standardserverporten.
  • 📥 Resultathåndtering: Statement.executeQuery returnerer et ResultSet, som du itererer med next() og læser igennem getString.
  • 🛡️ Ressourcesikkerhed: try-with-resources lukker Connection, Statement og ResultSet, selv når en assertion fejler undervejs.
  • 🚀 Forespørgselshygiejne: PreparedStatement-parametre fjerner risikoen for injektion og lader serveren genbruge en cachelagret udførelsesplan.

Databasetest vha Selenium

Databaseforbindelse i Selenium

Selenium Webdriver er begrænset til Test dine applikationer ved hjælp af browser. At bruge Selenium Webdriver til databasebekræftelse skal du bruge JDBC ("Java Databaseforbindelse").

JDBC (Java Database Connectivity) er en SQL niveau API, der giver dig mulighed for at udføre SQL-sætninger. Det er ansvarligt for forbindelsen mellem Java Programmeringssprog og en bred vifte af databaser. JDBC API'en giver følgende klasser og grænseflader

  • Driver Manager
  • Chauffør
  • Forbindelse
  • Statement
  • Resultat Indstil
  • SQLException

Sådan forbinder du databasen Selenium

For at teste din database vha Selenium, skal du overholde de følgende 3 trin

Tilslut databasen Selenium

Trin 1) Opret forbindelse til databasen

For at oprette forbindelse til databasen er syntaksen

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

Her,

  • Bruger-id er det brugernavn, der er konfigureret i databasen
  • Adgangskode for den konfigurerede bruger
  • URL er af formatet jdbc:< dbtype>://ipaddress:portnummer/db_navn”
  • - Driveren til den database, du forsøger at oprette forbindelse til. For at oprette forbindelse til Oracle-databasen vil denne værdi være "oracle". For at oprette forbindelse til databasen med navnet "emp" i MYSQL URL vil være jdbc:mysql://localhost:3036/emp

Og koden til at skabe forbindelse ser ud

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

Du skal også indlæse JDBC-driveren ved hjælp af koden

Class.forName("com.mysql.jdbc.Driver");
⚠️ Advarsel: com.mysql.jdbc.Driver blev udfaset i Connector/J 8.0. Brug com.mysql.cj.jdbc.Driver. Siden JDBC 4.0 registrerer driveren sig selv, så Class.forName er valgfri. MySQL lytter på 3306, ikke 3036.

Trin 2) Send forespørgsler til databasen

Når forbindelsen er oprettet, skal du udføre forespørgsler.

Du kan bruge Statement Object til at sende forespørgsler.

Statement stmt = con.createStatement();

Når sætningsobjektet er oprettet, skal du bruge executeQuery-metoden til at udføre SQL-forespørgslerne

stmt.executeQuery(select *  from employee;);
⚠️ Advarsel: executeQuery tager en streng, så citer SQL'en: executeQuery(“select * from employee”). Brug PreparedStatement til brugerinput.

Trin 3) Bearbejd resultaterne

Resultater fra den udførte forespørgsel gemmes i ResultSet Object.

Java giver masser af avancerede metoder til at behandle resultaterne. Få af metoderne er anført nedenfor

Bearbejd resultaterne

Eksempel på databasetest med Selenium

Trin 1) Installer MySQL Server og MySQL Workbench

Tjek den komplette guide til Mysql & Mysql Workbench link.

Under installationen MySQL Server, bemærk venligst databasen

  • Brugernavn
  • Adgangskode
  • Portnummer

Det vil være påkrævet i yderligere trin.

MySQL Workbench gør det nemt at administrere databasen uden behov for at kode SQL. Du kan dog også bruge MySQL Terminal til at interagere med databasen.

Trin 2) In MySQL WorkBench, opret forbindelse til din MySQL Server

Databasetest med Selenium

På næste skærmbillede

  1. Vælg Lokal forekomst af MySQL
  2. Indtast portnummer
  3. Indtast brugernavn
  4. Indtast adgangskode
  5. klik på OK

Databasetest med Selenium

Trin 3) For at oprette en database,

  1. Klik på knappen Opret skema
  2. Indtast navn på skema/database
  3. Klik på Anvend

Databasetest med Selenium

Trin 4) I navigatormenuen,

  1. Klik på Tabeller under emp-databasen
  2. Indtast tabelnavn som medarbejder
  3. Indtast felter som navn og alder
  4. Klik på Anvend

Databasetest med Selenium

Du vil se følgende pop-up. Klik på Anvend

Databasetest med Selenium

Trin 5) Vi vil oprette følgende data

Navn Alder
Top 25
Nick 36
Bill 47

For at oprette data i tabellen

  1. I navigator skal du vælge medarbejdertabellen
  2. Klik på Form Editor i højre rude
  3. Indtast navn og alder
  4. Klik på Anvend

Databasetest med Selenium

Gentag processen, indtil alle data er oprettet

Databasetest med Selenium

Trin 6) Download MySQL JDBC stik link.

Databasetest med Selenium

Trin 7) Tilføj den downloadede Jar til dit projekt

  1. Højreklik på din Java Fil. Klik derefter på Byggesti à Konfigurer byggesti
  2. Vælg bibliotekerne
  3. Klik på tilføj eksterne JAR'er
  4. Du kan se MySQL connector java i dit bibliotek
  5. Klik på åben for at tilføje den til projektet

Databasetest med Selenium

Trin 8) Kopier følgende kode ind i editoren

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();			
		}
}
⚠️ Advarsel: Listen er bevaret som udgivet. Moderne ækvivalenter: com.mysql.cj.jdbc.Driver, port 3306, pakke med små bogstaver og try-with-resources til oprydning.

Trin 9) Udfør koden, og kontroller outputtet

Databasetest med Selenium

De samme trin gælder for enhver relationel motor.

JDBC-drivere og forbindelsesstrenge til populære databaser

MySQL er kun én mulighed. JDBC-mønsteret forbliver identisk på tværs af motorer: importerne, Statement-kaldet og ResultSet-løkken ændres ikke. Kun driverartefakten og URL afvige, så brug tabellen nedenfor, når den applikation, der testes, kører på en anden database.

Database Førerklasse Eksempelforbindelse 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;databaseName=emp 1433

Portnumre forårsager de fleste førstegangsfejl. En fejl om afvist forbindelse betyder næsten altid porten i URL stemmer ikke overens med den port, som serveren rent faktisk lytter på. Tjek din serverkonfiguration, før du antager standardindstillingen.

Hver driver leveres som en enkelt JAR-fil, som du tilføjer til byggestien præcis som vist i trin 7. Hver motor, der er angivet ovenfor, registrerer sig selv automatisk, så der kræves ingen Class.forName-linje. Det betyder, at en enkelt hjælpemetode kan betjene ethvert miljø, som din suite er målrettet mod.

Ofte Stillede Spørgsmål

Nej. Siden JDBC 4.0 (Java 6), DriverManager finder drivere via ServiceLoader-mekanismen, så det er nok at tilføje Connector/J JAR'en til klassestien. Behold kun kaldet, når en ældre container ikke registrerer driveren automatisk.

Connector/J JAR mangler i runtime-klassestien, eller URL er forkert formateret. Bekræft, at JAR-filen vises under Refererede biblioteker, og kontroller, at URL starter med jdbc:mysql:// og navngiver en tilgængelig vært og port.

Ja. Assistenter som f.eks. GitHub Copilot scaffold-forbindelseshjælpere, ResultSet-løkker og assertions fra en skemabeskrivelse. RevSe alle genererede forespørgsler for korrekte tabelnavne og injektionssikkerhed før commit.

AI-modeller genererer realistiske seed-rækker, foreslår grænseværdier og markerer påstande, der driver efter en skemamigrering. Platforme som f.eks. Testim Anvend dette til vedligeholdelse, selvom menneskelig gennemgang stadig er nødvendig for referentiel integritet.

Altid. En ikke-lukket forbindelse eller et resultatsæt udtømmer serverens forbindelsespulje på tværs af en lang suite. Pak dem ind i try-with-resources, eller luk dem i en @AfterMethod-blok, så oprydningen kører, selv når en assertion mislykkes.

Opsummer dette indlæg med: