selenium database testing using webdriver
En nuestro último tutorial de Selenium, aprendimos cómo solucionar algunos problemas recurrentes en secuencias de comandos de selenio . Discutimos algunos conceptos avanzados en los que trataríamos los eventos del mouse y el teclado, accediendo a múltiples enlaces mediante la implementación de listas.
Avanzando con nuestro temas avanzados de la serie de formación Selenium , le presentamos el concepto de Prueba de base de datos usando Selenium WebDriver.
Discutiríamos los procesos básicos como la conexión de la base de datos, la ejecución de consultas, la obtención de datos y la desconexión de las instancias de la base de datos, etc. También discutiríamos varias implicaciones prácticas donde necesitamos pruebas de bases de datos con pruebas de automatización para probar el escenarios completos de principio a fin.
Antes de seguir adelante con las implicaciones técnicas asociadas con las pruebas de bases de datos automatizadas. Analicemos algunos escenarios en los que necesitamos realizar pruebas de base de datos junto con las pruebas de automatización. Pero antes de eso, me gustaría afirmar aquí que la prueba de base de datos es un tipo de prueba muy peculiar, mientras que Selenium WebDriver es una herramienta que se utiliza para simular y automatizar las interacciones del usuario con la interfaz de usuario de la aplicación.
Entonces, técnicamente hablando, no estamos realizando precisamente pruebas de base de datos, sino que estamos probando nuestra aplicación junto con la base de datos para asegurarnos de que los cambios se reflejen en ambos extremos, identificando los defectos de manera temprana.
Absolutamente todas las aplicaciones web necesitan un backend para almacenar los datos. Las bases de datos como MySQL, Oracle y SQL Server son razonablemente populares en estos días.
Ahora volviendo al tema original, analicemos algunos escenarios para ejemplificar la demanda de las pruebas de bases de datos junto con las pruebas de automatización.
Lo que vas a aprender:
- Considere los siguientes escenarios
- Creación de datos de prueba en la base de datos
- Creación de nueva base de datos
- Conclusión
- Lectura recomendada
Considere los siguientes escenarios
#1) A veces, debemos asegurarnos de que los datos ingresados desde la interfaz de usuario se reflejen constantemente en la base de datos. Por lo tanto, recuperamos la información de la base de datos y verificamos la información recuperada con la información proporcionada por la interfaz de usuario. Por ejemplo, formularios de registro, datos de usuario, perfiles de usuario, actualizaciones y eliminaciones de datos de usuario. Por lo tanto, el escenario de prueba para automatizar puede ser 'Para verificar que la información del usuario se haya guardado correctamente en la base de datos tan pronto como el usuario se registre en la aplicación'.
#2) Otro caso de uso de realizar pruebas de bases de datos con Selenium WebDriver puede surgir cuando se indica al usuario que cargue los datos de prueba o los datos esperados de la base de datos. Por lo tanto, en tal caso, el usuario haría la conexión con la base de datos utilizando una API de terceros, ejecutaría consultas para recuperar datos del conjunto de datos y luego afirmaría los datos obtenidos de la base de datos con los datos reales que se completan en la interfaz de usuario de la aplicación. .
#3) Otro caso de uso es realizar pruebas de base de datos asociativas. Supongamos que realizamos una operación en la interfaz de usuario de la aplicación y queremos probar el reflejo en la base de datos. Puede darse el caso de que los datos afectados residan en varias tablas de la base de datos debido a la asociación. Por lo tanto, siempre es recomendable probar la reflexión de datos en todas las áreas afectadas.
Selenium, como dije, simula las interacciones del usuario con la aplicación bajo prueba. Puede simular eventos del teclado, acciones del mouse, etc. Pero si el usuario desea automatizar cualquier cosa fuera de la vecindad del navegador, las interacciones de la aplicación web, entonces el selenio no puede ser de mucha ayuda. Por lo tanto, necesitamos otras herramientas o capacidades para realizar pruebas de un extremo a otro.
Por lo tanto, en todos los escenarios anteriores, es posible que necesitemos realizar pruebas de base de datos junto con la automatización de la interfaz de usuario. Podemos comprobar la lógica empresarial manipulando los datos y verificando su reflejo. También podemos verificar los aspectos técnicos de la base de datos en sí, como eliminación temporal, validación de campo, etc.
Avancemos ahora con la implementación real. Antes de desarrollar scripts de Selenium WebDriver para extraer datos de la fuente de datos, creemos datos de prueba en la base de datos. Para este tutorial, usaríamos MySQL como base de datos.
Creación de datos de prueba en la base de datos
Si aún no ha descargado la base de datos, descárguela con el Enlace . Se espera que el usuario siga algunos pasos básicos para descargar e instalar la base de datos.
= >> Lea este tutorial para descargar e instalar la base de datos MySQL .
Una vez que la base de datos se haya instalado correctamente, el usuario puede iniciar el indicador de línea de comandos de MySQL, que se vería como la siguiente captura de pantalla. La aplicación puede pedirle al usuario que ingrese la contraseña. La contraseña predeterminada es 'root'.
Nota : El usuario también puede encontrar clientes basados en GUI a través de Internet para conectarse con la base de datos. Por nombrar algunos, el usuario puede descargar e instalar Query Browser o Work Bench.
Creación de nueva base de datos
El siguiente paso es crear la base de datos de prueba con algunas tablas y registros almacenados en esas tablas para hacer una conexión con la base de datos y ejecutar consultas.
funciones de amigo en c ++
Paso 1) Escriba 'mostrar bases de datos' para ver todas las bases de datos ya disponibles
mostrar bases de datos;
Paso 2) Escriba 'crear usuario de base de datos'; para crear una base de datos denominada 'usuario'.
crear usuario de base de datos;
Tenga en cuenta que el nombre de la base de datos como el usuario se crea y se puede ver en la lista de bases de datos.
Paso 3) Escriba 'use user;' para seleccionar la base de datos recién creada. Además, escriba 'mostrar tablas'; para ver todas las tablas disponibles en la base de datos de usuarios.
usuario de uso;
mostrar tablas;
Tenga en cuenta que el conjunto vacío se muestra en el resultado de 'mostrar tablas'; consulta ya que no había tablas disponibles dentro de la base de datos del usuario.
Veamos ahora algunas tablas y agreguemos registros en ellas.
Paso 4) Escriba el siguiente comando para crear una tabla con 4 campos / columnas (userId, userName, userAge, userAddress).
crear tabla userinfo
(
userId int,
nombre de usuario varchar (255),
userAge int,
userAddress varchar (255)
);
El siguiente paso es agregar algunos registros de datos en la tabla 'userinfo'.
Paso 5) Escriba el siguiente comando para insertar datos en la tabla una tabla para los cuatro campos 4 campos / columnas (userId, userName, userAge, userAddress).
insertar en la información de usuario (ID de usuario, nombre de usuario, edad de usuario, dirección de usuario) valores ('1', 'shruti', '25', 'Noida');
Para ver los datos agregados, escriba el siguiente comando:
seleccione * de userinfo;
De manera similar, puede agregar más datos a su tabla y también puede crear otras tablas.
Ahora que hemos creado nuestra base de datos. Podemos avanzar y comprender el implementación de consultas automatizadas para obtener los registros de la base de datos.
Como también iteramos anteriormente, Selenium WebDriver es una herramienta para la automatización de la interfaz de usuario. Por lo tanto, Selenium WebDriver por sí solo no es elegible para realizar pruebas de bases de datos, pero esto se puede hacer utilizando la API de conectividad de bases de datos de Java (JDBC). La API permite al usuario conectarse e interactuar con la fuente de datos y obtener los datos con la ayuda de consultas automatizadas. Para poder explotar la API de JDBC, es necesario tener una máquina virtual Java (JVM) ejecutándose en el sistema.
Flujo de trabajo JDBC
Mantendríamos nuestro enfoque alineado con los siguientes procesos:
- Creando una conexión con la base de datos
- Ejecutar consultas y actualizar declaraciones para extraer / recuperar datos (Operaciones CRUD)
- Usar y manipular los datos extraídos de la Base de datos en forma de conjunto de resultados. (El conjunto de resultados es una colección de datos organizados en filas y columnas)
- Desconectando la conexión a la base de datos.
Como se dijo anteriormente, para poder probar la base de datos automáticamente desde nuestros scripts de prueba de Selenium WebDriver, nos conectaríamos con la base de datos a través de la conectividad JDBC dentro de nuestros scripts de prueba. Publicar en la conexión, podemos activar tantas operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en la Base de Datos.
En este tutorial, discutiremos 'Operación de lectura y sus variantes' y sobre su implementación en el script Selenium WebDriver. Pero antes de eso, verifiquemos el escenario de prueba manualmente usando la 'línea de comandos de MySQL'.
Guión:
1) Abra el servidor de la base de datos y conéctese a la base de datos del 'usuario'.
2) Enumere todos los registros de la tabla 'userinfo'.
Sintaxis: seleccione * de userinfo;
3) Cierre la conexión a la base de datos.
Tenga en cuenta que la consulta de lectura enumerará todos los datos de usuario presentes en la tabla de información de usuario. La tabla consta de las siguientes columnas.
- userId
- nombre de usuario
- userAge
- userAddress
El resultado también muestra que solo hay un conjunto de datos presente dentro de la tabla.
Ahora, ejecutemos el mismo escenario usando la clase Java.
Para poder acceder a la base de datos, el usuario puede elegir entre las diversas opciones de conector disponibles para conectarse con la base de datos. La mayoría de los conectores de bases de datos se distribuyen libremente como archivos 'jar'. Como usamos MySQL como fuente de datos, debemos descargar el archivo jar específico para MySQL.
El archivo jar se puede descargar desde: aquí o aquí.
Paso 1 : El primer y más importante paso es configurar la ruta de compilación del proyecto y agregar el archivo 'mysql-connector-java-3.1.13-bin.jar' como una biblioteca externa.
Paso 2 : Cree una clase Java denominada 'DatabaseTesingDemo'.
Paso 3 : Copie y pegue el siguiente código en la clase creada en el paso anterior.
buen descargador de mp3 para android gratis
Muestra de código
La salida del código anterior es:
1 shruti 25 Noida
2 shrivastava 55 Bombay
Leer variantes de declaraciones
Donde cláusula con condición única
String query = 'seleccionar * de userinfo donde userId = '' + 1 + '‘ ';
ResultSet res = stmt.executeQuery (consulta);
Producción:
1 shruti 25 Noida
Where cláusula con múltiples condiciones
String Address = ”Mumbai”;
String query = 'select * from userinfo donde userId = '' + 2 + '‘ y userAddress =' '+ Dirección +' ‘';
ResultSet res = stmt.executeQuery (consulta);
Producción:
2 shrivastava 55 Bombay
Mostrar userId
String query = 'seleccionar userId de userinfo';
ResultSet res = stmt.executeQuery (consulta);
Producción:
1
2
Mostrar userId con cláusula where
Dirección de cadena = ”Noida”;
String query = 'seleccione userId, userName de userinfo donde userAddress = '' + Dirección + '‘ ';
ResultSet res = stmt.executeQuery (consulta);
Producción:
2
Shrivastava
Así, de la misma forma el usuario puede ejecutar varias consultas en la base de datos.
Con esto, arrojemos algo de luz sobre los métodos de accesibilidad de resultados también.
Métodos de accesibilidad de resultados:
Nombre del método | Descripción |
---|---|
doble getDouble () | El método se utiliza para obtener los datos de tipo doble del conjunto de resultados. |
String getString () | El método se utiliza para obtener los datos del tipo de cadena del conjunto de resultados. |
int getInt () | El método se utiliza para obtener los datos de tipo entero del conjunto de resultados. |
boolean getBoolean () | El método se utiliza para obtener el valor booleano del conjunto de resultados. |
flotar getFloat () | El método se utiliza para obtener los datos de tipo flotante del conjunto de resultados. |
long getLong () | El método se utiliza para obtener los datos de tipo largo del conjunto de resultados. |
corto getShort () | El método se utiliza para obtener los datos de tipo corto del conjunto de resultados. |
Fecha getDate () | El método se utiliza para recuperar el objeto de tipo de fecha del conjunto de resultados |
Métodos de navegación de resultados:
Nombre del método | Descripción |
---|---|
booleano siguiente () | El método se utiliza para pasar al siguiente registro del conjunto de resultados. |
booleano anterior () | El método se utiliza para pasar al registro anterior en el conjunto de resultados. |
booleano primero () | El método se utiliza para pasar al primer registro del conjunto de resultados. |
último booleano () | El método se utiliza para pasar al último registro del conjunto de resultados. |
booleano absoluto (int número de fila) | El método se usa para moverse al registro específico en el conjunto de resultados |
Conclusión
A través de este tutorial, intentamos familiarizarlo con el concepto de Prueba de base de datos automatizada . Claramente hicimos hincapié en las implicaciones técnicas y las necesidades de las pruebas de bases de datos.
Como toda nuestra serie se centró en Selenium, el lector puede engañarse y crear la impresión de que este tutorial le enseñaría a realizar pruebas de bases de datos usando Selenium, pero como mencioné varias veces antes, cualquier cosa que se encuentre fuera de la periferia de las pruebas de IU. , no puede ser manejado por Selenium. Por lo tanto, presentamos la API de Java Database Connectivity (JDBC) para realizar pruebas de base de datos incrustando el código dentro de los scripts de Selenium WebDriver.
JDBC hace posible que la clase java se conecte a la base de datos, recupere datos de la base de datos o, de hecho, realice cualquiera de las operaciones CRUD, manipule los datos resultantes y cierre la conexión.
Por lo tanto, el tutorial constituye la implementación de muestra básica del proceso mencionado anteriormente.
Siguiente tutorial n. ° 29 : Seguiremos adelante con temas avanzados de Selenium. En el siguiente tutorial, cubriremos Selenium GRID, que se usa cuando tiene que realizar pruebas en varios navegadores y tiene una gran cantidad de casos de prueba.
Lectura recomendada
- Prueba de base de datos con JMeter
- Integración de selenio con JMeter
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Mejores herramientas de prueba de software 2021 (Herramientas de automatización de pruebas de control de calidad)
- Implementación de nuestro primer script de WebDriver - Tutorial de Selenium WebDriver # 10
- El mejor curso de capacitación en línea de Selenium WebDriver + JAVA
- Spock para pruebas funcionales y de integración con selenio