Partager via


Dépannage des tests de charge

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

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

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 le SQL Express, vous pouvez exécuter « sqlcmd - S. \SQLEXPRESS - i loadtestresultsrepository.sql » à partir d'une invite de commandes dans le répertoire indiqué précédemment.

Avertissement

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 de test de charge à 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 de test 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 test s'exécute sur le même ordinateur que le contrôleur de test. 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 de performances de site Web publie des requêtes vers des URL qui sont introuvables, vous devez corriger le test de performances de site Web pour résoudre cette erreur.

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

Avertissement

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 de test de charge à 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.

Remarque AttentionAttention
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 de performances de site Web a la valeur « default ».

L'utilisation de la valeur « default » comme paramètre de proxy dans un test de performances de site 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 de test 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 Ultimate la génération de charge est limitée à un cœur.

  • Si l'ordinateur exécute Visual Studio Test 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 pour le test d'outils pour Visual Studio ALM

Dépannage des tests des performances de site Web

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

Concepts

Stratégies de dépannage des contrôleurs de test et des agents de test lors de tests de charge

Considérations relatives aux tests de charge

Gestion des résultats des tests de charge dans le référentiel des résultats des tests de charge

Analyse des erreurs dans les tests de charge à l'aide de la table d'erreurs

Analyse des violations de règles de seuil dans les tests de charge dans l'Analyseur de test de charge

Autres ressources

Dépannage de l'émulation réseau dans les tests de charge

Dépannage des tests de charge et des tests de performances de site Web

Distribution des tests de charge entre plusieurs machines de test à l'aide des contrôleurs de test et des agents de test