Escribo este post para tener siempre a mano un proyecto mínimo que sirva para empezar con las pruebas funcionales.
Ya hice un post con un ejemplo básico y sencillo pero con este, la idea es tener un proyecto que además esté mavenizado y que utilice testNG.
El proyecto estará mavenizado porque así tendremos una estructura de directorios organizada y nos va a permitir realizar tareas de una forma muy fácil como tener localizadas las dependencias que queramos (por ejemplo utilizaremos las de selenium), descargar plugins necesarios, etc
Por otro lado, haremos que descargue y utilice testNG puesto que es un framework que nos va a ayudar a organizar y gestionar nuestros tests en este proyecto java (lanzar sólo los tests que consideramos críticos, sólo los que tienen que ver con una necesidad, relanzar automáticamente los que han fallado…)
Todos los elementos que voy a utilizar: Java8, IntelliJ, Selenium y TestNG.
¡Empezamos!
Creamos entonces un proyecto java básico y lo hacemos con
que es un arquetipo o plantilla
que sirve como base (generamos así la estructura de directorios del proyecto). Para ello:1
maven-quickstart
- (1) Primero, desde la linea de comandos hacemos:
1
$ mvn archetype:generate -DgroupId=com.examples -DartifactId=basic-testing-project -DarchetypeArtifactId=maven-archetype-quickstart
Con esto, se nos pregunta en dos ocasiones y debemos pulsar ENTER en ambas (marcadas en amarillo):
Esto nos genera una estructura como la siguiente:
Como se puede ver, ya tenemos creado el pom.xml, que es el fichero XML que contiene toda la info necesaria para construir el proyecto.
- (2) Importamos el proyecto en IntelliJ:
1
File > Open
- (3) Si no tenemos Java8, ya va siendo hora de descargarlo:
1
File > Project Structure > Project > Project SDK
- (4) Ahora vamos a modificar ese
, añadiendo varias dependencias, las dos de selenium y la de testNG:1
pom.xml
quedando así:
-
(5) Además, descargo chromedriver y lo incluyo en la carpeta src del proyecto.
-
(6) Y sólo nos queda ajustar la clase principal y la clase de test. Yo voy a implantar el page-factory que os comentaba en este post
La estructura final sería:
Y listo, sobre el test
de la clase 1
testMethod
, click and run!!
Ya podemos lanzar las pruebas.1
TestExample
PD. Podemos ir más allá y tener siempre la última versión de chrome driver descargada utilizando plugins para maven como este
De igual manera, sería modificar el
para que construya el proyecto como nosotros queramos antes de ponernos a lanzar pruebas. Interesante :)1
pom.xml
Nota. Si podemos ir actualizando el
, mejor. Hay que revisar a menudo si hay versiones nuevas de Selenium y TestNG para ver si, al acogernos a una versión más nueva, todas las pruebas nos siguen funcionando. Además si han introducido mejoras o funcionalidades nuevas, probar a utilizarlas.1
pom.xml
RESUMEN (Para la vagancia)
El proyecto completo Y las url necesarias para descargar chromedriver y SDK Java8
¡Saludos!