Testování databáze pomocí Selenium a JDBC: Jak se připojit?

⚡ Chytré shrnutí

Testování databáze pomocí Selenium spoléhá na JDBC, protože samotný WebDriver ověřuje pouze vrstvu prohlížeče. Tyto kroky ukazují, jak otevřít MySQL připojení, spuštění SQL, čtení sady výsledků (ResultSet) a ověření uložených dat.

  • 🔌 Most JDBC: Selenium WebDriver řídí pouze prohlížeč, takže JDBC poskytuje databázovou vrstvu pro každé tvrzení o datech.
  • 🧩 Třída řidiče: moderní MySQL Connector/J automaticky registruje com.mysql.cj.jdbc.Driver, takže explicitní volání Class.forName je volitelné.
  • 🔗 Řetězec připojení: A MySQL URL následuje jdbc:mysql://host:3306/database a 3306 je výchozí port serveru.
  • 📥 Zpracování výsledků: Statement.executeQuery vrací ResultSet, který iterujete pomocí next() a čtete z něj getString.
  • 🛡️ Bezpečnost zdrojů: Funkce try-with-resources zavře objekty Connection, Statement a ResultSet, i když asserce selže v polovině.
  • ???? Hygiena dotazů: Parametry PreparedStatement odstraňují riziko vkládání dat a umožňují serveru znovu použít plán spuštění uložený v mezipaměti.

Testování databáze pomocí Selenium

Připojení k databázi v Selenium

Selenium Webdriver je omezen na Testování aplikace pomocí prohlížeče. Použít Selenium Webdriver pro ověření databáze musíte použít JDBC („Java Připojení k databázi“).

JDBC (Java Databázová konektivita) je a SQL API úrovně, které umožňuje spouštět příkazy SQL. Je zodpovědný za propojení mezi Java Programovací jazyk a široká škála databází. JDBC API poskytuje následující třídy a rozhraní

  • Správce ovladačů
  • Řidič
  • Přípojka
  • výkaz
  • Sada výsledků
  • SQLException

Jak připojit databázi v Selenium

Chcete-li otestovat svou databázi pomocí Selenium, musíte dodržet následující 3 kroky

Připojte databázi Selenium

Krok 1) Vytvořte připojení k databázi

Pro připojení k databázi je syntaxe

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

Zde,

  • Userid je uživatelské jméno nakonfigurované v databázi
  • Heslo nakonfigurovaného uživatele
  • URL má formát jdbc:<dbtype>://ipaddress:číslo_portu/název_db”
  • - Ovladač pro databázi, ke které se pokoušíte připojit. Pro připojení k databázi Oracle bude tato hodnota „oracle“. Pro připojení k databázi s názvem „emp“ v MYSQL URL bude jdbc:mysql://localhost:3036/emp

A kód pro vytvoření spojení vypadá

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

Musíte také načíst ovladač JDBC pomocí kódu

Class.forName("com.mysql.jdbc.Driver");
⚠️ Varování: Driver com.mysql.jdbc.Driver byl v Connector/J 8.0 zastaralý. Použijte com.mysql.cj.jdbc.Driver. Od JDBC 4.0 se ovladač registruje sám, takže Class.forName je volitelný. MySQL poslouchá na 3306, ne na 3036.

Krok 2) Odešlete dotazy do databáze

Jakmile je připojení vytvořeno, musíte provést dotazy.

Objekt Statement Object můžete použít k odesílání dotazů.

Statement stmt = con.createStatement();

Jakmile je objekt příkazu vytvořen, použijte metodu executeQuery ke spuštění dotazů SQL

stmt.executeQuery(select *  from employee;);
⚠️ Varování: executeQuery přijímá řetězec, proto uveďte SQL kód v uvozovkách: executeQuery(“select * from employee”). Pro vstup uživatele použijte PreparedStatement.

Krok 3) Zpracujte výsledky

Výsledky z provedeného dotazu jsou uloženy v objektu ResultSet.

Java poskytuje spoustu pokročilých metod pro zpracování výsledků. Níže je uvedeno několik metod

Zpracujte Výsledky

Příklad testování databáze s Selenium

Krok 1) instalovat MySQL Server a MySQL Workbench

Podívejte se na kompletní průvodce Mysql & Mysql Workbench zde

Při instalaci MySQL Server, poznamenejte si databázi

  • Uživatelské jméno
  • Heslo
  • Číslo portu

Bude to vyžadováno v dalších krocích.

MySQL Workbench usnadňuje správu databáze bez nutnosti kódování SQL. Můžete však také použít MySQL Terminál pro interakci s databází.

Krok 2) In MySQL WorkBench, připojte se k vašemu MySQL Server

Testování databáze s Selenium

Na další obrazovce

  1. Vyberte místní instanci MySQL
  2. Zadejte číslo portu
  3. Zadejte uživatelské jméno
  4. Zadejte heslo
  5. klepněte na tlačítko OK

Testování databáze s Selenium

