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
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una prueba de Azure Load Testing. Cree una prueba de carga basada en direcciones URL o use un script JMeter existente para crear una prueba de carga.
- Una organización y proyecto de Azure DevOps. Si no tiene una organización de Azure DevOps, puede crear una gratis. Si necesita ayuda para comenzar a usar Azure Pipelines, consulte Creación de la primera canalización.
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.
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.Seleccione Configuración del proyecto>Conexiones de servicios>+ Nueva conexión de servicio.
En el panel Nueva conexión de servicio, seleccione Azure Resource Manager y, a continuación, seleccione Siguiente.
Seleccione el método de autenticación Entidad de servicio (automática) y Siguiente.
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. En la lista de conexiones de servicio, seleccione la que creó anteriormente y, a continuación, seleccione Administrar entidad de servicio.
Azure Portal se abre en una pestaña independiente del explorador y muestra los detalles de la entidad de servicio.
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.
En Azure Portal, vaya al recurso de Azure Load Testing.
Seleccione Control de acceso (IAM)>Agregar>Agregar asignación de roles.
En la pestaña Rol, seleccione Colaborador de pruebas de carga en la lista de roles de funciones de trabajo.
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.
Seleccione la entidad de servicio y, a continuación, seleccione Seleccionar.
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:
En Azure Portal, vaya al recurso de Azure Load Testing.
En el panel izquierdo, seleccione Pruebas de carga para ver la lista de pruebas y seleccione la que desee.
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.
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.
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.
Abra la extensión de tarea de Azure Load Testing en el marketplace de Azure DevOps y seleccione Get it free (Obtener gratis).
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.
Inicie sesión en su organización de Azure DevOps (
https://dev.azure.com/<your-organization>
) y vaya a su proyecto.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.
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
osecrets
.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.
Limpieza de recursos
Si no planea usar ninguno de los recursos que ha creado, elimínelos para no incurrir en cargos.
Quite los cambios de Azure Pipelines:
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.Si creó una nueva canalización":
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.
Quite la conexión de servicio:
- Seleccione Configuración del proyecto>Conexiones de servicio y, a continuación, seleccione la conexión de servicio.
- 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.