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

Selenium Webdriver ограничен тестированием ваших приложений в браузере. Чтобы использовать Selenium для проверки баз данных, необходимо воспользоваться JDBC (Java Database Connectivity).

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

  • Менеджер по работе с драйверами (Driver Manager)
  • Драйвер (Driver)
  • Соединение (Connection)
  • Запрос (Statement)
  • Результат запроса (ResultSet)
  • Исключение SQL (SQLException)
БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"

Содержание

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

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

  1. Установить соединение с базой данных
  2. Послать запросы к базе данных
  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

Далее:

  1. Выберите локальный экземпляр MySQL
  2. Введите номер порта
  3. Введите имя пользователя
  4. Введите пароль
  5. Нажмите «‎OK»‎
Ввод данных

3. Создание базы данных:

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

4. В меню навигатора:

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

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

Всплывающее окно после заполнения меню навигатора

5. Создадим следующие данные:

Имя сотрудникаВозраст
Top25
Nick36
Bill47

Чтобы создать данные в таблице:

  1. В навигаторе выберите таблицу employee
  2. В правой панели нажмите Form Editor (редактор форм)
  3. Введите Name (имя) и Age (возраст)
  4. Нажмите кнопку Apply
Ввод данных

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

Таблица с введёнными данными.

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

Загрузка MySQL JDBC-коннектора

7. Добавьте загруженный JAR-файл в ваш проект:

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

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

  1. Установка соединения с базой данных с помощью метода DriverManager.getConnection(URL, "userid", "password")
  2. Создание запроса к базе данных с использованием объекта Statement: Statement stmt = con.createStatement();
  3. Отправка запроса в базу данных с помощью функции executeQuery и сохранение результатов в объекте ResultSet: ResultSet rs = stmt.executeQuery(select * from employee;);

Кроме этого, Java предоставляет множество встроенных методов для обработки вывода SQL с использованием объекта ResultSet.

Перевод статьи «Database Testing using Selenium: How to Connect?».

1 комментарий к “Тестирование баз данных с помощью Selenium”

  1. Павел

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *