DEV Community

Daniel San
Daniel San

Posted on

CI/CD con Synthetic Monitoring de Datadog y Bitbucket pipelines

En este artículo te mostraré como enlazar la herramienta Synthetic Monitoring de
Datadog HQ
con la herramienta Pipelines de
Atlassian Bitbucket
y tener un panel de control completo de pruebas CI/CD.

Image description

DataDog Synthetic Monitoring
Esta herramienta permite automatizar pruebas en tus procesos de despliegue de aplicaciones ya sea en ambiente staging o producción.

En este ejemplo vamos a realizar una prueba básica a la página inicial de BoxMagic (https://go.boxmagic.app) mediante diferentes navegadores y dispositivos para que sean ejecutadas cada vez que se realiza un push en el repositorio del proyecto en Bitbucket.

Browser Test
Para comenzar ingresamos al panel de Datadog y seleccionamos el menú UX Monitoring / Synthetic Tests

Image description

Creamos un nuevo test de tipo Browser Test

Image description

Agregamos la URL donde se ejecutará el Test, en este caso será https://go.boxmagic.app (nuestra url inicial), agregamos el nombre y el ambiente. Luego seleccionamos que navegadores y dispositivos serán los que realizarán las pruebas.

Image description

Se pueden agregar las ubicaciones desde donde se realizarán las pruebas.

Image description

Por último configuramos la frecuencia en que se ejecutará esta prueba y además podemos configurar el monitoreo, alertas y permisos.

Image description

Pruebas
En este caso solo crearemos una prueba de Assertion / Test an element’s content que permite verificar el contenido de un elemento dentro de la página:

Image description

Solo debes hacer click en el elemento y completar los datos del formulario, en este caso se está comprobando si el div contenga la frase “Ingresa aquí”.

Seleccionamos Apply para finalizar y comenzar a ejecutar la prueba.

Api Keys y test public ID
Para que esta prueba pueda correr cada vez que se ejecute el pipeline de bitbucket debemos obtener 3 variables Public Test ID, APP Key y API Key.

El Public Test ID se obtiene seleccionando la prueba que acabamos de realizar

Image description

El APP Key y el API Key se obtienen dentro del menú Organization Settings donde debes crear un nuevo APP Key y un API Key.

NPM datadog-ci
Puedes ejecutar estas pruebas de forma local con npm para probar que estén correctamente configuradas.

Primero ejecutamos la instalación con npm

npm install -g @datadog/datadog-ci

Luego ejecutamos synthetics run-test con los parámetros que obtuvimos del paso anterior.

datadog-ci synthetics run-tests --public-id $DD_TEST_PUBLIC_ID --apiKey $DD_API_KEY --appKey $DD_APP_KEY

El resultado debería verse de esta forma si todas las pruebas se realizaron correctamente:

Image description

Bitbucket Pipeline
Con todas las pruebas configuradas solo nos hace falta agregarlas al pipeline de bitbucket para que sean ejecutadas cada vez que se realice un push al repositorio

Agregamos las variables de entorno a nuestro repositorio en bitbucket en Repository Setting / Repository variables

Image description

En el archivo bitbucket-pipeline.yml agregamos los comandos para ejecutar las pruebas.

pipelines:
     default:
           - step:
               name: datadog-synthetics testing
               image: node:15-alpine3.10
               script:
                 - npm install -g @datadog/datadog-ci
                 - datadog-ci synthetics run-tests --public-id        $DD_TEST_PUBLIC_ID  --apiKey $DD_API_KEY --appKey $DD_APP_KEY
Enter fullscreen mode Exit fullscreen mode

Una vez que realizas un push al repositorio debes ingresar al del menú Pipelines de bitbucket podrás ver la ejecución de las pruebas.

Image description

Puedes ver la realización de cada prueba en el panel de Datadog

Image description

También puedes ver la ejecución de las pruebas y en la columna RUN TYPE deberías poder observar que fueron ejecutadas por el pipeline de CI/CD

Image description

Eso es todo, ya puedes comenzar a crear todo tipo de pruebas dentro de datadog, se ejecutarán automáticamente en tu CI/CD y de esta forma te aseguras que cada push que se realice al repositorio deba pasar todas las pruebas para que se pueda desplegar en ambientes de staging o producción.

Top comments (0)