Selenium, Java y cómo pasé de QA manual a automatizado
Como parte de seguir preparándome para el mundo laboral, mejorar mi salario y actualizar conocimientos, decidí hacer algunos cambios en mi perfil dev, sobre todo porque mi enfoque ha sido el lenguaje de Java y quería reforzar la programación y el testing.
En ese sentido, mi meta fue lograr un pase de QA manual a uno automatizado, algo para lo cual debes prepararte bien. No quiere decir que debes ser un experto/ en programación, pero sí tener conocimiento en Programación Orientada a Objetos (POO), clases, tipos de datos, métodos y aplicarlos en la práctica.
¡Que conste no soy una experta (sigo aprendiendo)! Se trata de no quedarnos en “compré un curso, pero nunca lo realicé porque ya también lo pasé”. Siéntate un día frente a tu laptop y comprométete a buscar información, a realizar ese curso que tienes, a ingresar a blog, leer experiencias. ¡Busca una comunidad y no te frustres! Todos tenemos la capacidad.
Para entrar en materia, quiero contarles cómo fue ese paso que di de QA manual a automatizado, algo en lo que empleé herramientas como Selenium y Java.
Comencemos…
¿Qué es Selenium Web Driver?
Selenium es una herramienta de código abierto utilizada para automatizar pruebas en los navegadores web. Con Selenium no podemos probar ninguna aplicación de Escritorio, sino que se enfoca en las aplicaciones web dinámicas.
Las ventajas de utilizar Selenium:
- Los scripts los podemos realizar en diferentes lenguajes: Java, Python, C #, PHP, Ruby, Perl y .Net.
- Nuestras pruebas funcionan en Windows, Mac o Linux.
- Puede emplearse cualquier navegador: Mozilla Firefox, Internet Explorer, Google Chrome, Safari u Opera.
- Facilidad para integrarse con Jenkins, Maven y Docker.
Hablaremos sobre Selenium con Java, este último el lenguaje que utilizaremos para automatizar.
Comenzaremos haciendo las configuraciones necesarias para usar Selenium Web Driver:
Configuración de ambiente (utilizaremos Windows)
- Instalar Java JDK.
- Instalar Eclipse.
- Crear un proyecto.
- Selenium.
- Importación de librerías.
- Elección de navegador.
- Ejecutar nuestro primer Código en Selenium.
Java es un lenguaje de programación orientado a objetos creado por Sun Microsystems en 1995. Tiene una enorme presencia en el mundo tecnológico y numerosas empresas lo utilizan.
Dado que cuenta con un conjunto de especificaciones, librerías y herramientas, Java será de mucha ayuda en este proceso.
Debemos tener en cuenta que todo programa escrito en Java se estructura por clases. En este caso, instalaremos Java JDK 8 para Windows 64 bits.
¿Por qué utilizaremos la versión Java JDK 8?
Oracle se hizo de Java y ha habido temas legales en los cuales también Java nace como una iniciativa libre. Después de la versión 9 comienza a ser privado por la alianza con Oracle, lo que exige el pago de licencias.
Puedes descargar JDK en este enlace.
Configuración de Java Path
Vamos a instanciar nuestras variables de entorno en nuestro equipo.
Dentro de este proceso también usaremos el IDE Eclipse.
¿Qué es IDE Eclipse?
Eclipse es un entorno de desarrollo integrado, de código abierto y multiplataforma.
Entre sus características están:
- Editor de texto con resaltado de sintaxis.
- Compilación en tiempo real.
- Pruebas unitarias JUnit.
- Control de versiones.
En esta ocasión, utilizaremos la versión de Eclipse Photon 8, la cual podrás descargar aquí.
¡Hora de crear nuestro primer Proyecto de Automatización!
Lo primero es generar nuestro workspace. Esto te ayudará a mantener un orden en tus trabajos y a no confundirte a la hora de crear nuevos proyectos.
Puedes hacerlos en donde mejor te parezca. En mi caso, he utilizado la sección de Documentos:
Crear nuestro primer proyecto en Eclipse
Aquí utilizamos la misma versión del JDK. Procura no dejar espacios en el nombre del proyecto.
Descargar la librería de Selenium (la versión estable para Java). Puedes hacerlo aquí.
Para que nuestro proyecto funcione, debemos importar las librerías de Selenium y aplicar los cambios necesarios.
Ahora descargaremos los Web Driver del navegador. En nuestro caso, utilizaremos la versión de Chrome.
Podemos ir a la sección de ayuda del navegador para que nos proporcione la información de cuál versión tenemos de nuestro navegador. Esto mismo aplica para los diferentes navegadores: todos poseen sus drivers para ser instalados y realizar pruebas, evitando quedarnos haciéndolas en un solo navegador.
Puedes descargar los Web Drivers aquí.
Ejecutar nuestro primer código con Selenium
Como buenas prácticas, seguiremos algunas recomendaciones que nos ayudarán en este camino a la automatización.
- Creación de Paquetes. Ejemplo: com.tipodeproyecto.temadetrabajo.
- Hacer comentarios a nuestro código.
Ahora crearemos nuestra primera clase para que podamos visualizar todas las configuraciones hechas hasta el momento.
Nuestra clase debe ser tipo Public y public static void main.
Ejemplo de clase Inicio
package com.qa.automatizacion;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Inicio {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Mi primer codigo con selenium
System.setProperty("webdriver.chrome.driver", "C:\\Users\\marce\\OneDrive\\Documentos\\AUTOMATIZACION\\lib-chrome\\chromedriver.exe" );
// Instanciamos el navegador
WebDriver driver = new ChromeDriver ();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
}
}
¡Y así hemos creado nuestro primer código en Selenium! Te recomiendo guardar todos tus archivos en una carpeta donde tengas todo lo relacionado con la automatización.
Cabe destacar que existen pruebas que no podremos automatizar, mismas que seguiremos aplicando manualmente, pero debemos realizar un análisis a nuestros casos de prueba para validar cuáles podríamos automatizar y cuáles se mantendrán bajo modalidad manual.
Puedes configurar tu IDE de trabajo (por ejemplo, cambiando el tipo de letra, el color de fondo, etc.) y así descubrir poco a poco cuáles funcionalidades nos ofrece Eclipse.
Detalles que deberíamos automatizar
- Procesos que estén en constante revisión con objetivos de ejecutar la funcionalidad de un módulo.
- Flujos críticos y repetitivos que debemos pasar para llegar a cierto módulo.
- Configuraciones precisas que debe hacer un usuario para entrar al sistema o a un módulo.
Detalles que NO deberíamos automatizar
- Procesos que estén en constante revisión con el objetivo de revisar diseño (lo anterior va enfocado a la funcionalidad).
- Flujos que no sean necesarios para llegar a un módulo.
- Procesos de solo contenido.
- Aquellos flujos que se realizan una vez al año.
Espero que esta guía sea de utilidad y te ayude a lograr la automatización que necesitas.
¡Hasta pronto!
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.