Selenium Webdriver ограничен тестированием ваших приложений в браузере. Чтобы использовать Selenium для проверки баз данных, необходимо воспользоваться JDBC (Java Database Connectivity).
JDBC — это API, позволяющий выполнять запросы к базам данных на языке SQL. Он отвечает за взаимодействие между языком программирования Java и широким спектром баз данных. JDBC API предоставляет следующие классы и интерфейсы:
- Менеджер по работе с драйверами (Driver Manager)
- Драйвер (Driver)
- Соединение (Connection)
- Запрос (Statement)
- Результат запроса (ResultSet)
- Исключение SQL (SQLException)
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание
- Как подключить базу данных в Selenium
- Пример тестирования базы данных с помощью Selenium
- Краткий итог по тестированию баз данных с помощью Selenium
Как подключить базу данных в Selenium
Чтобы протестировать базу данных с помощью Selenium, необходимо выполнить следующие 3 шага:
- Установить соединение с базой данных
- Послать запросы к базе данных
- Обработать результаты
Шаг 1. Установка соединения с базой данных
Для установки соединения с базой данных используется следующий синтаксис:
DriverManager.getConnection(URL, "userid", "password" )
Здесь:
- Userid — имя пользователя, настроенное в базе данных
- Password — пароль этого пользователя
- URL имеет формат jdbc: <dbtype>://ipaddress:portnumber/db_name»
- <dbtype> — драйвер для базы данных, к которой нужно подключиться. Для установки соединения с базой данных oracle это значение будет «oracle». При подключении к базе данных с именем «emp» в MySQL, URL будет иметь вид jdbc: mysql://localhost:3036/emp
Код для создания соединения выглядит следующим образом:
Connection con = DriverManager.getConnection(dbUrl,username,password);
Также необходимо загрузить драйвер JDBC с помощью следующего кода:
Class.forName("com.mysql.jdbc.Driver");
Шаг 2. Отправка запросов в базу данных
После того как соединение установлено, необходимо выполнить запросы. Для отправки запросов можно использовать объект Statement:
Statement stmt = con.createStatement();
После создания объекта Statement используйте метод executeQuery для выполнения SQL-запросов:
stmt.executeQuery(select * from employee;);
Шаг 3. Обработка результатов
Результаты выполненного запроса хранятся в объекте ResultSet.
В Java есть множество дополнительных методов для обработки результатов. Некоторые из них:
- String
getString()используется для получения данных строкового типа из набора результатов - int
getInt()используется для получения данных целочисленного типа из набора результатов - double
getDouble()используется для получения данных типа double из набора результатов - Date
getDate()используется для получения объекта типа Date из набора результатов - boolean
next()используется для перемещения к следующей записи в наборе результатов - boolean
previous()используется для перемещения к предыдущей записи в наборе результатов - boolean
first()используется для перемещения к первой записи в наборе результатов - boolean
last()используется для перемещения к последней записи в наборе результатов - boolean
absolute(intRowNumber)используется для перемещения к конкретной записи в наборе результатов
Пример тестирования базы данных с помощью Selenium
1. Установите MySQL Server и MySQL Workbench.
При установке MySQL Server следует обратить внимание на:
- Username (имя пользователя)
- Password (пароль)
- Port Number (номер порта)
Эти данные потребуется на следующих этапах.
MySQL Workbench упрощает администрирование базы данных без использования SQL-кода. Тем не менее, для работы с базой данных можно также использовать терминал MySQL.
2. В MySQL WorkBench подключитесь к серверу MySQL.

Далее:
- Выберите локальный экземпляр MySQL
- Введите номер порта
- Введите имя пользователя
- Введите пароль
- Нажмите «OK»

3. Создание базы данных:
- Нажмите кнопку Create Schema (создать схему)
- Введите имя схемы/базы данных
- Нажмите кнопку Apply (применить)

4. В меню навигатора:
- Щёлкните на Tables (таблицы) под базой данных emp
- Укажите имя таблицы как employee (сотрудник)
- Введите поля Name (имя) и Age (возраст)
- Нажмите кнопку Apply

Появится следующее всплывающее окно. Нажмите Apply.

5. Создадим следующие данные:
| Имя сотрудника | Возраст |
|---|---|
| Top | 25 |
| Nick | 36 |
| Bill | 47 |
Чтобы создать данные в таблице:
- В навигаторе выберите таблицу employee
- В правой панели нажмите Form Editor (редактор форм)
- Введите Name (имя) и Age (возраст)
- Нажмите кнопку Apply

Повторяйте до тех пор, пока не будут созданы все необходимые данные.

6. Загрузите MySQL JDBC-коннектор по ссылке.

7. Добавьте загруженный JAR-файл в ваш проект:
- Щёлкните правой кнопкой мыши по вашему Java-файлу. Затем в коннекторе выберите Build Path (построить путь) -> Configure build path (настроить путь)
- Выберите библиотеки.
- Нажмите на кнопку Add external JARs (добавить внешний JAR-файл)
- Выберите MySQL Connector Java в вашей библиотеке
- Нажмите кнопку Open (открыть), чтобы добавить его в проект

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. Выполните код и проверьте вывод:

Краткий итог по тестированию баз данных с помощью Selenium
- Установка соединения с базой данных с помощью метода
DriverManager.getConnection(URL, "userid", "password") - Создание запроса к базе данных с использованием объекта
Statement:Statement stmt = con.createStatement(); - Отправка запроса в базу данных с помощью функции
executeQueryи сохранение результатов в объектеResultSet:ResultSet rs = stmt.executeQuery(select * from employee;);
Кроме этого, Java предоставляет множество встроенных методов для обработки вывода SQL с использованием объекта ResultSet.
Перевод статьи «Database Testing using Selenium: How to Connect?».

И где здесь селениум? Это же просто подключение к БД на java. Как вообще UX тестирование соотносится к БД? Вы вообще понимаете что пишете?
Пингбэк: 30 вопросов на собеседовании по SQL в 2024 году