Partager via


Considérations relatives aux tests de grande charge

Mise à jour : novembre 2007

Cette rubrique fournit des conseils pour exécuter des tests de grande charge dans Visual Studio Team System Test Edition. Les sujets abordés sont les suivants :

Choix du modèle de charge approprié

Choix du modèle de connexion approprié

Taux d'échantillonnage et collecte de données

Temps de réflexion

Définition des objectifs de temps de réponse pour des demandes de tests Web

Inclusion de détails de minuterie pour collecter des données de centile

Définition de la propriété Pourcentage de nouveaux utilisateurs

Activation du traçage SQL

Gestion d'un nombre approprié d'ordinateurs agents

Choix du modèle de charge approprié

Il existe trois types de modèles de charge : constante, par étape et en fonction des objectifs. Pour choisir le modèle de charge approprié pour votre test de charge, vous devez connaître les avantages de chaque type. Pour plus d'informations, consultez À propos du modèle de charge.

Constante

Un modèle de charge constante est utile lorsque vous souhaitez exécuter votre test de charge avec la même charge utilisateur pendant une longue durée. Si vous spécifiez une charge utilisateur élevée avec un modèle de charge constante, il est recommandé de spécifier également une période de préchauffage pour le test de charge. Lorsque vous spécifiez une période de préchauffage, vous évitez d'accentuer la contrainte sur votre site en ayant des centaines de nouvelles sessions utilisateur qui atteignent le site en même temps.

Par étape

Le modèle de charge par étape est l'un des modèles les plus courants et utiles, parce qu'il vous permet de surveiller les performances de votre système à mesure que la charge utilisateur augmente. La surveillance de votre système à mesure que la charge utilisateur augmente vous permet de déterminer le nombre d'utilisateurs qui peuvent être pris en charge avec des temps de réponse acceptables, ou inversement, le nombre d'utilisateurs à partir duquel les performances deviennent inacceptables.

En fonction des objectifs

Le modèle de charge en fonction des objectifs est similaire à un modèle de charge par étape dans la mesure où la charge utilisateur augmente généralement avec le temps, mais il vous permet de spécifier que la charge doit cesser d'augmenter lorsqu'un compteur de performance atteint un certain niveau. Par exemple, vous pouvez utiliser un modèle de charge en fonction des objectifs pour laisser la charge augmenter jusqu'à ce que l'un de vos serveurs cibles soit occupé à 75 %, puis maintenir la charge fixe.

Si aucun modèle de charge prédéfini ne répond à vos besoins, il est également possible d'implémenter un plug-in de test de charge personnalisé qui contrôle la charge utilisateur pendant l'exécution des tests de charge. Pour plus d'informations, consultez Effectuer des tâches de test de charge avancées.

Choix du modèle de connexion approprié

Il existe deux types de modèle de connexion : la connexion par utilisateur et le regroupement de connexions. Pour choisir le modèle de connexion approprié pour votre test de charge, vous devez connaître les avantages de chaque type.

Connexion par utilisateur

Le modèle de connexion par utilisateur simule assez fidèlement le comportement d'un vrai navigateur. Chaque utilisateur virtuel qui exécute un test Web utilise une ou deux connexions au serveur Web, dédiées à cet utilisateur virtuel. La première connexion est établie lorsque la première demande du test Web est émise. Une deuxième connexion peut être utilisée lorsqu'une page contient plusieurs demandes dépendantes ; ces demandes peuvent être publiées en parallèle à l'aide des deux connexions. Ces mêmes connexions sont réutilisées pour les demandes suivantes dans le test Web et sont fermées lorsque l'exécution du test Web est terminée.

L'inconvénient du modèle de connexion par utilisateur est que le nombre de connexions ouvertes sur l'ordinateur agent peut être deux fois plus élevé que la charge d'utilisateur et les ressources requises pour prendre en charge ce nombre élevé de connexions peuvent limiter la charge utilisateur disponible à partir d'un seul agent de test de charge.

Regroupement de connexions

Le modèle de regroupement de connexions conserve les ressources sur l'agent de test de charge en répartissant les connexions au serveur Web parmi plusieurs utilisateurs de test Web virtuels. Dans le modèle de regroupement de connexions, la taille du regroupement de connexions spécifie le nombre maximal de connexions à établir entre l'agent de test de charge et le serveur Web. Si la charge utilisateur est plus grande que la taille du regroupement de connexions, les tests Web exécutés au nom de différents utilisateurs virtuels partagent une connexion.

