Performance Testing Service (PTS) vous permet d'exécuter des tests de charge dans le cloud à l'aide de scripts Apache JMeter. Ce guide vous explique comment créer un script JMeter en local, le charger dans un scénario JMeter PTS et exécuter votre premier test de charge sur une page web.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Apache JMeter installé sur votre machine locale. Cet exemple utilise
Apache JMeter 5.6.3pour créer le script. PTS prend en charge les versions JMeter 5.0 et 5.6.3.
Présentation de la solution
Pour utiliser les tests de charge JMeter, commencez par créer localement un script de test de charge avec Apache JMeter. Les deux étapes suivantes expliquent comment créer le script JMeter, le charger dans un scénario JMeter et lancer le test de charge.
Étape 1 : Créer un script JMeter
-
Dans Apache JMeter, ajoutez un échantillonneur HTTP Request et configurez les propriétés de la requête HTTP, notamment le nom du serveur ou l'adresse IP, le numéro de port et la méthode HTTP. Configurez les paramètres suivants dans l'onglet Basic :
Paramètre
Description
Exemple
Protocol
Le protocole de la requête.
httpServer name or IP
Le nom de domaine de l'API.
www.example.comPort Number
Le numéro de port du service.
80Method
La méthode HTTP.
GET -
Exécutez le plan de test et vérifiez le résultat dans l'écouteur View Results Tree. La réponse suivante indique que la requête a abouti :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Simple Web Page</title> </head> <body> <h1>Welcome to My Simple Web Page</h1> <p>This is a simple web page created using Flask.</p> </body> </html> Une fois le débogage réussi, exportez le fichier du plan de test. Dans cet exemple, le fichier est nommé
HTTP_Request.jmx.
Étape 2 : Charger le script et exécuter le test de charge
Connectez-vous à la console PTS, choisissez Performance Test > Create Scenario, puis cliquez sur JMeter.
-
Configurez l'orchestration du scénario. Le tableau suivant décrit les principaux paramètres.
Paramètre
Description
Exemple
Scene
Le nom du scénario de test de charge.
test-jmxUpload files
Dans l'onglet Scene Assembly, ajoutez le fichier de script JMeter.
HTTP_Request.jmxJMeter version
La version de JMeter. Assurez-vous qu'elle correspond à la version d'Apache JMeter utilisée pour créer le script. Sinon, le test de charge peut échouer.
5.6.3 -
Configurez les paramètres de charge. Définissez le nombre maximal d'utilisateurs virtuels sur
10et réglez la durée du test de charge ainsi que la durée d'incrémentation sur2minutes. Conservez les valeurs par défaut pour les autres paramètres.Le lancement d'un test de charge engendre des frais ; choisissez donc un niveau de charge adapté à vos besoins réels. Pour plus d'informations, consultez les rubriques Présentation de la facturation et Configuration du modèle et du niveau de test de charge.
-
Déboguez le scénario.
Le débogage du scénario permet de vérifier la validité des configurations et d'éviter les échecs de test. Nous vous recommandons de déboguer le scénario. Pour plus d'informations, consultez la rubrique Déboguer un scénario de test de charge. Si le code d'état de la réponse n'est pas
200pour une requête API, vérifiez si la requête API peut être initiée comme prévu. En cas de succès du débogage, le statut de réponse de l'API correspondante dans le journal des requêtes est200.
Cliquez sur Save and Start. Sur la page Note, sélectionnez Execute Now, cochez la case The test is permitted and complies with the applicable laws and regulations, puis cliquez sur Start.
Analyser les résultats du test de charge
À la fin du test de charge, PTS collecte automatiquement les données de test, telles que les métriques du scénario de test de charge, les détails métier, les détails de surveillance et les journaux d'échantillonnage des API, puis génère un rapport de test de charge. Vous pouvez consulter ce rapport sur la page Stress Test Report.
Pour plus d'informations, consultez la rubrique Afficher un rapport Performance Testing JMeter.
FAQ
Un test de charge JMeter peut échouer si la version de JMeter dans la console PTS ne correspond pas à la version locale, si les plugins JAR ne sont pas entièrement chargés, si le script fait référence à des chemins de fichiers locaux ou si la charge du test de charge JMeter n'est pas allouée comme prévu. Les sections suivantes expliquent comment résoudre ces problèmes.
Comment résoudre un problème d'incompatibilité de version JMeter ?
Les versions récentes de JMeter sont généralement compatibles avec les versions antérieures, mais des problèmes cachés ne peuvent pas être exclus. Assurez-vous que la JMeter version dans la console PTS correspond à la version locale de JMeter et déboguez le script localement avant d'exécuter le test de charge dans le cloud. JMeter 4.x n'est pas pris en charge.
Dois-je charger les plugins JAR et les fichiers de données avec le script ?
Oui. Dans l'onglet Scene Assembly, chargez chaque plugin JAR et fichier de données utilisé lors du débogage local dans le scénario JMeter, conjointement avec le script .jmx. N'en omettez aucun.
Pourquoi mon script échoue-t-il avec des erreurs de chemin de fichier ?
Si le script fait référence à des fichiers, supprimez tous les chemins de fichiers locaux que vous avez saisis lors du débogage local et ne conservez que le nom du fichier. Les générateurs de charge PTS ne partagent pas votre système de fichiers local ; laisser les chemins en place provoque donc des erreurs.
Comment PTS alloue-t-il la charge entre les groupes de threads ?
Pour atteindre la cible de charge configurée dans la console, PTS réécrit le script pendant le test de charge. Le script original n'est pas écrasé. La réécriture fonctionne comme suit :
PTS soustrait les threads configurés dans le groupe de threads setUp Thread Group et le groupe de threads tearDown Thread Group de la concurrence configurée dans la console PTS. PTS ne réécrit pas ces deux types de groupes de threads et ne réécrit que les groupes de threads réguliers.
Les threads restants sont ensuite répartis entre les groupes de threads réguliers.
Si le reste est inférieur à 0, il est traité comme 0.
Par exemple, supposons qu'un script contienne trois groupes de threads réguliers dont les nombres de threads sont dans le rapport a:b:c, et que le scénario soit configuré avec 500 threads concurrents sans groupe de threads setUp Thread Group ni groupe de threads tearDown Thread Group. PTS répartit les 500 threads concurrents entre les trois groupes de threads selon le rapport a:b:c.
Vérifiez les types de groupes de threads dans votre script avant le test de charge :
|
Scénario |
Paramétrage du nombre de threads |
|
Le script contient un seul groupe de threads. |
Définissez le nombre de threads sur |
|
Le script contient plusieurs groupes de threads qui doivent recevoir une charge égale. |
Définissez le même nombre de threads dans chaque groupe de threads. |
|
Le script contient plusieurs groupes de threads qui doivent recevoir une charge proportionnelle. |
Définissez les nombres de threads des groupes de threads dans le même rapport. |
Références
Créer un scénario JMeter - Référence complète des options de configuration de scénario
Utiliser des fichiers de paramètres CSV dans JMeter - Paramétrez vos tests avec des données externes
Configurer les limites RPS sur JMeter - Contrôler le débit des requêtes
Remarques sur l'utilisation de plusieurs groupes de threads dans JMeter - Configuration avancée des groupes de threads
Gestion de l'environnement JMeter - Gérer les environnements d'exécution JMeter
Sources de données - Configurer les sources de données pour vos tests