Guía para la integración de certificados de pruebas para automatizar pruebas funcionales en la Plataforma CI/CD Corporativa

Información general

Icono guías
Tipo de recurso
Guía
Etiquetas

Integración de certificados de prueba 

Selenium Grid es una herramienta que permite ejecutar pruebas automáticas de aplicaciones web de manera simultánea en diferentes dispositivos, navegadores y sistemas operativos. Esto significa que, en lugar de probar una aplicación en un solo entorno, puedes hacerlo en varios al mismo tiempo, lo que ahorra tiempo y esfuerzo. Es especialmente útil cuando se necesita validar el funcionamiento de una página en múltiples configuraciones de manera rápida y eficiente.

Hay un Selenium GRID desplegado, que se puede consultar el enlace en las herramientas de la junta. Para acceder a él mediante el código se haría mediante un paso en nuestras pruebas como el siguiente: 

Configuration.headless = false; 
Configuration.timeout = TimeUnit.SECONDS.toMillis(10); 
Configuration.baseUrl = ConfigHelper.getResource(ConfigHelper.getResource("env")); 
Configuration.remote = ConfigHelper.getResource("grid-" + ConfigHelper.getResource("env")); 
Selenide.open("/"); 
test=https://nombre_componente.apps.paas-des-cica.junta-andalucia.es/inicio 
pre=https:// nombre_componente -pre.apps.paas-des-cica.junta-andalucia.es/inicio 
grid = [URL Seleniumj-Grid] 

Como podemos ver en el código anterior:

  • Configuration.remote = Esta primera línea de código es donde indicamos el nombre de la variable dentro del Properties que almacena el valor asociado al Selenium Grid
  • grid= Valor de la URL asociada al Selenium Grid y que varía según el entorno.

En definitiva, para usar Selenide en un Selenium Grid se hace desde el código de pruebas. Para ello, es necesario indicar a la clase Configuration cuál es la URL del Selenium Grid.

Además de esta parametrización general, para este proyecto concreto es necesaria llevar una configuración adicional debida a la necesidad existente de realizar el “Login” a través del certificado electrónico “FNMT”. 

Este tipo de autenticaciones no es posible automatizarlas directamente mediante el sistema de “Clicks” simulados de Selenide, ya que no está presente como elemento web reconocible por la herramienta.

Así, se ha creado un sistema mediante el cual, de manera previa a cada ejecución de pruebas funcionales, se indica al código mediante una etiqueta el Certificado que se utilizará en la validación de dichas pruebas y este se configurará para que sea seleccionado de forma automática. 

Chrome y Edge

Para ello, en primer lugar, se han instalado todos los certificados necesarios para la ejecución de la regresión completa en los nodos asociados al Selenium Grid. En caso de necesitar cambiar o añadir alguno de estos certificados sería necesario contactar con el equipo de Devops encargado de esta tarea.

Una vez instalados los certificados, es necesario añadir un archivo .json por cada uno de ellos al Framework que contendrá la información necesaria para que se lleve a cabo el logado automático con el certificado asociado al Test: 

Por último, se lleva a cabo la carga de este certificado como una “Experimental Option” durante la configuración del driver: 

Firefox

Para este otro navegador, en lugar de llevar a cabo la instalación de todos los certificados necesarios para la ejecución de la regresión completa en los Nodos asociados al Selenium Grid, de debe de crear una serie de archivos a partir de los archivos .P12 asociados a cada certificado y copiarlos a una carpeta dentro del Framework en la ruta “ser/test/resources/certs”. La consecución de comandos utilizada para esta tarea es la siguiente: 

sudo apt-get install libnss3-tools
cd carpeta
certutil -N -d sql:./firefox_profile --empty-password
pk12util -i ./CERTIFICADO_00000000T.p12 -d sql:./firefox_profile 

Una vez hecho esto, se debe de seleccionar que perfil utilizar antes de la ejecución de las pruebas funcionales: 

 

Enlaces de interés

Documentación de Selenide

Documentación de Cucumber: sintaxis Gherkin

Documentación de Cucumber: qué es el BDD

Documentación de Cucumber: paso de parámetros en los steps

Lista de todas las palabras claves en las condiciones de Selenide y métodos para usarlas

Uso de tags para filtrar features y scenarios.