Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'un scénario de test
La création d'un scénario de test comporte quatre étapes principales : configuration des paramètres généraux, définition du scénario, modification des modèles de trafic et révision de votre configuration.
Étape 1 : Paramètres généraux
Configurez les paramètres de base de votre test de charge, notamment le nom du test, sa description et les options de configuration générales.
Identification des tests
-
Nom du test (obligatoire) - Un nom descriptif pour votre scénario de test
-
Description du test (obligatoire) - Détails supplémentaires concernant l'objectif et la configuration du test
-
Tags (facultatif) - Ajoutez jusqu'à 5 tags pour classer et organiser vos scénarios de test
Options de planification
Configurez le moment où le test doit être exécuté :
-
Exécuter maintenant - Exécutez le test immédiatement après la création.
-
Exécuter une fois : planifiez l'exécution du test à une date et à une heure spécifiques.
-
Exécuter selon un calendrier : utilisez la planification basée sur cron pour exécuter des tests automatiquement à intervalles réguliers. Vous pouvez choisir parmi des modèles courants (toutes les heures, tous les jours, toutes les semaines) ou définir une expression cron personnalisée. Pour plus de détails sur le format cron accepté, les modèles pris en charge et les contraintes, reportez-vous à la référence des expressions Cron dans le guide du développeur.
Workflow de planification
Lorsque vous planifiez un test, le flux de travail suivant s'exécute :
-
Les paramètres de planification sont envoyés à l'API de la solution via Amazon API Gateway.
-
L'API transmet les paramètres à une fonction Lambda qui crée un planning Amazon EventBridge Scheduler configuré pour être exécuté à la date spécifiée.
-
Pour les tests ponctuels (Exécuter une seule fois), le planning du EventBridge planificateur invoque la fonction
api-servicesLambda à la date et à l'heure spécifiées, qui exécute le test. -
Pour les tests récurrents (Exécuter selon un calendrier), le planning du EventBridge planificateur invoque la fonction
api-servicesLambda immédiatement et selon la cadence définie par l'expression cron ou rate jusqu'à la date d'expiration.
Données en direct
Cochez la case Inclure les données en temps réel pour afficher les mesures en temps réel pendant l'exécution de votre test. Lorsque cette option est activée, vous pouvez surveiller :
-
Temps de réponse moyen.
-
Nombre d'utilisateurs virtuels.
-
Les demandes réussies comptent.
-
Nombre de demandes échouées.
La fonction de données en temps réel fournit des graphiques en temps réel avec des données agrégées à des intervalles d'une seconde. Pour plus d'informations, reportez-vous à la section Surveillance à l'aide de données en temps réel.
Étape 2 : Configuration du scénario
Définissez le scénario de test spécifique et sélectionnez votre cadre de test préféré.
Sélection du type de test
Choisissez le type de test de charge que vous souhaitez effectuer :
-
Point de terminaison HTTP simple : testez un seul point de terminaison d'API ou une seule page Web avec une configuration simple.
-
JMeter - Téléchargez des scripts de test JMeter (fichiers .jmx ou archives .zip).
-
k6 - Téléchargez des scripts de test k6 (fichiers .js ou archives .zip).
-
Locust - Téléchargez des scripts de test Locust (fichiers .py ou archives .zip).
Note
Les quatre types de tests s'appuient sur des composants tiers. La solution exécute des tests via le framework d'automatisation des tests Taurus, qui exécute JMeter, k6 ou Locust selon le type de test ; les tests HTTP Endpoint simples sont convertis en un plan de test JMeter et exécutés par le package Apache JMeter. Avant de créer un test, passez en revue les frameworks de Third-party test pour prendre en compte les considérations de sécurité, les informations de licence et les options de correctifs.
Mode de forme du trafic
Choisissez le côté qui contrôle la charge générée par le test. Le mode que vous sélectionnez modifie les champs affichés par la console à l'étape 3 : Forme du trafic.
-
Standard : la solution contrôle la charge. Vous définissez les utilisateurs virtuels, la période de montée en puissance et la durée d'attente. Standard est le mode par défaut et c'est le seul mode qui prend en charge les tests Simple HTTP Endpoint.
-
Natif : votre script contrôle la charge. La solution exécute votre script sous la propre ligne de commande du framework de test et définit uniquement le nombre de tâches par région et une durée de sécurité.
Native nécessite le téléchargement d'un script. Vous ne pouvez donc pas le sélectionner lorsque vous choisissez le type de test Simple HTTP Endpoint. Pour obtenir des définitions complètes et des conseils sur le mode à choisir, reportez-vous à la section Modes liés à la forme du trafic.
Configuration du point de terminaison HTTP
Lorsque « Simple HTTP Endpoint » est sélectionné, la solution génère un plan de test JMeter à partir de votre configuration et l'exécute avec le binaire Apache JMeter fourni. Configurez ces paramètres :
- Point de terminaison HTTP (obligatoire)
-
Entrez l'URL complète du point de terminaison que vous souhaitez tester. Par exemple :
https://api.example.com/users. Assurez-vous que le point de terminaison est accessible depuis l'infrastructure AWS. - Méthode HTTP (obligatoire)
-
Sélectionnez la méthode HTTP pour vos requêtes. La valeur par défaut est
GET. Les autres options incluentPOSTPUTDELETE,PATCH,HEAD, etOPTIONS. - En-tête de demande (facultatif)
-
Ajoutez des en-têtes HTTP personnalisés à vos requêtes. Parmi les exemples courants, citons :
-
Content-Type: application/json -
Authorization: Bearer <token> -
User-Agent: LoadTest/1.0Choisissez Ajouter un en-tête pour inclure plusieurs en-têtes.
-
- Charge utile corporelle (en option)
-
Ajoutez le contenu du corps de requête pour les requêtes POST ou PUT. Supporte les formats JSON, XML ou texte brut. Par exemple :
{"userId": 123, "action": "test"}.
Scripts du framework de test
Lorsque vous utilisez JMeter, k6 ou Locust, téléchargez votre fichier de script de test ou une archive .zip contenant votre script de test et les fichiers associés.
Pour JMeter, vous pouvez inclure des plugins personnalisés dans un /plugins dossier de votre archive .zip.
Pour Locust, un script de test dans une archive .zip doit être nommé. locustfile.py Pour installer des packages Python tiers dans le conteneur au moment de l'exécution, incluez un requirements.txt fichier dans l'archive et, éventuellement, un packages sous-répertoire de fichiers Wheel pour les installer sans accès à Internet. Pour plus d'informations, reportez-vous à la section Tests Tests acridiens antiacridiens.
Important
En mode Standard, la solution contrôle la charge et remplace ce que déclare votre script. Votre script de test (JMeter, k6 ou Locust) peut définir la simultanéité (utilisateurs virtuels), les taux de transaction (TPS), les temps de montée en puissance et d'autres paramètres de charge. La solution applique plutôt les valeurs que vous spécifiez dans l'écran Traffic Shape. Cette configuration contrôle le nombre de tâches, la simultanéité (utilisateurs virtuels par tâche), la durée de montée en puissance et la durée d'attente pour l'exécution du test.
En mode natif, votre script contrôle la charge et la solution ne transmet aucun paramètre de charge au framework. Pour connaître la différence entre les deux modes, reportez-vous à la section Modes de forme du trafic.
Durée de sécurité (mode natif)
Lorsque vous sélectionnez le mode natif, la console affiche un champ Durée de sécurité à côté du téléchargement du script. La valeur par défaut est de 4 heures et la durée maximale est de 24 heures.
En mode natif, la durée de sécurité met fin à un test qui s'exécute plus longtemps que prévu, car c'est votre script qui décide de la fin de l'exécution. C'est un gardien, pas un calendrier. Si le test est toujours en cours à l'expiration de la durée, la solution arrête le framework de test. Il conserve les résultats pour la partie exécutée et enregistre l'exécution comme étant terminée plutôt que comme ayant échoué. Réglez-le au-dessus de l'exécution la plus longue dont vous pensez que le script aura besoin.
Étape 3 : Forme du trafic
Configurez la façon dont le trafic sera distribué pendant votre test, y compris la prise en charge multirégionale.
Modes de circulation
La solution propose deux modes de configuration du trafic, Standard et Native. Ils diffèrent selon le côté qui contrôle le chargement : la solution ou le script que vous téléchargez. Vous sélectionnez le mode à l'étape 2 : Configuration du scénario, et il détermine lequel des champs ci-dessous s'applique.
Note
Le mode natif est une fonctionnalité de prévisualisation de la version 4.3.0. Le mode standard est le mode par défaut et le comportement que la solution a toujours utilisé.
Standard
Le mode standard permet à la solution de contrôler la charge. Vous définissez le nombre de tâches Fargate par région, le nombre d'utilisateurs virtuels simultanés par tâche, une période de montée en puissance et une durée d'attente. La solution exécute votre test via le framework d'automatisation Taurus, qui traduit ces valeurs dans les propres contrôles de charge du framework sous-jacent. Taurus a la priorité sur le chargement déclaré par votre script, donc un bloc d'options k6, un groupe de threads Locust LoadTestShape ou JMeter est réécrit ou ignoré. Les utilisateurs virtuels d'une région sont le nombre de tâches multiplié par la simultanéité pour chaque tâche, et la forme est la même quel que soit le cadre que vous avez choisi. C'est ainsi que tous les tests étaient exécutés avant la version 4.3.0, de sorte que les scénarios créés précédemment continuent de se comporter exactement comme ils le faisaient et ne nécessitent aucune modification.
Choisissez Standard lorsque la forme de charge n'appartient pas au script, qu'elle est définie depuis la console, l'interface de ligne de commande ou un agent. Le mode Standard est le seul qui vous permet de définir un nombre exact d'utilisateurs virtuels et de modifier la forme de montée en puissance et de maintien sans toucher au script. Seul Standard prend en charge le type de point de terminaison HTTP simple, dans lequel la solution génère le plan de test pour vous. Utilisations typiques : un contrôle de capacité échelonné entre 500 et 5 000 utilisateurs virtuels, une régression nocturne avec 1 000 utilisateurs pendant dix minutes, ou toute comparaison nécessitant une rampe identique. Sa limite est l'expressivité. Tout ce que Taurus ne peut pas représenter n'est pas disponible ici, y compris plusieurs scénarios pondérés, des seuils par étape et des exécuteurs testamentaires.
Autochtone
Le mode natif permet à votre script de contrôler la charge. La solution exécute le fichier que vous avez chargé via la propre ligne de commande du framework : jmeter -n -tk6 run, oulocust --headless. Il ne transmet aucun indicateur de chargement. Votre script est donc la seule autorité sur le trafic qu'il génère et la solution ne le réécrit jamais. Deux paramètres restent à régler : le nombre de tâches Fargate à lancer par région et la durée de sécurité requise pouvant aller jusqu'à 24 heures. La durée de sécurité est une protection contre un script qui n'existe jamais, pas un calendrier. Si un test est toujours en cours à l'expiration de la durée, la solution arrête le framework, collecte les résultats de la partie exécutée et enregistre l'exécution comme terminée plutôt que comme ayant échoué. Chaque tâche s'exécute comme un processus cadre indépendant sans coordination entre les tâches. Ainsi, une région génère une copie complète de la charge déclarée de votre script pour chaque tâche. Par exemple, un script k6 contenant 200 utilisateurs virtuels, exécuté sur cinq tâches, place 1 000 utilisateurs virtuels sur la cible. Le nombre de tâches est donc le seul contrôle de charge que Native vous donne, et il se déplace en multiples entiers de ce que le script déclare. Pour modifier la rampe, le temps d'attente ou le nombre d'utilisateurs virtuels lui-même, vous devez modifier le script.
Choisissez Native si vous souhaitez exécuter un script exactement tel qu'il a été écrit. Un script qui s'exécute déjà localement ou dans CI s'exécute inchangé sur la solution, ce qui est la principale raison pour laquelle vous avez choisi Native. Native préserve tout ce que le framework peut exprimer : scénarios, étapes et seuils k6 ; LoadTestShape classes Locust et ensembles de tâches pondérés ; temporisateurs JMeter et groupes de threads. Choisissez-le lorsque la forme de la charge fait partie de la signification du test, et il est plus important de la reproduire fidèlement que de la diriger de l'extérieur. Utilisations typiques : réutilisation d'un script k6 à partir d'un pipeline sans le réécrire, profil spike-then recover ou scénarios pondérés qu'un seul numéro de simultanéité ne peut pas exprimer. Deux contraintes découlent de l'exécution du framework tel qu'il a été créé. Native nécessite le téléchargement d'un script. Simple HTTP Endpoint n'est donc pas disponible. Les scripts Locust ne doivent pas être définisprocesses, car la solution ne compte les demandes que lorsque Locust s'exécute en tant que processus unique.
Choix d'un mode
| Si vous avez besoin | Choix |
|---|---|
|
Un nombre exact d'utilisateurs virtuels, défini depuis l'extérieur du script |
Standard |
|
Pour modifier la durée de montée en puissance ou d'attente sans modifier le script |
Standard |
|
Une URL unique sans aucun script |
Standard |
|
La même forme de charge quel que soit le cadre |
Standard |
|
Pour réutiliser un CI ou un script local tel quel |
Natif |
|
Les étapes, les seuils ou la forme du script sont respectés |
Natif |
|
k6 scénarios, seuils ou exécuteurs de taux d'arrivée |
Natif |
|
Un ensemble de tâches pondérées |
Natif |
|
Les temporisateurs et les groupes de threads JMeter s'exécutent exactement comme ils ont été créés |
Natif |
|
Pour dimensionner la charge uniquement en multiples entiers de la charge du script |
Natif |
Multi-Region configuration du trafic
Sélectionnez une ou plusieurs régions AWS pour distribuer votre test de charge géographiquement. Pour chaque région sélectionnée, configurez :
- Nombre de tâches
-
Le nombre de conteneurs (tâches) qui seront lancés dans le cluster Fargate pour le scénario de test. Aucune tâche supplémentaire ne sera créée une fois que le compte aura atteint la limite « La ressource Fargate a été atteinte ». Le nombre de tâches s'applique aux deux modes de circulation. En mode natif, c'est le seul contrôle de charge proposé par la console, car chaque tâche exécute une copie complète de votre script.
- Simultanéité
-
Le nombre d'utilisateurs virtuels simultanés générés par tâche. La limite recommandée est basée sur les paramètres par défaut de 2 vCPU par tâche. La simultanéité est limitée par les ressources du processeur et de la mémoire. Ce champ s'applique uniquement au mode Standard. En mode natif, la console affiche la valeur en lecture seule « Défini par script » pour chaque région, car votre script définit son propre nombre d'utilisateurs virtuels.
Déterminer le nombre d'utilisateurs
Le nombre d'utilisateurs qu'un conteneur peut prendre en charge pour un test peut être déterminé en augmentant progressivement le nombre d'utilisateurs et en surveillant les performances d'Amazon CloudWatch. Une fois que vous constatez que les performances du processeur et de la mémoire approchent de leurs limites, vous avez atteint le nombre maximum d'utilisateurs qu'un conteneur peut prendre en charge pour ce test dans sa configuration par défaut (2 processeurs virtuels et 4 Go de mémoire).
Ce calibrage définit la valeur de simultanéité, de sorte qu'elle s'applique au mode Standard. Les limites de conteneurs qu'il établit s'appliquent également au mode natif. C'est là que vous augmentez ou diminuez la charge déclarée par votre script, au lieu de définir le champ Concurrency.
Processus d'étalonnage
Vous pouvez commencer à déterminer les limites d'utilisateurs simultanés pour votre test en utilisant l'exemple suivant :
-
Créez un test avec un maximum de 200 utilisateurs.
-
Pendant l'exécution du test, surveillez le processeur et la mémoire à l'aide de la CloudWatch console
: -
Dans le volet de navigation, sous Container Insights, sélectionnez Performance Monitoring.
-
Sur la page Surveillance des performances, dans le menu déroulant de gauche, sélectionnez ECS Clusters.
-
Dans le menu déroulant de droite, sélectionnez votre cluster Amazon Elastic Container Service (Amazon ECS).
-
-
Pendant la surveillance, surveillez le processeur et la mémoire. Si le processeur ne dépasse pas 75 % ou si la mémoire ne dépasse pas 85 % (ignorez les pics ponctuels), vous pouvez effectuer un autre test avec un plus grand nombre d'utilisateurs.
Répétez les étapes 1 à 3 si le test n'a pas dépassé les limites de ressources. Vous pouvez éventuellement augmenter les ressources du conteneur pour permettre un plus grand nombre d'utilisateurs simultanés. Cela entraîne toutefois un coût plus élevé. Pour plus de détails, consultez le Guide du développeur.
Note
Pour des résultats précis, n'exécutez qu'un seul test à la fois pour déterminer les limites d'utilisateurs simultanés. Tous les tests utilisent le même cluster, et CloudWatch Container Insights regroupe les données de performance en fonction du cluster. Cela entraîne le signalement simultané des deux tests à CloudWatch Container Insights, ce qui entraîne des mesures d'utilisation des ressources inexactes pour un seul test.
Pour plus d'informations sur l'étalonnage des utilisateurs par moteur, reportez-vous à la section Étalonnage d'un test Taurus
Note
La solution affiche les informations de capacité disponibles pour chaque région, vous aidant ainsi à planifier votre configuration de test dans les limites disponibles.
Tableau des tâches disponibles
Le tableau des tâches disponibles affiche la disponibilité des ressources pour chaque région sélectionnée :
-
Région : nom de la région AWS.
-
vCPU par tâche : nombre de processeurs virtuels alloués à chaque tâche (par défaut : 2).
-
Limite de tâches DLT : nombre maximum de tâches pouvant être créées en fonction du quota de processeurs virtuels à la demande Fargate de votre compte. Les nouveaux comptes ont généralement un quota inférieur ; vérifiez votre limite actuelle dans la console Service Quotas et demandez une augmentation si nécessaire.
-
Tâches DLT disponibles : nombre actuel de tâches disponibles dans la région, calculé comme votre limite de tâches DLT moins les processeurs virtuels déjà utilisés lors de l'exécution des tâches Fargate.
Pour augmenter le nombre de tâches ou de processeurs virtuels disponibles par tâche, consultez le Guide du développeur.
Durée du test
Définissez la durée d'exécution de votre test de charge. La console affiche cette section uniquement en mode Standard. En mode natif, votre script détermine la durée d'exécution du test, limitée par la durée de sécurité que vous avez définie à l'étape 2 : Configuration du scénario.
- Montez en puissance
-
Le temps nécessaire pour atteindre la simultanéité cible. La charge augmente progressivement de 0 au niveau de simultanéité configuré au cours de cette période.
- Maintenez pour
-
Durée pendant laquelle la charge cible doit être maintenue. Le test se poursuit en simultanéité totale pendant cette période.
Étape 4 : vérifier et créer
Passez en revue toutes vos configurations avant de créer le scénario de test. Vérifier:
-
Paramètres généraux (nom, description, calendrier).
-
Configuration du scénario (type de test, point de terminaison ou script).
-
Forme du trafic (mode, tâches, utilisateurs, durée, régions).
Après avoir vérifié, choisissez Créer pour enregistrer votre scénario de test.
Gestion des scénarios de test
Après avoir créé un scénario de test, vous pouvez :
-
Modifier : modifiez la configuration du test. Cas d’utilisation courants :
-
Affiner la forme du trafic pour atteindre le taux de transaction souhaité.
-
-
Copier : dupliquez un scénario de test existant pour créer des variantes. Cas d’utilisation courants :
-
Mettre à jour les points de terminaison ou ajouter des headers/body paramètres.
-
Ajouter ou modifier des scripts de test.
-
-
Supprimer : supprimez les scénarios de test dont vous n'avez plus besoin.