اختبار قواعد البيانات باستخدام Selenium وJDBC: كيف يتم الاتصال؟

⚡ ملخص ذكي

اختبار قواعد البيانات باستخدام Selenium يعتمد على JDBC، لأن WebDriver نفسه يتحقق من صحة طبقة المتصفح فقط. توضح هذه الخطوات كيفية فتح MySQL الاتصال، وتشغيل SQL، وقراءة مجموعة النتائج، والتحقق من البيانات المخزنة.

  • ؟؟؟؟ جسر JDBC: Selenium يقوم WebDriver بتشغيل المتصفح فقط، لذا يوفر JDBC طبقة قاعدة البيانات لكل تأكيد بيانات.
  • 🧩 فئة السائق: بلمسة عصرية MySQL يقوم Connector/J بتسجيل com.mysql.cj.jdbc.Driver تلقائيًا، لذا فإن استدعاء Class.forName الصريح اختياري.
  • 🔗 سلسلة الاتصال: A MySQL URL يتبع jdbc:mysql://host:3306/database، و3306 هو منفذ الخادم الافتراضي.
  • 📥 معالجة النتائج: تُرجع الدالة Statement.executeQuery مجموعة نتائج (ResultSet)، والتي تقوم بالتكرار عليها باستخدام الدالة next() وقراءة البيانات من خلال الدالة getString.
  • 🛡️ سلامة الموارد: تقوم عبارة try-with-resources بإغلاق الاتصال، والبيان، ومجموعة النتائج حتى عندما يفشل التأكيد في منتصف العملية.
  • 🚀 استفسار عن النظافة: تعمل معلمات PreparedStatement على إزالة مخاطر الحقن وتسمح للخادم بإعادة استخدام خطة التنفيذ المخزنة مؤقتًا.

اختبار قاعدة البيانات باستخدام Selenium

اتصال قاعدة البيانات في Selenium

Selenium يقتصر برنامج تشغيل الويب على الاختبار تطبيقاتك باستخدام المتصفح. ليستخدم Selenium برنامج تشغيل الويب للتحقق من قاعدة البيانات، تحتاج إلى استخدام JDBC ("Java اتصال قاعدة البيانات").

جدبك (Java اتصال قاعدة البيانات) أ SQL مستوى API الذي يسمح لك بتنفيذ عبارات SQL. وهو المسؤول عن الاتصال بين Java لغة برمجة ومجموعة واسعة من قواعد البيانات. توفر واجهة برمجة تطبيقات JDBC الفئات والواجهات التالية

  • مدير سائق
  • سائق
  • الاتصال
  • ملخص الحساب
  • مجموعة النتائج
  • SQLException

كيفية ربط قاعدة البيانات في Selenium

من أجل اختبار قاعدة البيانات الخاصة بك باستخدام Selenium، عليك اتباع الخطوات الثلاث التالية

ربط قاعدة البيانات في Selenium

الخطوة 1) قم بإجراء اتصال بقاعدة البيانات

من أجل إجراء اتصال بقاعدة البيانات، يكون بناء الجملة

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

هنا،

  • معرف المستخدم هو اسم المستخدم الذي تم تكوينه في قاعدة البيانات
  • كلمة المرور للمستخدم الذي تم تكوينه
  • URL يكون بتنسيق jdbc:< dbtype>://ipaddress:portnumber/db_name”
  • - برنامج تشغيل قاعدة البيانات التي تحاول الاتصال بها. للاتصال بقاعدة بيانات أوراكل، ستكون هذه القيمة "oracle". للاتصال بقاعدة بيانات باسم "emp" في MySQL URL سيكون jdbc:mysql://localhost:3036/emp

ويبدو رمز إنشاء الاتصال

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

تحتاج أيضًا إلى تحميل برنامج تشغيل JDBC باستخدام الكود

Class.forName("com.mysql.jdbc.Driver");
⚠️ : تحذير تم إيقاف استخدام com.mysql.jdbc.Driver في Connector/J 8.0. استخدم com.mysql.cj.jdbc.Driver. منذ JDBC 4.0، يقوم برنامج التشغيل بالتسجيل الذاتي، لذا فإن Class.forName اختياري. MySQL يستمع على 3306، وليس 3036.