Le partage d'une connexion signifie qu'un test Web peut devoir attendre avant d'émettre une demande lorsqu'un autre test Web utilise la connexion. La durée moyenne pendant laquelle un test Web attend avant d'envoyer une demande est suivie par le compteur de performance de test de charge Durée d'attente moyenne d'une connexion. Ce nombre doit être inférieur au temps de réponse moyen d'une page. Si ce n'est pas le cas, la taille du regroupement de connexions est sans doute trop petite.

Taux d'échantillonnage et collecte de données

Choisissez un taux d'échantillonnage approprié selon la longueur de votre test de charge. Un taux d'échantillonnage faible, par exemple cinq secondes, collecte plus de données pour chaque compteur de performance qu'un taux d'échantillonnage élevé. La collecte de grandes quantités de données sur une longue période peut provoquer des erreurs d'espace disque. Pour les tests de charge de longue durée, vous pouvez augmenter le taux d'échantillonnage pour réduire la quantité de données collectées. Le nombre de compteurs de performance affecte également la quantité de données collectées. Pour les ordinateurs sous test, la réduction du nombre de compteurs réduit la quantité de données collectées.

Vous devez faire des essais pour déterminer quel taux d'échantillonnage fonctionne le mieux pour votre test de charge. Toutefois, le tableau suivant contient les taux d'échantillonnage recommandés que vous pouvez utiliser pour commencer.

Durée du test de charge

Taux d'échantillonnage recommandé

< 1 heure

5 secondes

1 à 8 heures

15 secondes

8 à 24 heures

30 secondes

> 24 heures

60 secondes

Temps de réflexion

Le temps de réflexion pour les demandes de test Web a un effet significatif sur le nombre d'utilisateurs qui peut être pris en charge avec des temps de réponse raisonnables. Le changement des temps de réflexion de 2 secondes à 10 secondes permet généralement de simuler 5 fois plus d'utilisateurs. Toutefois, si votre objectif est de simuler de vrais utilisateurs, vous devez définir le temps de réflexion selon la façon dont vous pensez que les utilisateurs se comporteront sur votre site Web. L'augmentation du temps de réflexion et du nombre d'utilisateurs n'augmentera pas nécessairement la contrainte sur votre serveur Web. Si le site Web est authentifié, le type de schéma utilisé affectera les performances.

Si vous désactivez les temps de réflexion pour un test Web, vous pourrez peut-être générer un test de charge dont le débit sera supérieur en terme de demandes par seconde. Si vous désactivez les temps de réflexion, vous devez également réduire le nombre d'utilisateurs à un nombre beaucoup plus petit que lorsque les temps de réflexion sont activés. Par exemple, si vous désactivez les temps de réflexion et essayez d'exécuter 1000 utilisateurs, il est probable que vous submergiez le serveur cible ou l'agent de test de charge.

Pour plus d'informations, consultez À propos des temps de réflexion.

Définition des objectifs de temps de réponse pour des demandes de tests Web

L'une des propriétés d'une demande de test Web est l'objectif de temps de réponse. Si vous définissez des objectifs de temps de réponse pour vos demandes de test Web, lorsque le test Web est exécuté dans un test de charge, l'analyseur de test de charge rapporte le pourcentage de tests Web pour lequel le temps de réponse n'a pas atteint l'objectif. Par défaut, aucun objectif de temps de réponse n'est défini pour les demandes Web.

Pour plus d'informations, consultez Comment : définir des objectifs de temps de réponse pour une page dans un test Web.

Inclusion de détails de minuterie pour collecter des données de centile

Les paramètres d'exécution incluent une propriété nommée Stockage des détails de minuterie. Si cette propriété est activée, le temps nécessaire à l'exécution de chaque test, transaction et page individuels pendant le test de charge est stocké dans le référentiel des résultats du test de charge. Cela permet aux 90ème et 95ème données de centile de s'afficher dans l'analyseur de test de charge des tables Tests, Transactions et Pages.

Par défaut, la propriété Stockage des détails de minuterie est désactivée. et ce pour deux raisons importantes : en premier lieu, la quantité d'espace requise dans le référentiel des résultats du test de charge pour stocker les détails de minuterie peut être très élevée, en particulier pour les longs tests de charge. En deuxième lieu, le temps nécessaire pour stocker ces données dans le référentiel des résultats du test de charge à la fin du test de charge est long parce que ces données sont stockées sur les agents de test de charge jusqu'à ce que l'exécution du test de charge soit terminée.

