Partager via


Dépannage des tests de charge

Mise à jour : novembre 2007

Cette rubrique répertorie les problèmes courants suivants qui se produisent lorsque vous utilisez des tests de charge dans Visual Studio Team System Test Edition.

Impossible d'utiliser le traçage SQL

Une erreur s'est produite lors de l'exécution du test. (L'ordinateur xyz) n'a pas pu accéder au référentiel des résultats : nom d'objet 'LoadTestRun' non valide

Erreur LoadTestCounterNotFoundException

LoadTestResultsCollectorSlowException

Erreur LoadTestErrorLimitExceededException

Aucun ordinateur agent ne correspondait aux critères de sélection

Impossible d'accéder au référentiel des résultats des tests de charge

Impossible de générer la charge attendue

Limitations de génération de charge sur les ordinateurs multi-cœurs

Impossible d'utiliser le traçage SQL

Lorsque vous exécutez un test de charge localement, avec le traçage SQL activé, vous pouvez recevoir le message suivant :

Une erreur s'est produite lors de l'exécution du test. Impossible de démarrer le traçage SQL : vous ne disposez pas de l'autorisation nécessaire pour exécuter 'SP_TRACE_CREATE'

Pour utiliser le traçage SQL dans un test de charge exécuté localement sur un ordinateur qui exécute le système d'exploitation Windows Vista, vous devez être membre du rôle sysadmin sur l'instance de SQL Server qui est tracée. Pour résoudre ce problème, un administrateur SQL Server doit vous ajouter au rôle sysadmin.

Une erreur s'est produite lors de l'exécution du test. (L'ordinateur xyz) n'a pas pu accéder au référentiel des résultats : nom d'objet 'LoadTestRun' non valide

Cette erreur indique que le schéma de la base de données du test de charge n'a pas été créé. Vous pouvez utiliser l'Analyseur de requêtes pour exécuter le fichier LoadTestResultsRepository.Sql localisé dans <dossier d'installation Visual Studio>\Common7\IDE\ pour créer la base de données.

Si vous utilisez SQL Express, vous pouvez exécuter « sqlcmd - S. \SQLEXPRESS - i loadtestresultsrepository.sql » à une invite de commandes dans le répertoire répertorié précédemment.

Attention :

Les paramètres respectent la casse. Vous devez taper S en majuscule et i en minuscule.

Pour plus d'informations, consultez Comment : créer un référentiel de résultats à l'aide de SQL.

Erreur LoadTestCounterNotFoundException

Cette erreur se produit lorsqu'un compteur de performance inclus dans l'un des ensembles de compteurs de votre test de charge est introuvable dans la catégorie de compteur de performance qui le contient. S'il s'agit d'un compteur que vous avez ajouté à l'ensemble de compteurs, le nom du compteur de performance est peut-être mal orthographié. Il est également possible que le compteur de performance n'existe plus dans la catégorie parce qu'il a été supprimé dans une révision plus récente du composant logiciel qui définit le compteur de performance. Vous pouvez le supprimer de l'ensemble de compteurs pour corriger l'erreur sans perdre de données utiles.

Erreur LoadTestResultsCollectorSlowException

Cette erreur indique que le contrôleur n'a pas été en mesure de collecter les résultats de compteur de performance de tous les ordinateurs dans le taux d'échantillonnage spécifié pour le test de charge. Cela peut se produire lorsque de nombreux compteurs de performance doivent collecter ces résultats sur un grand nombre d'ordinateurs différents, comme spécifié par les mappages des ensembles de compteurs pour le test de charge. Cela peut également se produire lorsque l'agent de charge s'exécute sur le même ordinateur que le contrôleur. Vous devriez être en mesure de corriger cette erreur en augmentant le taux d'échantillonnage pour le test de charge.

Erreur LoadTestLimitExceededException

Cette erreur se produit chaque fois que 1000 erreurs du même type ou plus se produisent. Elle indique généralement l'existence d'un problème avec le test qui s'exécute sous le test de charge. Par exemple, si votre test Web publie des demandes vers des URL qui sont introuvables, vous devez corriger le test Web pour résoudre cette erreur.

Aucun ordinateur agent ne correspondait aux critères de sélection

Lorsque vous exécutez un test sur une plateforme de test, vous pouvez recevoir le message suivant :

Aucun ordinateur agent ne correspondait aux critères de sélection

Lorsqu'un test s'exécute sur une plateforme de test, vous pouvez spécifier des critères de sélection pour les ordinateurs agents connectés au contrôleur. Par exemple, vous pouvez spécifier que seuls les agents équipés d'un système d'exploitation spécifique seront utilisés pour exécuter un test. Si aucun critère n'est spécifié, tous les agents connectés au contrôleur seront utilisés pour exécuter le test. Si aucun agent ne correspond aux critères de sélection, le test n'est pas exécuté.

Pour résoudre le problème de l'absence d'un ordinateur agent correspondant aux critères de sélection, procédez comme suit :

  1. Dans le menu Test, pointez sur Modifier les configurations de série de tests, puis cliquez sur la configuration actuellement active.

    Remarque :

    Pour trouver la configuration actuellement active, dans le menu Test, pointez sur Sélectionner une configuration de série de tests active. Une coche vous indique quelle configuration est active.

  2. Dans la zone de liste, cliquez sur Contrôleur et agent.

  3. Dans la grille Nom et Valeur, supprimez les critères qui excluent des agents que vous souhaitez utiliser pour exécuter le test.

  4. Lorsque vous avez terminé, cliquez sur Appliquer, puis sur OK.

Impossible d'accéder au référentiel des résultats des tests de charge

Lorsque vous exécutez un test de charge, vous pouvez recevoir le message suivant :

Impossible d'accéder au référentiel des résultats des tests de charge

L'une des causes possibles de cette erreur est le non-respect de la casse dans les noms des paramètres lorsque vous utilisez l'utilitaire en ligne de commande SQLCMD pour définir votre référentiel des résultats des tests de charge. Le code suivant est un exemple de commande pour définir un référentiel des résultats des tests de charge sur un serveur nommé ContosoServer1 :

SQLCMD -S ContosoServer1 -U <user name> -P <password> -i loadtestresultsrepository.sql

Attention :

Les paramètres respectent la casse. Vous devez taper S, U et P en majuscules et i en minuscule.

Pour plus d'informations, consultez Comment : créer un référentiel de résultats à l'aide de SQL.

Impossible de générer la charge attendue

L'impossibilité de générer la charge que vous attendez est un problème courant lorsque vous exécutez un test de charge. Le tableau suivant répertorie quelques causes possibles de ce problème :

La charge maximale est limitée par le temps de réflexion ou par le nombre d'utilisateurs virtuels.

Si le temps de réflexion est activé, il peut limiter le taux auquel chaque utilisateur virtuel peut envoyer des demandes. Par exemple, 5 secondes de temps de réflexion par demande entraînent un maximum de 0,2 demande par seconde par utilisateur virtuel. Vous pouvez essayer l'une des modifications suivantes, en ordre de préférence :

  1. Augmentez le nombre d'utilisateurs virtuels pour une génération de charge plus réaliste. L'augmentation du nombre d'utilisateurs virtuels requiert habituellement plus de mémoire.

  2. Réduisez le temps de réflexion.

  3. Désactivez le temps de réflexion pour génération de charge maximale.

    Attention :

    La désactivation du temps de réflexion peut avoir un impact important sur le moteur de test. Si vous désactivez le temps de réflexion, réduisez le nombre d'utilisateurs virtuels.

La propriété de proxy de votre test Web a la valeur « default ».

L'utilisation de la valeur « default » comme paramètre de proxy dans un test Web est pratique, car cela active la détection automatique de serveur proxy. Toutefois, l'utilisation de la valeur « default » comme paramètre de proxy peut provoquer des problèmes de performance dans les tests de charge et réduit fortement votre débit maximal. Il est préférable de ne pas utiliser de serveur proxy lorsque vous exécutez un test de charge. Si un serveur proxy est requis, spécifiez le nom du serveur proxy au lieu de « default ».

Goulots d'étranglement d'une application.

Comme vous le savez, l'outil de test de charge a été conçu pour rechercher des goulots d'étranglement dans votre application. Si certaines de vos pages présentent des temps de réponse élevés en raison d'un goulot d'étranglement de base de données ou de processeur, cela limite le nombre de demandes par seconde que chaque utilisateur virtuel peut publier. Commencez avec un petit volume de charge et assurez-vous que le temps de réponse reste raisonnable à mesure que vous augmentez la charge lentement. Vous pouvez utiliser la propriété Response Time Goal pour définir le temps de réponse maximal attendu sur chaque demande.

Le processeur, la mémoire ou le réseau du serveur Web a dépassé sa limite.

Si le processeur, la mémoire ou le réseau du serveur Web a dépassé sa limite, il se peut que vous ne puissiez pas générer la charge que vous attendez. Il est possible que vous ayez atteint la limite de charge du serveur. Vous pouvez augmenter la mémoire ou encore changer le processeur ou le réseau du serveur Web.

Le processeur, la mémoire ou le réseau de l'ordinateur qui génère la charge a dépassé sa limite.

Vous avez peut-être besoin d'ordinateurs plus puissants ou de plus d'ordinateurs agents pour générer la charge désirée.

Le processeur, la mémoire ou le réseau du serveur de base de données (le cas échéant) a dépassé sa limite.

Si le processeur, la mémoire ou le réseau du serveur de base de données a dépassé sa limite, il se peut que vous ne puissiez pas générer la charge que vous attendez. Il est possible que vous ayez atteint la limite de charge du serveur de base de données. Vous pouvez augmenter la mémoire ou encore changer le processeur ou le réseau du serveur Web.

Limitations de génération de charge sur les ordinateurs multi-cœurs

Lorsque vous exécutez des tests de charge sur les ordinateurs multi-cœurs, la génération de charge est limitée comme suit :

  • Si l'ordinateur exécute Visual Studio Team System Test Edition ou Visual Studio Team System, la génération de charge est limitée à un cœur.

  • Si l'ordinateur exécute Visual Studio Team System Test Load Agent, la génération de charge n'est pas limitée ; elle s'exécute sur tous les cœurs et processeurs.

Voir aussi

Tâches

Dépannage dans Test Edition

Dépannage des tests Web

Dépannage des contrôleurs, agents et plateformes de test

Comment : créer un référentiel de résultats à l'aide de SQL

Concepts

Considérations relatives aux tests de grande charge

Contrôleurs, agents et plateformes de test

Analyse des erreurs de tests de charge

Analyse des violations de règles de seuil

Autres ressources

Référentiel des résultats des tests de charge