الخطوة 2) إرسال الاستعلامات إلى قاعدة البيانات

بمجرد إجراء الاتصال، تحتاج إلى تنفيذ الاستعلامات.

يمكنك استخدام كائن البيان لإرسال الاستعلامات.

Statement stmt = con.createStatement();

بمجرد إنشاء كائن البيان، استخدم طريقة ExecuterQuery لتنفيذ استعلامات SQL

stmt.executeQuery(select *  from employee;);
⚠️ : تحذير تأخذ الدالة executeQuery سلسلة نصية، لذا ضع علامة اقتباس حول استعلام SQL: executeQuery(“select * from employee”). استخدم PreparedStatement لإدخال المستخدم.

الخطوة 3) معالجة النتائج

يتم تخزين نتائج الاستعلام المنفذ في كائن ResultSet.

Java يوفر الكثير من الطرق المتقدمة لمعالجة النتائج. يتم سرد عدد قليل من الأساليب أدناه

معالجة النتائج

مثال على اختبار قاعدة البيانات مع Selenium

الخطوة 1) تثبيت MySQL المخدم و MySQL طاولة العمل

تعرف على الدليل الكامل لـ Mysql وMysql Workbench اضغط هنا

أثناء التثبيت MySQL الخادم، يرجى ملاحظة قاعدة البيانات

  • اسم المستخدم
  • كلمة المرور
  • منفذ رقم

وسوف تكون هناك حاجة في خطوات أخرى.

MySQL يسهل Workbench إدارة قاعدة البيانات دون الحاجة إلى ترميز SQL. على الرغم من ذلك، يمكنك أيضًا استخدام MySQL محطة للتفاعل مع قاعدة البيانات.

الخطوة 2) In MySQL WorkBench، قم بالاتصال بجهازك MySQL المخدم

اختبار قاعدة البيانات مع Selenium

في الشاشة التالية ،

  1. حدد المثيل المحلي لـ MySQL
  2. أدخل رقم المنفذ
  3. أدخل اسم المستخدم
  4. أدخل كلمة المرور
  5. انقر OK

اختبار قاعدة البيانات مع Selenium

الخطوة 3) لإنشاء قاعدة بيانات،

  1. انقر فوق زر إنشاء المخطط
  2. أدخل اسم المخطط/قاعدة البيانات
  3. انقر فوق تطبيق

اختبار قاعدة البيانات مع Selenium

الخطوة 4) في قائمة المتصفح،

  1. انقر على الجداول، أسفل قاعدة بيانات emp
  2. أدخل اسم الجدول كموظف
  3. أدخل الحقول كالاسم والعمر
  4. انقر فوق تطبيق

اختبار قاعدة البيانات مع Selenium

ستظهر لك النافذة المنبثقة التالية. انقر فوق "تطبيق"

اختبار قاعدة البيانات مع Selenium

الخطوة 5) سوف نقوم بإنشاء البيانات التالية

الاسم العمر
★★★★ 25
Nick 36
Bill 47

لإنشاء البيانات في الجدول

  1. في المتصفح، حدد جدول الموظفين
  2. في الجزء الأيسر، انقر فوق محرر النماذج
  3. أدخل الاسم والعمر
  4. انقر فوق تطبيق

اختبار قاعدة البيانات مع Selenium

كرر العملية حتى يتم إنشاء كافة البيانات

اختبار قاعدة البيانات مع Selenium

الخطوة 6) تحميل MySQL موصل JDBC اضغط هنا

اختبار قاعدة البيانات مع Selenium

الخطوة 7) أضف الجرة التي تم تنزيلها إلى مشروعك

  1. انقر بزر الماوس الأيمن على ملف Java ملف. ثم انقر على مسار الإنشاء ← تكوين مسار الإنشاء
  2. حدد المكتبات
  3. انقر فوق إضافة JARs خارجية
  4. يمكنك ان ترى MySQL موصل جافا في مكتبتك
  5. انقر على فتح لإضافته إلى المشروع

