Creación de un archivo de configuración de YAML de prueba de carga
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:
|
|
testPlan |
string | S | Referencia al archivo del plan de prueba.
|
|
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