Ejecutando diferentes pruebas en varias URLs

Normalmente en este tipo de pruebas, se suelen comprobar varias URLs de la aplicación para ver como se comporta diferentes puntos de ella.

¿Cómo podríamos ejecutar las pruebas en varias URLs al mismo tiempo?

Manos a la obra

Para ello, Github Actions ofrece una configuración para poder ejecutar el mismo job sustituyendo variables por los diferentes valores que le indiquemos:

./.github/workflows/load-test.workflow.yml

name: Pruebas de carga

on:
  workflow_dispatch:

jobs:
  load-test:
    runs-on: ubuntu-latest
+   strategy:
+     matrix:
+       url:
+         - https://www.basefactor.com/
+         - https://www.basefactor.com/blog
    steps:
      - name: Clonar repositorio
        uses: actions/checkout@v2
      - name: Ejecutar pruebas de carga
        uses: ./load-test-action
        with:
-         url: https://www.basefactor.com/
+         url: ${{matrix.url}}
          number-of-requests: 10
          concurrency: 2

Además, también podríamos alimentar diferentes valores de los parámetros de number-of-requests y concurrency cuando ejecutemos el flujo de trabajo:

./.github/workflows/load-test.workflow.yml

name: Pruebas de carga

on:
  workflow_dispatch:
+   inputs:
+     number-of-requests:
+       description: 'Número de peticiones en total'
+       required: false
+       default: '1000'
+     concurrency:
+       description: 'Número de peticiones concurrentes'
+       required: false
+       default: '50'

jobs:
  load-test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        url:
          - https://www.lemoncode.tv/
          - https://www.lemoncode.tv/curso/graficas-con-d3js
    steps:
      - name: Clonar repositorio
        uses: actions/checkout@v2
      - name: Ejecutar pruebas de carga
        uses: ./load-test-action
        with:
          url: ${{matrix.url}}
-         number-of-requests: 10
+         number-of-requests: ${{github.event.inputs.number-of-requests}}
-         concurrency: 2
+         concurrency: ${{github.event.inputs.concurrency}}

Subimos los cambios al repositorio:

git add .
git commit -m "pruebas con multiples urls"
git push

Y por último, volvemos a ejecutar el flujo, con los valores que queramos.

Ejecutar flujo de trabajo con diferentes parámetros

Esta acción la hemos estado ejecutando de manera local a éste proyecto. Como punto final, se podría publicar en el Marketplace de Github donde la comunidad y el propio equipo de Github publican todas las acciones disponibles y se podría utilizar de la misma manera que hemos usado la acción checkout anteriormente.

Para más información podéis consultarla en el siguiente enlace.

¿Te gusta el mundo Devops?

En Lemoncode impartimos un Bootcamp Devops Online, en él encontrarás todos los recursos necesarios: clases de los mejores profesionales del sector, tutorías en cuanto las necesites y ejercicios para desarrollar lo aprendido en los distintos módulos. Si quieres saber más puedes pinchar aquí para más información sobre este Bootcamp Devops.