Тестирование баз данных с использованием Selenium и JDBC: Как подключиться?

⚡ Умное резюме

Тестирование баз данных с использованием Selenium Он использует JDBC, поскольку WebDriver сам проверяет только уровень браузера. Эти шаги показывают, как открыть MySQL установить соединение, выполнить SQL-запрос, прочитать ResultSet и проверить сохраненные данные.

  • ???? Мост 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 закрывает Connection, Statement и ResultSet, даже если проверка утверждения завершается неудачей на полпути.
  • 🚀 Гигиена запросов: Параметры PreparedStatement устраняют риск внедрения кода и позволяют серверу повторно использовать кэшированный план выполнения.

Тестирование базы данных с использованием Selenium

Подключение к базе данных в Selenium

Selenium Вебдрайвер ограничен Тестирование ваши приложения с помощью браузера. Использовать Selenium Webdriver для проверки базы данных, вам необходимо использовать JDBC («Java Подключение к базе данных»).

JDBC (Java подключение к базе данных) — это SQL API уровня, который позволяет выполнять операторы SQL. Он отвечает за связь между Java Язык программирования и широкий спектр баз данных. API JDBC предоставляет следующие классы и интерфейсы.

  • Менеджер драйверов
  • Водитель
  • Связь
  • заявление
  • Набор результатов
  • SQLException

Как подключить базу данных в Selenium

Чтобы протестировать вашу базу данных с помощью Selenium, вам необходимо соблюдать следующие 3 шага

Подключить базу данных в Selenium

Шаг 1) Установите соединение с базой данных.

Чтобы установить соединение с базой данных, синтаксис следующий:

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

Здесь,

  • Userid — это имя пользователя, настроенное в базе данных.
  • Пароль настроенного пользователя
  • URL имеет формат jdbc:<dbtype>://ipaddress:portnumber/db_name”
  • - Драйвер базы данных, к которой вы пытаетесь подключиться. Для подключения к базе данных Oracle это значение будет «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 для отправки запросов.

Statement stmt = con.createStatement();

После создания объекта оператора используйте методexecuteQuery для выполнения 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) Добавьте загруженный Jar в свой проект.

  1. Щелкните правой кнопкой мыши на вашем Java Файл. Затем нажмите «Путь сборки» → «Настроить путь сборки».
  2. Выберите библиотеки
  3. Нажмите «Добавить внешние JAR-файлы».
  4. Вы можете видеть, MySQL Java-коннектор в вашей библиотеке
  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 Server com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=emp 1433

Номера портов являются причиной большинства сбоев при первом подключении. Ошибка "соединение отклонено" почти всегда означает, что проблема связана с портом в... URL не соответствует порту, на котором фактически работает сервер. Перед тем как использовать значение по умолчанию, проверьте конфигурацию сервера.

Каждый драйвер поставляется в виде отдельного JAR-файла, который вы добавляете в путь сборки точно так, как показано в шаге 7. Каждый из перечисленных выше движков регистрируется автоматически, поэтому строка Class.forName не требуется. Это означает, что один вспомогательный метод может обслуживать любую среду, на которую ориентирован ваш набор тестов.

Часто задаваемые вопросы (FAQ)

Нет. Начиная с JDBC 4.0 (Java 6) DriverManager обнаруживает драйверы через механизм ServiceLoader, поэтому достаточно добавить JAR-файл Connector/J в classpath. Вызов следует использовать только в том случае, если устаревший контейнер не может автоматически зарегистрировать драйвер.

JAR-файл Connector/J отсутствует в пути к классам среды выполнения, или же... URL файл имеет некорректный формат. Убедитесь, что JAR-файл отображается в разделе «Ссылочные библиотеки», и проверьте, что... URL Начинается с jdbc:mysql:// и указывает доступный хост и порт.

Да. Помощники, такие как Второй пилот GitHub Вспомогательные функции для создания соединений, циклы ResultSet и утверждения из описания схемы. RevПеред фиксацией изменений проверьте правильность имен таблиц и безопасность внедрения каждого сгенерированного запроса.

Модели ИИ генерируют реалистичные начальные значения строк, предлагают граничные значения и отмечают утверждения, которые изменяются после миграции схемы. Такие платформы, как... Testim Это применимо и к поддержке, хотя проверка человеком по-прежнему необходима для обеспечения справочной целостности.

Всегда. Незакрытый Connection или ResultSet исчерпывает пул серверных соединений в длинном наборе тестов. Оберните их в try-with-resources или закройте в блоке @AfterMethod, чтобы очистка выполнялась даже при сбое утверждения.

Подведем итог этой публикации следующим образом: