A lo largo de los siguientes post se pretende instruir en la automatización de pruebas funcionales en entornos webs con Selenium, WebDriver bajo el IDE IntelliJ y usando como lenguaje de programación Java.
Vamos a empezar desde 0, explicando cada una de las herramientas utilizadas, realizando su instalación en entornos Windows y OS X. Así como como unas pautas para su uso.
Indicar que los ejercicios aunque se explica la configuración de las herramientas tanto para Windows como para OS X, los ejercicios están desarrollados bajo y OS X y como veremos más adelante existen ligeras modificaciones con respecto a Windows.
Índice
- Introducción
- 1. Instalación de la última versión disponible de JAVA
- 2. Configurar JAVA Path en las variables del sistema
- 3. Instalación de la última versión disponible de IntelliJ
- 4. Crear un nuevo proyecto en IntelliJ
- 5. Selenium JARs download
- 6. Configurar Selenium JARs (y Sikuli) en el Project Build Path
- 7. Elegir el Navegador donde ejecutar las pruebas y su WebDriver
Introducción
¿Qué es Selenium? Selenium es una Herramienta de automatización de pruebas de código abierto. Existen varias herramientas en el mercado, pero Selenium ha conseguido ser de las más usadas debido a que es gratuita y de código abierto.
¡OJO! Selenium no está diseñado para automatizar las pruebas de escritorio o mainframe, esto se puede ver como una ventaja o como una desventaja.
Una de las mayores ventajas de Selenium es que trabaja sobre varios sistemas operativos. Es la única herramienta que trabaja sobre Windows, OS X, Solaris y Linux. Actualmente también se da soporte a dispositivos móviles, existen APIs adaptadas que son extensiones de Selenium que dan soporte a ambas plataformas: IOs y Android
Selenium se puede escribir en cualquiera de los siguientes lenguajes de programación:
- Java → El curso está diseñado bajo JAVA
- C#
- Ruby
- Python → Es otro de los lenguajes más utilizados con Selenium
- PHP
- Perl
Debes tener en cuenta que el lenguaje utilizado para desarrollar tu software CORE (el build) es independiente del lenguaje utilizado para automatizar las pruebas con Selenium.
Por último, Selenium soporta múltiples navegadores, proporcionando la misma estabilidad en ellos:
- Internet Explorer (Edge) → Bastante problemático su WebDriver bajo OS X.
- Firefox
- Chrome
- Safari
1. Instalación de la última versión disponible de JAVA
Previamente en la línea de comandos escribir java -version en caso de que no exista o no sea una versión 8 o superior continuar con:
Escribimos en Google «java jdk download«. La última versión actualmente es la 12 aunque la versión 8 es la más estable. Sólo descargad la versión JDK del S.O. correspondiente.
Oracle Technology Network / Java / Java SE / Downloads:
https://www.oracle.com/technetwork/java/javase/downloads/index.html
Se podrá descargar tras aceptar los acuerdos de licencia.
2. Configurar JAVA Path en las variables del sistema
Windows 10
Ir a Program Files > Java > jdk.1.8.0_XXX > bin → Copiar la ruta
Posteriormente vamos a Panel de Control > Sistema y Seguridad > Sistema > Pestaña “Avanzado” > Variables de Entorno > Variables de Sistema > Selecciona “Path” > New > Pega la Ruta anterior y Guarda.
OS X
Agregar la variable de entorno al PATH en OS X en el documento bash_profile agregar la línea:
export JAVA_HOME=$(/usr/libexec/java_home)
3. Instalación de la última versión disponible de IntelliJ
A continuación, procedemos con la instalación del entorno de desarrollo (IDE) de IntelliJ:
Seleccionamos IntelliJ IDEA → Descargamos e Instalamos
Posteriormente comprobamos que conoce el PATH de nuestra versión de Java instalada:
File > Project Structure > Platform Settings > JDK
4. Crear un nuevo proyecto en IntelliJ
Para ello vamos a File > New > Project
Marcamos Java como librería adicional:
En la siguiente ventana le indicamos el Group ID y Artefact ID que queramos:
En el siguiente paso marcamos Create separate module per source set e importante seleccionar Use default Gradle wrapper (recommended):
Para finalizar, indicamos el nombre del proyecto y la ubicación:
Y después de aceptar se nos indicará si queremos que se cree en la ventana actual o en una nueva. Esto ya según el gusto del consumidor.
5. Selenium JARs download
¿Qué es Gradle?
Gradle, es una herramienta que permite la automatización de compilación de código abierto, la cual se encuentra centrada en la flexibilidad y el rendimiento. Los scripts de compilación de Gradle se escriben utilizando Groovy o Kotlin DSL (Domain Specific Language).
Gradle tiene una gran flexibilidad y nos deja hacer usos otros lenguajes y no solo de Java, también cuenta con un sistema de gestión de dependencias muy estable. Gradle es altamente personalizable y rápido ya que completa las tareas de forma rápida y precisa reutilizando las salidas de las ejecuciones anteriores, sólo procesar las entradas que presentan cambios en paralelo.
Además, es el sistema de compilación oficial para Android y cuenta con soporte para diversas tecnologías y lenguajes.
Todas las características de Gradle e información adicional las tenéis aquí:
https://openwebinars.net/blog/que-es-gradle/
6. Configurar Selenium JARs (y Sikuli) en el Project Build Path
OS X
En build.gradle > dependencias agregamos:
implementation "com.sikulix:sikulixapi:1.1.4-SNAPSHOT" implementation "org.seleniumhq.selenium:selenium-java:3.141.59"
NOTA para que podamos utilizar la API de Sikuli no basta con poner la Dependencia, además debemos incluir la ruta del repositorio Maven que podemos encontrar buscando en Google “Sikuli repository Url”. Adjunto la ruta donde se encuentra en la documentación de Sikuli:
https://sikulix-2014.readthedocs.io/en/latest/_sources/faq/030-java-dev.rst.txt
De este modo tendremos:
repositories { mavenCentral() maven { url 'https://repository.mulesoft.org/nexus/content/repositories/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } dependencies { implementation "org.seleniumhq.selenium:selenium-java:3.141.59" implementation "com.sikulix:sikulixapi:1.1.4-SNAPSHOT" testCompile group: 'junit', name: 'junit', version: '4.12' }
Windows
Se deberán descargar los JARs files de las webs correspondientes y agregarlos como Librerías externas a nuestro proyecto.
https://www.seleniumhq.org/download/
7. Elegir el Navegador donde ejecutar las pruebas y su WebDriver
Para los ejercicios que se vana a realizar vamos a utilizar los navegadores Chrome (por su estabilidad) y Firefox. En OS X actualmente se está integrando el navegador Edge (antiguo Internet Explorer) pero está en fase experimental con lo cual lo descartamos.
https://www.seleniumhq.org/download/
¡OJO! Antes de descargar el WebDriver es necesario conocer la versión del navegador que tenemos instalado.
WebDriver de Chrome:
En el navegador Chrome pulsamos en:
A continuación,
Pulsamos en «Ayuda»:
Y ahora en «Información de Google Chrome»:
Una vez que conozcamos la versión de nuestro navegador Chrome, descargamos el WebDriver correspondiente de:
https://sites.google.com/a/chromium.org/chromedriver/downloads
En nuestro caso:
WebDriver de Firefox
Para Firefox simplemente mantén el navegador actualizado a la última versión y descarga el WebDriver de la siguiente URL:
https://github.com/mozilla/geckodriver/releases
Descargamos el WebDriver de Firefox y el de Chrome y los almacenamos en una carpeta por ejemplo en el escritorio. Posteriormente copiamos la ruta y volvemos al proyecto.
Para configurar la Property en JAVA, necesitamos dos parámetros. El 1ª es la KEY que viene a identificar el WebDriver del navegador que vamos a usar pudiendo ser:
- webdriver.chrome.driver → Para Chrome
- webdriver.gecko.driver → Para FireFox
- webdriver.ie.driver → Para I.E.
- webdriver.edge.driver → Para Edge
El 2º parámetro es el valor que debe ser la ubicación del WebDriver. Teniéndo en cuenta de que las rutas se expresan diferentes si se trata de OS X o de Windows:
- En Mac es por ejemplo /Users/Autentia/Desktop/Sikuli/chromedriver
- En Windows es necesario indicar la unidad y el tipo de archivo .exe
C:/Users/Autentia/Desktop/Sikuli/chromedriver.exe
Por tanto, usamos el comando en la clase Java que crees y que será tu Script para automatizar las pruebas:
System.setProperty("webdriver.chrome.driver","/Users/Autentia/Desktop/Sikuli/chromedriver");
Y listo el WebDriver del navegador Chrome en este caso.
Hasta aquí la 1ª parte de la formación de Selenium + Webdriver + IntelliJ formada por la configuración del entorno de desarrollo y todas las herramientas a usar.
En el próximo post crearemos los Objetos Driver basados en el explorador elegido y haremos los primeros ejercicios prácticos.
Buen post