Configurar manualmente el flujo de trabajo de CI/CD para ejecutar pruebas de carga

Puede automatizar una prueba de carga en Azure Load Testing mediante la creación de una canalización de CI/CD. En este artículo, aprenderá a configurar manualmente acciones de GitHub, Azure Pipelines u otras herramientas de CI para invocar una prueba existente en Azure Load Testing. Automatice una prueba de carga para validar continuamente el rendimiento y la estabilidad de la aplicación bajo carga.

Para agregar una prueba de carga existente a una canalización de CI/CD:

  • Configure la autenticación de servicio para permitir que la herramienta de CI se conecte al recurso de prueba de carga de Azure.
  • Agregue archivos de entrada de prueba de carga al repositorio, como el script de prueba de JMeter y la configuración de YAML de prueba de carga.
  • Actualice la definición de canalización de CI/CD para invocar Azure Load Testing.

Requisitos previos

Configuración de la autenticación del servicio

Para ejecutar una prueba de carga en el flujo de trabajo de CI/CD, es necesario conceder permiso al flujo de trabajo de CI/CD para acceder al recurso de prueba de carga. Cree una entidad de servicio para el flujo de trabajo de CI/CD y asigne el rol RBAC de Colaborador de pruebas de carga de Azure.

Creación de una conexión de servicio en Azure Pipelines

En Azure Pipelines, creará una conexión de servicio en el proyecto de Azure DevOps para acceder a los recursos de la suscripción de Azure. Al crear la conexión de servicio, Azure DevOps crea un objeto de entidad de servicio de Microsoft Entra.

  1. Inicie sesión en su organización de Azure DevOps (https://dev.azure.com/<your-organization>) y vaya a su proyecto.

    Reemplace el marcador de posición de texto <your-organization> por el identificador del proyecto.

  2. Seleccione Configuración del proyecto>Conexiones de servicios>+ Nueva conexión de servicio.

  3. En el panel Nueva conexión de servicio, seleccione Azure Resource Manager y, a continuación, seleccione Siguiente.

  4. Seleccione el método de autenticación Entidad de servicio (automática) y Siguiente.

  5. Escriba la información de conexión de servicio y, después, seleccione Guardar para crear la conexión de servicio.

    Campo Value
    Nivel de ámbito Suscripción.
    Suscripción Seleccione la suscripción de Azure que hospeda el recurso de prueba de carga.
    Grupos de recursos Seleccione el grupo de recursos que contiene el recurso de prueba de carga.
    Nombre de conexión de servicio Escriba un nombre único para la conexión de servicio.
    Concesión de permiso de acceso a todas las canalizaciones Seleccionada.
  6. En la lista de conexiones de servicio, seleccione la que creó anteriormente y, a continuación, seleccione Administrar entidad de servicio.

    Screenshot that shows selections for managing a service principal.

    Azure Portal se abre en una pestaña independiente del explorador y muestra los detalles de la entidad de servicio.

  7. En Azure Portal, copie el valor Nombre para mostrar.

    Use este valor en el paso siguiente para conceder permisos para ejecutar pruebas de carga en la entidad de servicio.

Concesión de acceso a Azure Load Testing

Azure Load Testing usa RBAC de Azure para conceder permisos para realizar actividades específicas en el recurso de prueba de carga. Para ejecutar una prueba de carga desde la canalización de CI/CD, concede el rol Colaborador de pruebas de carga a la entidad de servicio.

  1. En Azure Portal, vaya al recurso de Azure Load Testing.

  2. Seleccione Control de acceso (IAM)>Agregar>Agregar asignación de roles.

  3. En la pestaña Rol, seleccione Colaborador de pruebas de carga en la lista de roles de funciones de trabajo.

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  4. En la pestaña Miembros, seleccione Seleccionar miembros y, a continuación, use el nombre para mostrar que copió anteriormente para buscar en la entidad de servicio.

  5. Seleccione la entidad de servicio y, a continuación, seleccione Seleccionar.

  6. En la pestaña Revisar + asignar, seleccione Revisar + asignar para agregar la asignación de roles.

Ahora es posible usar la conexión de servicio en la definición de flujo de trabajo de Azure Pipelines para acceder al recurso de prueba de carga de Azure.

Adición de archivos de prueba de carga en el repositorio

Para ejecutar una prueba de carga con Azure Load Testing en un flujo de trabajo de CI/CD, debe agregar todos los archivos de entrada de prueba de carga en el repositorio de control de código fuente.

Si no tiene una prueba de carga existente, agregue los siguientes archivos al repositorio de código fuente:

  • Archivo YAML de configuración de pruebas de carga. Obtenga información sobre cómo crear un archivo YAML de configuración de pruebas de carga.
  • Archivo de plan de prueba. En el caso de las pruebas basadas en JMeter, agregue un script de prueba de JMeter (JMX archivo). En el caso de las pruebas basadas en direcciones URL, agregue un archivo JSON de solicitudes.
  • Cualquier archivo de propiedades de usuario de JMeter.
  • Cualquier archivo de datos de entrada que use el plan de prueba. Por ejemplo, archivos de datos CSV.

Si tiene una prueba de carga existente, puede descargar los valores de configuración y todos los archivos de entrada directamente desde Azure Portal. Realice los pasos siguientes para descargar los archivos de entrada de una prueba de carga existente en Azure Portal:

  1. En Azure Portal, vaya al recurso de Azure Load Testing.

  2. En el panel izquierdo, seleccione Pruebas de carga para ver la lista de pruebas y seleccione la que desee.

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. Seleccione los puntos suspensivos (...) que hay junto a la serie de pruebas con la que trabaje y, después, seleccione Descargar archivo de entrada.

    El explorador descarga una carpeta comprimida que contiene los archivos de entrada de pruebas de carga.

    Screenshot that shows how to download the results file for a load test run.

  4. Use cualquier herramienta zip para extraer los archivos de entrada.

    La carpeta contiene los archivos siguientes:

    • config.yaml: el archivo de configuración YAML de prueba de carga. Haga referencia a este archivo en la definición de flujo de trabajo de CI/CD.
    • .jmx: el script de prueba de JMeter
    • Cualquier archivo de entrada adicional, como archivos .csv o archivos de propiedades de usuario necesarios para ejecutar la prueba de carga.
  5. Confirme todos los archivos de entrada extraídos en el repositorio de control de código fuente.

    Use el repositorio de código fuente en el que se configura la canalización de CI/CD.

Actualización de la definición de flujo de trabajo de CI/CD

Azure Load Testing admite tanto Acciones de GitHub como Azure Pipelines para ejecutar pruebas de carga.

Instalar la extensión de Azure Load Testing para Azure DevOps

Para crear y ejecutar una prueba de carga, la definición de flujo de trabajo de Azure Pipelines usa la extensión de tarea de Azure Load Testing del marketplace de Azure DevOps.

  1. Abra la extensión de tarea de Azure Load Testing en el marketplace de Azure DevOps y seleccione Get it free (Obtener gratis).

  2. Seleccione la organización de Azure DevOps y, después, seleccione Install (Instalar) para instalar la extensión.

    Si no tiene privilegios de administrador para la organización de Azure DevOps seleccionada, seleccione Request (Solicitar) para solicitar a un administrador que instale la extensión.

Actualización del flujo de trabajo de Azure Pipelines

Actualice el flujo de trabajo de Azure Pipelines para ejecutar una prueba de carga para el recurso de prueba de carga de Azure.

  1. Inicie sesión en su organización de Azure DevOps (https://dev.azure.com/<your-organization>) y vaya a su proyecto.

  2. Seleccione Canalizaciones en el panel de navegación izquierdo, seleccione la canalización y, a continuación, seleccione Editar para editar la definición del flujo de trabajo.

    Como alternativa, seleccione Crear canalización para crear una canalización nueva en Azure Pipelines.

  3. Use la tarea AzureLoadTest para ejecutar la prueba de carga.

    Especifique el archivo de configuración de prueba de carga que exportó anteriormente en la propiedad loadTestConfigFile.

    Reemplace los marcadores de posición de texto <load-testing-resource> y <load-testing-resource-group> por el nombre del recurso de prueba de carga de Azure y el grupo de recursos.

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    Opcionalmente, puede pasar parámetros o secretos a la prueba de carga mediante la propiedad env o secrets.

  4. Use la tarea publish para publicar los resultados de la prueba como artefactos en la ejecución del flujo de trabajo de Azure Pipelines.

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

Visualización de resultados de pruebas de carga

Al ejecutar una prueba de carga desde la canalización de CI/CD, podrá ver los resultados del resumen directamente en el registro de salida de CI/CD. Si publicó los resultados de la prueba como un artefacto de canalización, también podrá descargar un archivo .csv para generar informes adicionales.

Screenshot that shows the workflow logging information.

Limpieza de recursos

Si no planea usar ninguno de los recursos que ha creado, elimínelos para no incurrir en cargos.

  1. Quite los cambios de Azure Pipelines:

    1. Inicie sesión en su organización de Azure DevOps (https://dev.azure.com/<your-organization>) y vaya a su proyecto.

      Reemplace el marcador de posición de texto <your-organization> por el identificador del proyecto.

    2. Si creó una nueva canalización":

      1. Seleccione Canalizaciones y elija la canalización.

      2. Seleccione los puntos suspensivos y, a continuación, seleccione Eliminar.

        Screenshot that shows how to delete an Azure Pipelines definition.

      3. Escriba el nombre de la canalización y, a continuación, seleccione Eliminar para eliminar la canalización.

    3. Si modificó una definición de flujo de trabajo existente, deshaga las modificaciones para ejecutar la prueba de carga y guarde el flujo de trabajo.

  2. Quite la conexión de servicio:

    1. Seleccione Configuración del proyecto>Conexiones de servicio y, a continuación, seleccione la conexión de servicio.
    2. Seleccione Editar>Eliminar para quitar la conexión de servicio.

Pasos siguientes

Pase al siguiente artículo para aprender a identificar las regresiones de rendimiento mediante la definición de criterios de error de prueba y la comparación de series de pruebas.