Krok 3) Chcete-li vytvořit databázi,

  1. Klikněte na tlačítko vytvořit schéma
  2. Zadejte název schématu/databáze
  3. Klikněte na tlačítko Použít

Testování databáze s Selenium

Krok 4) V nabídce navigátoru

  1. Klikněte na Tabulky pod databází emp
  2. Zadejte název tabulky jako zaměstnanec
  3. Zadejte pole jako jméno a věk
  4. Klikněte na tlačítko Použít

Testování databáze s Selenium

Uvidíte následující vyskakovací okno. Klepněte na tlačítko Použít

Testování databáze s Selenium

Krok 5) Vytvoříme následující data

Jméno věk
Top 25
Nick 36
Bill 47

Chcete-li vytvořit data do tabulky

  1. V navigátoru vyberte tabulku zaměstnanců
  2. V pravém podokně klikněte na Editor formuláře
  3. Zadejte jméno a věk
  4. Klikněte na tlačítko Použít

Testování databáze s Selenium

Proces opakujte, dokud nebudou vytvořena všechna data

Testování databáze s Selenium

Krok 6) stáhněte MySQL JDBC konektor zde

Testování databáze s Selenium

Krok 7) Přidejte stažený Jar do svého projektu

  1. Klikněte pravým tlačítkem na svůj Java Soubor. Poté klikněte na Cesta sestavení à Konfigurovat cestu sestavení
  2. Vyberte knihovny
  3. Klikněte na přidat externí JAR
  4. Můžete vidět MySQL konektor java ve vaší knihovně
  5. Kliknutím na otevřít jej přidáte do projektu

Testování databáze s Selenium

Krok 8) Zkopírujte následující kód do editoru

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();			
		}
}
⚠️ Varování: Výpis zachován tak, jak byl publikován. Moderní ekvivalenty: com.mysql.cj.jdbc.Driver, port 3306, balíček s malými písmeny a try-with-resources pro vyčištění.

Krok 9) Spusťte kód a zkontrolujte výstup

Testování databáze s Selenium

Stejné kroky platí pro jakýkoli relační engine.

Ovladače JDBC a připojovací řetězce pro oblíbené databáze

MySQL je pouze jedna možnost. Vzor JDBC zůstává napříč enginy stejný: importy, volání příkazu Statement a smyčka ResultSet se nemění. Pouze artefakt ovladače a URL liší se, proto použijte tabulku níže, pokud testovaná aplikace běží na jiné databázi.

Databáze Třída řidiče Ukázkové připojení URL Výchozí port
MySQL com.mysql.cj.jdbc.Ovladač jdbc:mysql://localhost:3306/emp 3306
PostgreSQL org.postgresql.Ovladač jdbc:postgresql://localhost:5432/emp 5432
Oracle oracle.jdbc.OracleŘidič jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

Čísla portů způsobují většinu prvních selhání. Chyba odmítnutí připojení téměř vždy znamená, že port v URL neodpovídá portu, na kterém server skutečně naslouchá. Před přijetím výchozí hodnoty zkontrolujte konfiguraci serveru.

Každý ovladač se dodává jako jeden JAR soubor, který přidáte do cesty sestavení přesně tak, jak je znázorněno v kroku 7. Každý výše uvedený engine se zaregistruje automaticky, takže není vyžadován žádný řádek Class.forName. To znamená, že jedna pomocná metoda může obsluhovat každé prostředí, na které je vaše sada cílová.

Nejčastější dotazy

Ne. Od verze JDBC 4.0 (Java 6), DriverManager vyhledává ovladače prostřednictvím mechanismu ServiceLoader, takže stačí přidat Connector/J JAR do třídní cesty. Volání se ponechá pouze v případě, že se staršímu kontejneru nepodaří ovladač automaticky zaregistrovat.

V běhové cestě tříd chybí soubor Connector/J JAR nebo URL je poškozený. Zkontrolujte, zda se soubor JAR zobrazuje v části Referencované knihovny a zda je URL začíná jdbc:mysql:// a pojmenovává dosažitelný hostitel a port.

Ano. Asistenti jako například GitHub Copilot pomocné funkce pro připojení scaffoldu, smyčky ResultSet a aserce z popisu schématu. RevPřed potvrzením si prohlédněte každý vygenerovaný dotaz, zda se jedná o správné názvy tabulek a bezpečnost vkládání.

Modely umělé inteligence generují realistické počáteční řádky, navrhují hraniční hodnoty a označují aserce, které se po migraci schématu mění. Platformy jako například Testim aplikujte to na údržbu, ačkoli lidská kontrola je i nadále nezbytná pro referenční integritu.

Vždy. Neuzavřené připojení nebo sada výsledků (ResultSet) vyčerpá fond připojení serveru napříč dlouhou sadou. Zabalte je do bloku try-with-resources nebo je uzavřete v bloku @AfterMethod, aby čištění proběhlo i v případě, že selže aserce.

Shrňte tento příspěvek takto: