Veritabanı Testi Kullanımı Selenium ve JDBC: Nasıl Bağlanır?

⚡ Akıllı Özet

Veritabanı testi kullanılarak Selenium JDBC'ye dayanır çünkü WebDriver'ın kendisi yalnızca tarayıcı katmanını doğrular. Bu adımlar, bir dosyayı nasıl açacağınızı gösterir. MySQL Bağlantı kurun, SQL sorgusu çalıştırın, ResultSet'i okuyun ve depolanan verileri doğrulayın.

  • 🔌 JDBC köprüsü: Selenium WebDriver yalnızca tarayıcıyı çalıştırır, bu nedenle JDBC her veri doğrulama işlemi için veritabanı katmanını sağlar.
  • 🧩 Sürücü sınıfı: Modern MySQL Connector/J, com.mysql.cj.jdbc.Driver'ı otomatik olarak kaydeder, bu nedenle Class.forName'in açıkça çağrılması isteğe bağlıdır.
  • 🔗 Bağlantı dizesi: A MySQL URL jdbc:mysql://host:3306/database adresini takip eder ve 3306 varsayılan sunucu portudur.
  • 📥 Sonuç işleme: Statement.executeQuery, bir ResultSet döndürür; bu ResultSet üzerinde next() ile yineleme yapabilir ve getString aracılığıyla okuyabilirsiniz.
  • 🛡️ Kaynak güvenliği: `try-with-resources` yapısı, bir doğrulama işlemi yarıda kesilse bile `Connection`, `Statement` ve `ResultSet`'i kapatır.
  • ???? Sorgu hijyeni: PreparedStatement parametreleri, enjeksiyon riskini ortadan kaldırır ve sunucunun önbelleğe alınmış bir yürütme planını yeniden kullanmasına olanak tanır.

Veritabanı Testi kullanarak Selenium

Veritabanı Bağlantısı Selenium

Selenium Web sürücüsü sınırlıdır Test yapmak Tarayıcınızı kullanarak uygulamalarınız. Kullanmak Selenium Veritabanı Doğrulaması için Web Sürücüsünde JDBC'yi kullanmanız gerekir (“Java Veritabanı Bağlantısı”).

JDBC (Java Veritabanı Bağlantısı) bir SQL SQL ifadelerini yürütmenize olanak tanıyan seviye API'si. arasındaki bağlantıdan sorumludur. Java Programlama dili ve geniş yelpazede veritabanları. JDBC API aşağıdaki sınıfları ve arayüzleri sağlar

  • Sürücü Yöneticisi
  • Sürücü
  • Komunite
  • Açıklama
  • Sonuç kümesi
  • SQLİstisnası

Veritabanına Nasıl Bağlanılır Selenium

Veritabanınızı kullanarak test etmek için Selenium, aşağıdaki 3 adımı izlemeniz gerekir

Veritabanını Bağla Selenium

Adım 1) Veritabanına bağlantı kurun

Veritabanına bağlantı kurmak için sözdizimi şöyledir:

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

Burada,

  • Kullanıcı kimliği veritabanında yapılandırılan kullanıcı adıdır
  • Yapılandırılmış kullanıcının şifresi
  • URL "jdbc:<dbtype>://ipaddress:portnumber/db_name" biçimindedir.
  • - Bağlanmaya çalıştığınız veritabanının sürücüsü. Oracle veritabanına bağlanmak için bu değer "oracle" olacaktır. MySQL'de "emp" adlı veritabanına bağlanmak için de aynı değer geçerlidir. URL jdbc:mysql://localhost:3036/emp olacak

Ve bağlantı oluşturma kodu şuna benzer:

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

Ayrıca kodu kullanarak JDBC Sürücüsünü de yüklemeniz gerekir.

Class.forName("com.mysql.jdbc.Driver");
⚠️ Uyarı: `com.mysql.jdbc.Driver`, Connector/J 8.0'da kullanımdan kaldırılmıştır. Bunun yerine `com.mysql.cj.jdbc.Driver` kullanın. JDBC 4.0'dan beri sürücü kendini kaydeder, bu nedenle `Class.forName` isteğe bağlıdır. MySQL 3036 değil, 3306'dan dinliyor.

Adım 2) Sorguları Veritabanına Gönderin

Bağlantı kurulduktan sonra sorguları yürütmeniz gerekir.

Sorgu göndermek için İfade Nesnesini kullanabilirsiniz.

Statement stmt = con.createStatement();

İfade nesnesi oluşturulduktan sonra SQL sorgularını yürütmek için executiveQuery yöntemini kullanın.

stmt.executeQuery(select *  from employee;);
⚠️ Uyarı: `executeQuery` sorgusu bir String değeri alır, bu nedenle SQL sorgusunu tırnak içine alın: `executeQuery(“select * from employee”)`. Kullanıcı girdisi için `PreparedStatement` kullanın.

Adım 3) Sonuçları işleyin

Yürütülen sorgunun sonuçları ResultSet Nesnesinde saklanır.

Java sonuçları işlemek için birçok gelişmiş yöntem sağlar. Yöntemlerden birkaçı aşağıda listelenmiştir

Sonuçları İşleyin

Veritabanı Testi Örneği Selenium

) 1 Adım kurmak MySQL sunucu hem de MySQL Tezgâh

Mysql ve Mysql Workbench kılavuzunun tamamına göz atın okuyun

Kurulum sırasında MySQL Sunucu, lütfen veritabanına dikkat edin

  • Kullanıcı Adı
  • Şifre
  • Port Numarası

Daha sonraki adımlarda gerekli olacaktır.

MySQL Workbench, SQL kodlamaya gerek kalmadan veritabanını yönetmeyi kolaylaştırır. Yine de şunları da kullanabilirsiniz: MySQL Veritabanıyla etkileşime girecek terminal.

) 2 Adım In MySQL WorkBench'e bağlanın MySQL sunucu

Veritabanı Testi Selenium

Bir sonraki ekranda,

  1. Yerel Örneğini Seçin MySQL
  2. Bağlantı Noktası Numarasını Girin
  3. Kullanıcı Adı Girin
  4. Şifre girin
  5. Tamam'ı tıklayın.

Veritabanı Testi Selenium

) 3 Adım Veritabanı Oluşturmak İçin,

  1. Şema Oluştur Düğmesi'ni tıklayın
  2. Şema/Veritabanı Adını Girin
  3. Uygula'ya tıklayın

Veritabanı Testi Selenium

) 4 Adım Gezgin menüsünde,

  1. Emp veritabanının altındaki Tablolar'a tıklayın
  2. Çalışan olarak Tablo adını girin
  3. Alanları Ad ve Yaş Olarak Girin
  4. Uygula'ya tıklayın

Veritabanı Testi Selenium

Aşağıdaki açılır pencereyi göreceksiniz. Uygula'ya tıklayın

Veritabanı Testi Selenium

) 5 Adım Aşağıdaki verileri oluşturacağız

İsim Yaş
Iyi 25
Nick 36
Bill 47

Tabloya veri oluşturmak için

  1. Gezginde çalışan tablosunu seçin
  2. Sağ bölmede Form Düzenleyici'ye tıklayın
  3. Adı ve Yaşı Girin
  4. Uygula'ya tıklayın

Veritabanı Testi Selenium

Tüm veriler oluşturulana kadar işlemi tekrarlayın

Veritabanı Testi Selenium

) 6 Adım Atomic Cüzdanı indirin : MySQL JDBC konektörü okuyun

Veritabanı Testi Selenium

) 7 Adım İndirilen Jar'ı Projenize ekleyin

  1. Sağ tıklayın Java Dosya. Ardından Derleme Yolu à Derleme yolunu yapılandır seçeneğine tıklayın.
  2. Kitaplıkları seçin
  3. Harici JAR'lar ekle'ye tıklayın
  4. Görebilirsiniz MySQL kitaplığınızdaki bağlayıcı java
  5. Projeye eklemek için aç'a tıklayın

Veritabanı Testi Selenium

) 8 Adım Aşağıdaki kodu editöre kopyalayın

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();			
		}
}
⚠️ Uyarı: Yayınlandığı haliyle liste korunmuştur. Modern karşılıkları: com.mysql.cj.jdbc.Driver, port 3306, küçük harfli paket ve temizleme için try-with-resources.

) 9 Adım Kodu yürütün ve çıktıyı kontrol edin

Veritabanı Testi Selenium

Aynı adımlar herhangi bir ilişkisel veritabanı motoru için de geçerlidir.

Popüler Veritabanları için JDBC Sürücüleri ve Bağlantı Dizeleri

MySQL Bu sadece bir seçenek. JDBC modeli tüm motorlarda aynı kalır: içe aktarmalar, Statement çağrısı ve ResultSet döngüsü değişmez. Sadece sürücü bileşeni ve URL Farklılıklar söz konusu olduğundan, test edilen uygulama başka bir veritabanında çalışıyorsa aşağıdaki tabloyu kullanın.

veritabanı Sürücü sınıfı Örnek bağlantı URL Varsayılan bağlantı noktası
MySQL com.mysql.cj.jdbc.Sürücü jdbc:mysql://localhost:3306/emp 3306
PostgreSQL org.postgresql.Sürücü jdbc:postgresql://localhost:5432/emp 5432
Oracle oracle.jdbc.OracleSürücü jdbc:oracle:thin:@localhost:1521:orcl 1521
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

Bağlantı noktası numaraları, ilk denemelerde yaşanan hataların çoğuna neden olur. Bağlantı reddedildi hatası neredeyse her zaman bağlantı noktasının yanlış olduğunu gösterir. URL Bu, sunucunun gerçekte dinlediği portla eşleşmiyor. Varsayılanı kabul etmeden önce sunucu yapılandırmanızı kontrol edin.

Her sürücü, 7. adımda gösterildiği gibi derleme yoluna eklediğiniz tek bir JAR dosyası olarak gönderilir. Yukarıda listelenen her motor kendini otomatik olarak kaydeder, bu nedenle Class.forName satırına gerek yoktur. Bu, tek bir yardımcı yöntemin paketinizin hedeflediği her ortama hizmet edebileceği anlamına gelir.

SSS

Hayır. JDBC 4.0'dan beri (Java 6) DriverManager, ServiceLoader mekanizması aracılığıyla sürücüleri keşfeder, bu nedenle Connector/J JAR dosyasını classpath'e eklemek yeterlidir. Bu çağrıyı yalnızca eski bir konteyner sürücüyü otomatik olarak kaydetmeyi başaramadığında yapın.

Connector/J JAR dosyası çalışma zamanı sınıf yolunda eksik veya URL Dosya hatalı biçimlendirilmiş. JAR dosyasının Referans Verilen Kütüphaneler altında göründüğünü doğrulayın ve kontrol edin. URL jdbc:mysql:// ile başlar ve erişilebilir bir sunucu ve bağlantı noktası belirtir.

Evet. Asistanlar gibi... GitHub Yardımcı Pilotu Şema açıklamasından bağlantı yardımcıları, ResultSet döngüleri ve onaylamalar oluşturun. RevHer oluşturulan sorguyu, işlemden önce doğru tablo adları ve enjeksiyon güvenliği açısından inceleyin.

Yapay zeka modelleri gerçekçi başlangıç ​​satırları oluşturur, sınır değerleri önerir ve şema geçişinden sonra sapma gösteren iddiaları işaretler. Örneğin, şu platformlar: Testim Bu durum bakım işlemlerine de uygulanabilir, ancak referans bütünlüğü için insan incelemesi yine de gereklidir.

Her zaman. Kapatılmamış bir Connection veya ResultSet, uzun bir test paketi boyunca sunucu bağlantı havuzunu tüketir. Bunları try-with-resources bloğuna alın veya @AfterMethod bloğunda kapatın, böylece bir doğrulama başarısız olsa bile temizleme işlemi çalışır.

Bu yazıyı şu şekilde özetleyin: