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 году