การทดสอบฐานข้อมูลโดยใช้ Selenium และ JDBC: วิธีการเชื่อมต่อ?
⚡ สรุปอย่างชาญฉลาด
การทดสอบฐานข้อมูลโดยใช้ Selenium อาศัย JDBC เนื่องจาก WebDriver ตรวจสอบความถูกต้องเฉพาะในระดับเบราว์เซอร์เท่านั้น ขั้นตอนเหล่านี้แสดงวิธีการเปิด MySQL เชื่อมต่อระบบ รันคำสั่ง SQL อ่านชุดผลลัพธ์ และตรวจสอบข้อมูลที่จัดเก็บไว้

การเชื่อมต่อฐานข้อมูลใน Selenium
Selenium Webdriver ถูกจำกัดไว้ที่ การทดสอบ แอปพลิเคชันของคุณโดยใช้เบราว์เซอร์ ใช้ Selenium Webdriver สำหรับการตรวจสอบฐานข้อมูลคุณต้องใช้ JDBC (“Java การเชื่อมต่อฐานข้อมูล”)
เจดีบีซี (Java การเชื่อมต่อฐานข้อมูล) คือ SQL API ระดับที่ช่วยให้คุณดำเนินการคำสั่ง SQL มีหน้าที่รับผิดชอบในการเชื่อมต่อระหว่าง Java ภาษาการเขียนโปรแกรมและฐานข้อมูลที่หลากหลาย JDBC API มีคลาสและอินเทอร์เฟซดังต่อไปนี้
- ผู้จัดการไดร์เวอร์
- คนขับรถ
- การเชื่อมต่อ
- คำแถลง
- ชุดผลลัพธ์
- SQLException
วิธีการเชื่อมต่อฐานข้อมูลใน Selenium
เพื่อทดสอบฐานข้อมูลของคุณโดยใช้ Seleniumคุณต้องปฏิบัติตาม 3 ขั้นตอนต่อไปนี้
ขั้นตอนที่ 1) ทำการเชื่อมต่อกับฐานข้อมูล
เพื่อทำการเชื่อมต่อกับฐานข้อมูลไวยากรณ์คือ
DriverManager.getConnection(URL, "userid", "password" )
ที่นี่
- Userid คือชื่อผู้ใช้ที่กำหนดค่าไว้ในฐานข้อมูล
- รหัสผ่านของผู้ใช้ที่กำหนดค่าไว้
- URL มีรูปแบบเป็น jdbc:< dbtype>://ipaddress:portnumber/db_name”
- - ไดรเวอร์สำหรับฐานข้อมูลที่คุณพยายามเชื่อมต่อ หากต้องการเชื่อมต่อกับฐานข้อมูล Oracle ค่านี้จะเป็น “oracle” หากต้องการเชื่อมต่อกับฐานข้อมูลชื่อ “emp” ใน MySQL ค่านี้จะเป็น “error” URL จะเป็น jdbc:mysql://localhost:3036/emp
และโค้ดสำหรับสร้างการเชื่อมต่อก็หน้าตาประมาณนี้
Connection con = DriverManager.getConnection(dbUrl,username,password);
คุณต้องโหลดไดรเวอร์ JDBC โดยใช้รหัสด้วย
Class.forName("com.mysql.jdbc.Driver");
ขั้นตอนที่ 2) ส่งแบบสอบถามไปยังฐานข้อมูล
เมื่อทำการเชื่อมต่อแล้ว คุณจะต้องดำเนินการค้นหา
คุณสามารถใช้ Statement Object เพื่อส่งข้อความค้นหาได้
Statement stmt = con.createStatement();
เมื่อสร้างวัตถุคำสั่งแล้วให้ใช้วิธีการดำเนินการแบบสอบถามเพื่อดำเนินการคำสั่ง SQL
stmt.executeQuery(select * from employee;);
ขั้นตอนที่ 3) ประมวลผลผลลัพธ์
ผลลัพธ์จากการสืบค้นที่ดำเนินการจะถูกจัดเก็บไว้ใน ResultSet Object
Java มีวิธีการล่วงหน้ามากมายเพื่อประมวลผลผลลัพธ์ วิธีการบางส่วนมีการระบุไว้ด้านล่าง
ตัวอย่างการทดสอบฐานข้อมูลด้วย Selenium
ขั้นตอน 1) การติดตั้ง MySQL เซิร์ฟเวอร์ และ MySQL ม้านั่งทำงานของช่างเครื่อง
ลองดูคู่มือฉบับสมบูรณ์สำหรับ MySQL และ Mysql Workbench Good Farm Animal Welfare Awards
ขณะทำการติดตั้ง MySQL เซิร์ฟเวอร์โปรดทราบฐานข้อมูล
- ชื่อผู้ใช้
- รหัสผ่าน
- หมายเลขพอร์ต
โดยจะต้องดำเนินการในขั้นตอนต่อไป
MySQL Workbench ทำให้การจัดการฐานข้อมูลเป็นเรื่องง่ายโดยไม่จำเป็นต้องเขียนโค้ด SQL แม้ว่าคุณยังสามารถใช้ MySQL Terminal เพื่อโต้ตอบกับฐานข้อมูล
ขั้นตอน 2) In MySQL WorkBench เชื่อมต่อกับของคุณ MySQL เซิร์ฟเวอร์
ในหน้าจอถัดไป
- เลือกอินสแตนซ์ในเครื่องของ MySQL
- ป้อนหมายเลขพอร์ต
- ป้อนชื่อผู้ใช้
- ใส่รหัสผ่าน
- คลิกตกลง
ขั้นตอน 3) ในการสร้างฐานข้อมูล
- คลิกสร้างปุ่มสคีมา
- ป้อนชื่อของสคีมา/ฐานข้อมูล
- คลิกนำไปใช้
ขั้นตอน 4) ในเมนูเนวิเกเตอร์
- คลิกที่ตาราง ใต้ฐานข้อมูล emp
- ป้อนชื่อตารางเป็นพนักงาน
- ป้อนฟิลด์เป็นชื่อและอายุ
- คลิกนำไปใช้
คุณจะเห็นหน้าต่างป๊อปอัปต่อไปนี้ คลิกนำไปใช้
ขั้นตอน 5) เราจะสร้างข้อมูลต่อไปนี้
| ชื่อ | อายุ |
|---|---|
| Top | 25 |
| Nick | 36 |
| Bill | 47 |
เพื่อสร้างข้อมูลลงในตาราง
- ในเนวิเกเตอร์ ให้เลือกตารางพนักงาน
- ในบานหน้าต่างด้านขวา คลิกตัวแก้ไขฟอร์ม
- กรอกชื่อและอายุ
- คลิกนำไปใช้
ทำซ้ำขั้นตอนนี้จนกว่าจะสร้างข้อมูลทั้งหมด
ขั้นตอน 6) ดาวน์โหลด MySQL ตัวเชื่อมต่อ JDBC Good Farm Animal Welfare Awards
ขั้นตอน 7) เพิ่ม Jar ที่ดาวน์โหลดมาลงในโปรเจ็กต์ของคุณ
- คลิกขวาที่ .ของคุณ Java ไฟล์ จากนั้นคลิกที่ Build Path → Configure build path
- เลือกห้องสมุด
- คลิกที่เพิ่ม JAR ภายนอก
- ท่านสามารถเข้าดู MySQL ตัวเชื่อมต่อ Java ในไลบรารีของคุณ
- คลิกที่เปิดเพื่อเพิ่มลงในโครงการ
ขั้นตอน 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(); } }
ขั้นตอน 9) รันโค้ดและตรวจสอบผลลัพธ์
ขั้นตอนเดียวกันนี้สามารถนำไปใช้กับฐานข้อมูลเชิงสัมพันธ์ใดๆ ก็ได้
ไดรเวอร์ JDBC และสตริงการเชื่อมต่อสำหรับฐานข้อมูลยอดนิยม
MySQL เป็นเพียงตัวเลือกหนึ่งเท่านั้น รูปแบบ JDBC ยังคงเหมือนเดิมในทุกเอนจิ้น: การนำเข้า การเรียกใช้คำสั่ง และลูป 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 Server | com.microsoft.sqlserver.jdbc.SQLServerDriver | jdbc:sqlserver://localhost:1433;databaseName=emp | 1433 |
หมายเลขพอร์ตเป็นสาเหตุหลักของความล้มเหลวในการเชื่อมต่อครั้งแรก ข้อผิดพลาด "การเชื่อมต่อถูกปฏิเสธ" เกือบทุกครั้งหมายความว่าพอร์ตในนั้นมีปัญหา URL พอร์ตที่ระบุไม่ตรงกับพอร์ตที่เซิร์ฟเวอร์ใช้งานจริง โปรดตรวจสอบการตั้งค่าเซิร์ฟเวอร์ของคุณก่อนที่จะใช้ค่าเริ่มต้น
ไดรเวอร์แต่ละตัวจะถูกจัดส่งในรูปแบบไฟล์ JAR เดียว ซึ่งคุณจะต้องเพิ่มลงใน build path ตามที่แสดงในขั้นตอนที่ 7 ทุกเอ็นจิ้นที่ระบุไว้ข้างต้นจะลงทะเบียนตัวเองโดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องมีบรรทัด Class.forName นั่นหมายความว่าเมธอดตัวช่วยเพียงเมธอดเดียวก็สามารถใช้งานได้กับทุกสภาพแวดล้อมที่ชุดทดสอบของคุณกำหนดเป้าหมายไว้












