Creación de un archivo de configuración de YAML de prueba de carga

Completado

Aprenda a configurar la prueba de carga en Azure Load Testing mediante YAML. Use el archivo YAML de configuración de prueba para crear y ejecutar pruebas de carga desde el flujo de trabajo de Acciones de GitHub.

Sintaxis de YAML para la prueba de carga

Una configuración de prueba de carga usa las siguientes claves:

Clave Tipo Obligatorio Valor predeterminado Descripción
version string S Versión de la especificación de prueba de carga. El único valor admitido es v0.1.
testId string S Identificador único de la prueba de carga. El valor debe tener entre 2 y 50 caracteres ([a-z0-9_-]). Para una prueba existente, puede obtener el testId en la página de detalles de la prueba en Azure Portal.
testName string N En desuso. Identificador único de la prueba de carga. Esta configuración se reemplaza por testId. Todavía puede ejecutar pruebas existentes con el campo testName.
displayName string N Nombre para mostrar de la prueba. Este valor se muestra en la lista de pruebas de Azure Portal. Si no se proporciona, se usa testId como nombre para mostrar.
description string N Descripción breve de la prueba. El valor tiene una longitud máxima de 100 caracteres.
testType string S Tipo de prueba. Valores posibles:
  • URL: prueba de carga basada en direcciones URL
  • JMX: prueba de carga basada en JMeter
testPlan string S Referencia al archivo del plan de prueba.
  • En caso de testType: JMX: ruta relativa al script de prueba de JMeter.
  • Si testType: URL: ruta de acceso relativa al archivo JSON de solicitudes.
engineInstances entero S Número de instancias paralelas del motor de pruebas para ejecutar los planes de prueba.
configurationFiles matriz de cadena N Lista de archivos externos, requeridos por el script de prueba. Por ejemplo, archivos de datos CSV, imágenes o cualquier otro archivo de datos.
Azure Load Testing carga todos los archivos de la misma carpeta que el script de prueba. En el script de JMeter, haga solo referencia a archivos externos con el nombre de archivo y quite cualquier información de la ruta de acceso del archivo.
failureCriteria objeto N Lista de criterios de error de prueba de carga.
autoStop cadena o objeto N Detenga automáticamente la prueba de carga cuando el porcentaje de error supere un valor.
Valores posibles:
- disable: no detenga automáticamente una prueba de carga.
properties objeto N Referencias de archivo de propiedades de usuario de JMeter.
zipArtifacts matriz de cadena N Especifica la lista de archivos de artefacto zip. En el caso de los archivos que no sean scripts de JMeter y propiedades de usuario, si el tamaño del archivo supera los 50 MB, comprima en un archivo ZIP. Asegúrese de que el archivo ZIP permanece por debajo de 50 MB de tamaño. Solo se permiten 5 artefactos ZIP con un máximo de 1000 archivos en cada uno y un tamaño sin comprimir de 1 GB. Solo se aplica cuando testType: JMX.
splitAllCSVs boolean N Falso Divida los archivos CSV de entrada uniformemente en todas las instancias del motor de prueba.
secrets objeto N Lista de secretos a los que hace referencia el script de Apache JMeter.
env objeto N Lista de variables de entorno a las que hace referencia el script de Apache JMeter.
certificates objeto N Lista de certificados de cliente para autenticarse con puntos de conexión de aplicación en el script JMeter.
keyVaultReferenceIdentity string N Identificador de recurso de la identidad administrada asignada por el usuario para acceder a los secretos de tu Bóveda de Claves de Azure. Si usa una identidad administrada por el sistema, esta información no es necesaria. Asegúrese de conceder acceso a esta identidad asignada por el usuario al Azure Key Vault.
subnetId string N Identificador de recurso de la subred de red virtual para probar puntos de conexión hospedados de forma privada. Esta subred hospeda las máquinas virtuales del motor de pruebas insertadas.
publicIPDisabled boolean N Deshabilite la implementación de una dirección IP pública, un equilibrador de carga y un grupo de seguridad de red al probar un punto de conexión privado.

El siguiente fragmento de código YAML contiene una configuración de prueba de carga de ejemplo.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
subnetId: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-rg/providers/Microsoft.Network/virtualNetworks/load-testing-vnet/subnets/load-testing
configurationFiles:
  - 'sampledata.csv'
zipArtifacts:
   - bigdata.zip
splitAllCSVs: True
failureCriteria:
  - avg(response_time_ms) > 300
  - percentage(error) > 50
  - GetCustomerDetails: avg(latency) >200
autoStop:
  errorPercentage: 80
  timeWindow: 60
secrets:
  - name: my-secret
    value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
keyVaultReferenceIdentity: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity

Configuración de parámetros de carga

Para simular el tráfico de usuario de la aplicación, puede configurar el patrón de carga y el número de usuarios virtuales para los que desea simular la carga. Azure Load Testing puede escalar el número de usuarios virtuales que simulan el tráfico hacia tu aplicación ejecutando la prueba de carga en muchas instancias de motor de pruebas en paralelo. El patrón de carga determina cómo se distribuye la carga durante la prueba de carga. Algunos ejemplos de patrones de carga son carga lineal, escalonada o pico.

Según el tipo de prueba de carga, basada en direcciones URL o basada en JMeter, tiene diferentes opciones para configurar la carga de destino y el patrón de carga. En la tabla siguiente se enumeran las diferencias entre los dos tipos de prueba.

Tipo de prueba Número de usuarios virtuales Modelo de carga
Basado en direcciones URL (básico) Especifique el número de usuarios virtuales de destino en la configuración de prueba de carga. Patrón de carga lineal, basado en el tiempo de aumento y el número de usuarios virtuales.
Basada en dirección URL (avanzada) Especifique el número de motores de prueba y el número de usuarios virtuales por instancia en la configuración de prueba de carga. Configure el patrón de carga (lineal, paso, pico).
Basado en JMeter Especifique el número de motores de prueba en la configuración de pruebas de carga. Especifique el número de usuarios virtuales en el script de prueba. Configure el patrón de carga en el script de prueba.

Configuración de parámetros de carga para pruebas basadas en JMeter

En el caso de los flujos de trabajo de GitHub Action, configure el número de instancias del motor en el archivo de configuración de pruebas del YAML. El archivo de configuración de pruebas de carga se almacena junto con el archivo de script de prueba de JMeter en el repositorio de control de código fuente.

En el ejemplo siguiente se configura una prueba de carga que se ejecuta en 10 instancias del motor de pruebas en paralelo.

Configura el número de instancias del motor de pruebas en la configuración engineInstances.

    version: v0.1
    testId: SampleTestCICD
    displayName: Sample test from CI/CD
    testPlan: SampleTest.jmx
    description: Load test website home page
    engineInstances: 10