Si l'espace disque nécessaire est disponible dans le référentiel des résultats du test de charge, vous pouvez activer Stockage des détails de minuterie pour obtenir les données de centile. Vous avez deux possibilités pour activer Stockage des détails de minuterie : StatisticsOnly et AllIndividualDetails. Quelle que soit l'option choisie, tous les tests, pages et transactions individuels sont chronométrés et les données de centile sont calculées à partir des données de temporisation individuelles. Si vous choisissez StatisticsOnly, les données de temporisation individuelles sont supprimées du référentiel après le calcul des données de centile. La suppression des données réduit la quantité d'espace requise dans le référentiel. Toutefois, si vous souhaitez traiter les données de détails de minuterie directement, à l'aide d'outils SQL, choisissez AllIndividualDetails afin qu'elles soient enregistrées dans le référentiel.

Définition de la propriété Pourcentage de nouveaux utilisateurs

Chaque scénario contenu dans un test de charge a une propriété nommée Pourcentage de nouveaux utilisateurs. Cette propriété affecte la façon dont le moteur d'exécution de test de charge simule la mise en cache qui serait exécutée par un navigateur Web. La valeur par défaut de Pourcentage de nouveaux utilisateurs est 100. Cela signifie que chaque itération de test Web exécutée dans un test de charge est traitée comme un utilisateur accédant au site Web pour la première fois et dont le cache du navigateur ne contient aucune donnée du site Web enregistrée lors de visites antérieures. Par conséquent, toutes les demandes dans le test Web, y compris toutes les demandes dépendantes telles que les images, sont téléchargées.

Remarque :

Il existe une exception : lorsque la même ressource pouvant être mise en cache est demandée plusieurs fois dans un test Web.

Si vous exécutez un test de charge sur un site Web présentant un nombre significatif d'utilisateurs ayant déjà accédé au site et disposant donc probablement d'images et d'autre contenu pouvant être mis en cache localement, l'utilisation de la valeur par défaut 100 pour Pourcentage de nouveaux utilisateurs génèrera plus de demandes de téléchargement que dans une utilisation réelle. Si vous exécutez un test de charge sur un site Web présentant un nombre significatif d'utilisateurs ayant déjà accédé au site, vous devez estimer le pourcentage de visites à votre site Web effectuées par des utilisateurs accédant pour la première fois au site et définir le pourcentage de nouveaux utilisateurs en conséquence.

Activation du traçage SQL

Les paramètres d'exécution incluent une propriété nommée Traçage SQL activé. Cette propriété vous permet d'activer la fonctionnalité de traçage de Microsoft SQL Server pour la durée d'un test de charge. Cela constitue une alternative au démarrage d'une session SQL Profiler distincte pendant que le test de charge s'exécute pour diagnostiquer des problèmes de performance SQL. Si la propriété est activée, les données de trace SQL s'affichent dans l'analyseur de test de charge. Vous pouvez les consulter à la page Tables dans la table Trace SQL.

Pour activer cette fonctionnalité, l'utilisateur qui exécute le test de charge doit avoir les privilèges SQL requis pour exécuter le traçage SQL. Lorsqu'un test de charge s'exécute sur une plateforme de test, l'utilisateur du contrôleur doit avoir les privilèges SQL. Vous devez également spécifier un répertoire, généralement un partage réseau, où le fichier des données de trace sera enregistré. À la fin du test de charge, le fichier des données de trace est importé dans le référentiel de test de charge et associé au test de charge afin qu'il puisse être affiché ultérieurement à l'aide de l'analyseur de test de charge.

Pour plus d'informations, consultez À propos des paramètres d'exécution et Comment : intégrer les données de trace SQL.

Gestion d'un nombre approprié d'ordinateurs agents

Si l'utilisation de l'UC d'un ordinateur agent est supérieure à 75 % ou si sa mémoire physique disponible est inférieure à 10 %, l'ordinateur est surchargé. Ajoutez des agents à votre plateforme de test pour garantir que l'ordinateur agent ne se transforme pas en goulot d'étranglement dans votre test de charge.

Pour plus d'informations, consultez Contrôleurs, agents et plateformes de test.

Voir aussi

Tâches

Dépannage des tests de charge

Concepts

Analyse des erreurs de tests de charge

Analyse des violations de règles de seuil

Autres ressources

Utilisation des tests de charge