اختبار قاعدة البيانات مع Selenium

الخطوة 8) انسخ الكود التالي إلى المحرر

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();			
		}
}
⚠️ : تحذير تم الاحتفاظ بالقائمة كما نُشرت. البدائل الحديثة: com.mysql.cj.jdbc.Driver، المنفذ 3306، حزمة الأحرف الصغيرة، و try-with-resources للتنظيف.

الخطوة 9) قم بتنفيذ الكود، وتحقق من الإخراج

اختبار قاعدة البيانات مع Selenium

تنطبق نفس الخطوات على أي محرك علائقي.

برامج تشغيل JDBC وسلاسل الاتصال لقواعد البيانات الشائعة

MySQL هذا مجرد خيار واحد. يبقى نمط JDBC متطابقًا عبر جميع المحركات: عمليات الاستيراد، واستدعاء Statement، وحلقة ResultSet لا تتغير. فقط عنصر برنامج التشغيل و URL تختلف، لذا استخدم الجدول أدناه عندما يتم تشغيل التطبيق قيد الاختبار على قاعدة بيانات أخرى.

قاعدة البيانات فئة السائق نموذج اتصال URL المنفذ الافتراضي
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.Oracleسائق jdbc:oracle:thin:@localhost:1521:orcl 1521
ملقم SQL com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

تُعدّ أرقام المنافذ السبب الرئيسي لمعظم حالات الفشل في المحاولة الأولى. ويعني خطأ رفض الاتصال في أغلب الأحيان أن المنفذ في... URL لا يتطابق هذا مع المنفذ الذي يستمع إليه الخادم فعليًا. تحقق من إعدادات خادمك قبل افتراض الإعدادات الافتراضية.

يُشحن كل برنامج تشغيل كملف JAR واحد، يُضاف إلى مسار البناء تمامًا كما هو موضح في الخطوة 7. يُسجل كل محرك مذكور أعلاه نفسه تلقائيًا، لذا لا حاجة لسطر Class.forName. هذا يعني أن دالة مساعدة واحدة تكفي لجميع البيئات التي تستهدفها مجموعتك.

الأسئلة الشائعة

لا. منذ JDBC 4.0 (Java ٦) يكتشف DriverManager برامج التشغيل من خلال آلية ServiceLoader، لذا يكفي إضافة ملف Connector/J JAR إلى مسار الفئات. احتفظ بالاستدعاء فقط عندما يفشل حاوية قديمة في تسجيل برنامج التشغيل تلقائيًا.

ملف Connector/J JAR مفقود من مسار فئة وقت التشغيل، أو URL ملف JAR تالف. تأكد من ظهور ملف JAR ضمن المكتبات المرجعية، وتحقق من أن URL يبدأ بـ jdbc:mysql:// ويشير إلى مضيف ومنفذ يمكن الوصول إليهما.

نعم. مساعدون مثل مساعد الطيار جيثب أدوات مساعدة الاتصال في الهيكل، وحلقات ResultSet، والتأكيدات من وصف المخطط. Revراجع كل استعلام تم إنشاؤه للتأكد من صحة أسماء الجداول وسلامة عمليات الحقن قبل الالتزام.

تُنتج نماذج الذكاء الاصطناعي صفوفًا أولية واقعية، وتقترح قيمًا حدودية، وتُشير إلى التأكيدات التي تنحرف بعد تغيير المخطط. منصات مثل Testim يمكن تطبيق هذا على الصيانة، على الرغم من أن المراجعة البشرية تظل ضرورية لضمان سلامة البيانات المرجعية.

دائمًا. يؤدي عدم إغلاق الاتصال أو مجموعة النتائج إلى استنفاد مجموعة اتصالات الخادم خلال مجموعة طويلة من العمليات. لذا، قم بتضمينها في عبارة try-with-resources، أو أغلقها في كتلة @AfterMethod بحيث يتم تنفيذ عملية التنظيف حتى عند فشل التأكيد.

تلخيص هذه التدوينة بـ: