Créer un fichier de configuration YAML de test de charge
Découvrez comment configurer votre test de charge dans Azure Load Testing à l’aide de YAML. Vous utilisez le fichier YAML de configuration de test pour créer et exécuter des tests de charge à partir de votre workflow GitHub Actions.
Syntaxe YAML pour le test de charge
Une configuration de test de charge utilise les clés suivantes :
| Clé | Type | Obligatoire | Valeur par défaut | Descriptif |
|---|---|---|---|---|
version |
chaîne | O | Version de la spécification du test de charge. La seule valeur prise en charge est v0.1. |
|
testId |
chaîne | O | Identificateur unique du test de charge. La valeur doit être comprise entre 2 et 50 caractères ([a-z0-9_-]). Pour un test existant, vous pouvez obtenir le testId à partir de la page de détails du test dans le portail Azure. |
|
testName |
chaîne | N | Option déconseillée. Identificateur unique du test de charge. Ce paramètre est remplacé par testId. Vous pouvez toujours exécuter des tests existants avec le champ testName. |
|
displayName |
chaîne | N | Nom d’affichage du test. Cette valeur est affichée dans la liste des tests dans le portail Azure. S’il n’est pas fourni, testId est utilisé comme nom d'affichage. |
|
description |
chaîne | N | Brève description du test. La valeur a une longueur maximale de 100 caractères. | |
testType |
chaîne | O | Type de test. Valeurs possibles :
|
|
testPlan |
chaîne | O | Référence au fichier de plan de test.
|
|
engineInstances |
entier | O | Nombre d’instances de moteur de test parallèles pour l’exécution du plan de test. | |
configurationFiles |
tableau de chaînes | N | Liste des fichiers externes requis par le script de test. Par exemple, les fichiers de données CSV, les images ou tout autre fichier de données. Azure Load Testing charge tous les fichiers dans le même dossier que le script de test. Dans le script JMeter, ne faites référence aux fichiers externes qu'en utilisant le nom du fichier et supprimez toutes les informations relatives au chemin d'accès. |
|
failureCriteria |
objet | N | Liste des critères d’échec du test de charge. | |
autoStop |
chaîne ou objet | N | Arrêtez automatiquement le test de charge lorsque le pourcentage d’erreur dépasse une valeur. Valeurs possibles : - disable: n’arrêtez pas automatiquement un test de charge. |
|
properties |
objet | N | Références du fichier de propriétés de l’utilisateur JMeter. | |
zipArtifacts |
tableau de chaînes | N | Spécifie la liste des fichiers d’artefacts zip. Pour les fichiers autres que les scripts JMeter et les propriétés utilisateur, si la taille du fichier dépasse 50 Mo, compressez-les dans un fichier ZIP. Vérifiez que le fichier ZIP reste inférieur à 50 Mo de taille. Seuls 5 artefacts ZIP sont autorisés avec un maximum de 1 000 fichiers dans chaque fichier et une taille non compressée de 1 Go. S’applique uniquement quand testType: JMX. |
|
splitAllCSVs |
booléen | N | Faux | Fractionnez uniformément les fichiers CSV d’entrée sur toutes les instances du moteur de test. |
secrets |
objet | N | Liste des secrets référencés par le script Apache JMeter. | |
env |
objet | N | Liste des variables d’environnement référencées par le script Apache JMeter. | |
certificates |
objet | N | Liste des certificats clients pour l’authentification avec les points de terminaison d’application dans le script JMeter. | |
keyVaultReferenceIdentity |
chaîne | N | ID de ressource de l’identité managée affectée par l’utilisateur pour accéder aux secrets à partir de votre coffre de clés Azure. Si vous utilisez une identité managée par le système, ces informations ne sont pas nécessaires. Veillez à accorder à cette identité affectée par l’utilisateur l’accès à votre coffre de clés Azure. | |
subnetId |
chaîne | N | ID de ressource du sous-réseau de réseau virtuel pour tester les points de terminaison hébergés en privé. Ce sous-réseau héberge les machines virtuelles du moteur de test injectées. | |
publicIPDisabled |
booléen | N | Désactivez le déploiement d’une adresse IP publique, d’un équilibreur de charge et d’un groupe de sécurité réseau lors du test d’un point de terminaison privé. |
L’extrait de code YAML suivant contient un exemple de configuration de test de charge.
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
Configurer les paramètres de chargement
Pour simuler le trafic utilisateur pour votre application, vous pouvez configurer le modèle de charge et le nombre d’utilisateurs virtuels pour utilisant lequel vous souhaitez simuler la charge. Azure Load Testing peut effectuer un scale-out du nombre d’utilisateurs virtuels qui simulent le trafic vers votre application en exécutant le test de charge sur de nombreuses instances de moteur de test parallèles. Le modèle de charge détermine la façon dont la charge est distribuée pendant la durée du test de charge. Des exemples de modèles de charge sont linéaires, pas à pas ou charge de pic.
Selon le type de test de charge, basé sur l’URL ou JMeter, vous avez différentes options pour configurer la charge cible et le modèle de charge. Le tableau suivant répertorie les différences entre les deux types de test.
| Type de test | Nombre d’utilisateurs virtuels | Modèle de charge |
|---|---|---|
| Basé sur l’URL (de base) | Spécifiez le nombre cible d’utilisateurs virtuels dans la configuration du test de charge. | Modèle de charge linéaire, basé sur le temps d’accélération et le nombre d’utilisateurs virtuels. |
| Basé sur l’URL (avancé) | Spécifiez le nombre de moteurs de test et le nombre d’utilisateurs virtuels par instance dans la configuration du test de charge. | Configurez le modèle de charge (linéaire, étape, pic). |
| Basé sur JMeter | Spécifiez le nombre de moteurs de test dans la configuration du test de charge. Spécifiez le nombre d’utilisateurs virtuels dans le script de test. | Configurez le modèle de charge dans le script de test. |
Configurer les paramètres de charge pour les tests basés sur JMeter
Pour les flux de travail GitHub Action, vous configurez le nombre d’instances de moteur dans le fichier de configuration de test YAML. Vous stockez le fichier de configuration de test de charge en même temps que le fichier de script de test JMeter dans le référentiel de contrôle de code source.
L’exemple suivant configure un test de charge qui s’exécute sur 10 instances de moteur de test parallèles.
Configurez le nombre d’instances de moteur de test dans le paramètre engineInstances.
version: v0.1
testId: SampleTestCICD
displayName: Sample test from CI/CD
testPlan: SampleTest.jmx
description: Load test website home page
engineInstances: 10