Selenium Easy

Como sabemos, cada aplicación tiene que mantener una base de datos como My SQL, Oracle o cualquier otra base de datos para almacenar todos sus datos. Y donde como Selenium Webdriver se utiliza para probar aplicaciones web y realizamos muchas operaciones como enviar información y algunas veces recuperar información y validarla.

En los scripts de selenium, cuando es necesario obtener los Datos de la base de datos, es posible que tengamos que usar API que ayudan a interactuar con la base de datos como JDBC.

Java Database Connectivity(JDBC) es una API de Java que se utiliza para conectarse e interactuar con la base de datos.

¿Por qué usamos JDBC en lugar de ODBC?

ODBC está desarrollado y escrito en C, que es independiente de la plataforma. donde as JDBC API es una especificación proporciona un conjunto de interfaces que están escritas y desarrolladas en lenguaje de programación Java.

¿Cómo conectarse a una base de datos usando JDBC?

A continuación se muestran los pasos para conectarse a la base de datos, antes de continuar, debe tener el conector MySQL. Puede descargar desde aquí Descargar MySQL Connector Jar y agregarle la ruta de compilación a medida que agregamos selenium webdriver jar.

1. Cargar y registrar el Controlador
2. Estableciendo Conexión.
3. Creación de Objeto de instrucción
4. Ejecute la instrucción
5. Cerrando la conexión.

1. Cargar y Registrar el Controlador:

Para registrar el Controlador cargamos la clase de Controlador usando el método forName ().

forName () es el método de fábrica estático que está presente en una clase predefinida llamada «Clase». Este método carga la clase que se menciona como parámetro.

Class.forName("com.mysql.jdbc.Driver");// class.forName load the Driver class

Internamente esta clase de controlador registrará el controlador mediante el método estático llamado registerDriver ().

2. Establecer conexión:

Para establecer conexión con la base de datos, llamamos al método estático getConnection(…) presente en la clase DriverManager. Este método contiene tres argumentos de tipo string. es decir, url, nombre de usuario y contraseña

DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root","root"); 

La URL contiene » jdbc(protocolo principal): mysql(sub protocolo para MySQL)://localhost:3306(sub nombre para mysql (host: prot))/Empleado(base de datos)» y este tipo de retorno de método es Objeto de conexión ie.,

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root","root"); 

3. Crear objeto de instrucción:

Para crear objeto de instrucción necesitamos llamar a un método llamado createStatement () que está presente en la Interfaz de conexión.

con.createStatement();

Y este método devuelve objeto de instrucción y no es un método de argumento.

Statement st= con.createStatement();

4.Ejecución de consultas:

Para ejecutar consultas hay diferentes métodos presentes en la Interfaz de instrucciones para recuperar registros y actualizar registros.

Recuperación de registros:
para ejecutar consultas select(para obtener registros) llamamos a un método llamado executeQuery(String qry) tomando string como parámetro.

st.executeQuery("Select * from Employee");

Este método devuelve el objeto ResultSet.

Resultset rs= st.executeQuery("Select * from Employee");// once executeQuery() executes the query and stores the records in to ResultSet object. 

Ahora necesitamos obtener los registros del objeto ResultSet. Para acceder al objeto resultset utiliza un método llamado next() que se presenta en la interfaz ResultSet.

De forma predeterminada, la referencia del conjunto de resultados ‘rs’ apunta a antes de la primera fila. mueve el ld a la siguiente fila y devuelve true. Cuando devuelve true recuperamos los datos en primera fila. next () devuelve false cuando rs apunta a después de la última fila. este next () repetirá la ejecución usando el bucle while hasta que devuelva false.

Para obtener los datos de las filas usamos getXXX(..) tomando cadena o entero como parámetros. Aquí entero significa posición de columna y cadena significa nombre de columna del registro. xxx indica tipos de datos primitivos u objeto de cadena.

while(rs.next()) {int EmpId= rs.getInt("EmpId");String EmpName= rs.getString("EmpName");String EmpAddress=rs.getString(3);Double EmpSal= rs.getDouble(4);String EmpDept=rs.getString("EmpDept");System.out.println(EmpId+"\t"+EmpName+"\t"+EmpAddress+"\t"+EmpSal+"\t"+EmpDept);}

Actualización de registros:
Para actualizar registros en una tabla utilizamos un método llamado executeUpdate (String str)

st.executeUpdate("update Employee set EmpName='Robert' where EmpId=2");

que devuelve el valor entero como cuántos registros se han actualizado.

int result = st.executeUpdate("update Employee set EmpName='Robert' where EmpId=2");System.out.println("number of records updated is" +result);

5. Cierre de la Conexión:

Una vez completada la ejecución de todas las instrucciones, necesitamos cerrar todas las conexiones utilizando el método llamado close () presente en la interfaz de conexión

con.close();

La base de datos que usamos, por ejemplo, tiene los siguientes registros en la tabla’Empleado’
pruebas de base de datos con selenium

Ahora es el momento de mirar el siguiente programa de ejemplo simple y más tarde saltaremos al ejemplo de marco de trabajo : – En el siguiente tutorial, intentaremos tomar un ejemplo que tomará los parámetros (como credenciales de la base de datos , detalles del entorno, etc.) de los archivos de propiedades y procederá a la prueba en función de los parámetros especificados.

/** * Created by VISISHTA on 12/17/2015. */import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;import java.sql.*;public class SeleniumDataBaseTesting { private Connection connection; private static Statement statement; private static ResultSet rs; @BeforeClass public void setUp() { String databaseURL = "jdbc:mysql://localhost:3306/easy"; String user = "root"; String password = "root"; connection = null; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Connecting to Database..."); connection = DriverManager.getConnection(databaseURL, user, password); if (connection != null) { System.out.println("Connected to the Database..."); } } catch (SQLException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } } @Test public void getEmployeesFromDataBase() { try { String query = "select * from employee"; statement = connection.createStatement(); rs = statement.executeQuery(query); while(rs.next()){ int EmpId= rs.getInt("EmpId"); String EmpName= rs.getString("EmpName"); String EmpAddress=rs.getString(3); String EmpDept=rs.getString("EmpDept"); Double EmpSal= rs.getDouble(5); System.out.println(EmpId+"\t"+EmpName+"\t"+EmpAddress+"\t"+EmpSal+"\t"+EmpDept); } } catch (SQLException ex) { ex.printStackTrace(); } } @AfterClass public void tearDown() { if (connection != null) { try { System.out.println("Closing Database Connection..."); connection.close(); } catch (SQLException ex) { ex.printStackTrace(); } } }}

En el ejemplo anterior, tenemos, setUp () creará una conexión de base de datos, y en el método @Test ejecutaremos e iteraremos la tabla para imprimir todos los valores de la base de datos. Y last tearDown () tiene una conexión cercana que cerrará la conexión de la base de datos si se abre.

La salida del programa anterior debe verse como a continuación:

resultado de prueba de base de datos con selenium

Hasta ahora hemos visto un ejemplo sobre cómo acceder a la base de datos,ahora veamos cómo realizamos pruebas de base de datos usando Selenium.

Hay principalmente dos cosas que podríamos querer probar para verificar la base de datos con Selenium.

Primero, después de realizar cualquier acción en la aplicación web (Front-end), es posible que queramos verificar en la base de datos si todos los detalles que enviamos están almacenados correctamente. Ahora, por ejemplo, al crear una cuenta, introduciremos algunos datos de identificación de correo electrónico, nombre de usuario, etc. Para asegurarnos de que se crea una cuenta, podemos verificar el registro creado en la base de datos con todos los detalles proporcionados por el usuario.

Otro caso puede ser como, después de realizar cualquier acción, es posible que deseemos verificar que los datos mostrados en la interfaz de usuario sean correctos comparando la base de datos.

Espero que este artículo te ayude. Háganos saber si ha encontrado alguna dificultad al trabajar con el programa anterior y los comentarios también son bienvenidos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.