Utilisation de contrôleurs de test et d'agents de test avec des tests de charge
Publication: juillet 2016
Cette rubrique s'applique à :
Visual Studio Enterprise |
Visual Studio Professional |
Visual Studio Express |
---|---|---|
Vous pouvez exécuter des tests de charge à l'aide de contrôleurs de test et d'agents de test, de manière à distribuer la charge sur plusieurs ordinateurs et à simuler plusieurs utilisateurs virtuels.
Vous ne voulez pas utiliser vos ressources et configurer vos propres machines pour créer cette charge ? Vous pouvez utiliser le test de charge basé sur le cloud pour fournir des ordinateurs virtuels dans le cloud qui génèrent la charge de nombreux utilisateurs accédant simultanément à votre site web. Tout ce dont vous avez besoin est un compte Visual Studio Online. Découvrez ce service de test de charge basé sur le cloud qui fournit gratuitement chaque mois 15 000 minutes d'utilisateurs virtuels de test de charge.
Pour comprendre les configurations requises pour le test de charge de votre application avec des ressources locales, suivez les informations contenues dans le reste de cette rubrique.
Configuration à distance classique :
Ordinateur1 et Ordinateur2 : Visual Studio (plusieurs testeurs peuvent utiliser le même contrôleur).
Ordinateur3 : contrôleur (sur lequel des agents peuvent également être installés).
Ordinateur4-n : agent ou agents tous associés au contrôleur sur Ordinateur3.
Lorsque vous exécutez des tests de charge, la mémoire et la puissance de traitement de votre ordinateur contrôle généralement la quantité de charge pouvant être générée pour le test. Le contrôleur de test ne génère pas de charge, mais il collecte des statistiques sur les tests de charge auprès des agents de test, ainsi que des données de compteurs de performance auprès des agents de test et du système testé. Par conséquent, la base de données utilisée par le contrôleur de test requiert à la fois des ressources pour la quantité de données stockée et le nombre d'agents de test concerné par l'exécution de tests. Reportez-vous au tableau suivant pour déterminer la configuration matérielle requise pour le contrôleur de test et l'agent de test.
Composant |
Couche Application du contrôleur de test |
Couche Données du contrôleur de test |
Couche Application/Données du contrôleur de test |
---|---|---|---|
UC |
Min : 1 GHz Rec : 2 GHz |
Min : 1 GHz Rec : 2 GHz |
Min : 1 GHz Rec : 2 GHz |
Disque – système |
Min : 1 GB Rec : 1 GB |
Min : 1 GB Rec : 1 GB |
Min : 1 GB Rec : 1 GB |
Disque – installation |
Min : 1 GB Rec : 48 GB |
Min : 8 GB Rec : 48 GB |
Min : 8 GB Rec : 48 GB |
Mémoire |
Min : 1 GB Rec : 1 GB |
Min : 1 GB Rec : 1 GB |
Min : 1 GB Rec : 1 GB |
Pour pouvoir exécuter des tests de charge à l'aide de contrôleurs de test, vous devez configurer la base de données de test de charge sur le contrôleur de test pour utiliser une instance de SQL Server lorsque vous exécutez vos tests de charge. Si vous ne disposez pas de SQL Server, vous pouvez utiliser SQL Express fourni avec Visual Studio Enterprise comme magasin de tests de charge. Pour plus d'informations sur la façon de configurer un contrôleur de test, voir Installation et configuration des agents de test et des contrôleurs de test.
Prenez en compte les facteurs supplémentaires suivants lorsque vous calculez la capacité requise du matériel.
Composant |
Agent de test |
Couche Application du contrôleur de test |
Couche Données du contrôleur de test |
Couche Application/Données du contrôleur de test |
---|---|---|---|---|
UC |
Selon le test, l'UC est souvent le facteur de limitation. |
Pas très sollicité. |
Pas très sollicité. |
Pas très sollicité. |
Disque |
Très sollicité en cas d'activation de l'enregistrement détaillé dans vos tests de charge. |
Pas très sollicité. |
10 Go d'espace requis pour 24 heures de données de test. |
10 Go d'espace requis pour 24 heures de données de test. |
Mémoire |
Selon le test, la mémoire peut être le facteur de limitation. |
Pas très sollicité. |
Très sollicitée par SQL. |
Très sollicitée par SQL. |
La quantité de charge pouvant être générée par un agent de test spécifique varie beaucoup d'un test à un autre. La plupart des tests dépendent de l'UC. L'utilisation de l'UC est directement proportionnelle aux requêtes par seconde. Pour d'autres tests de charge, la mémoire reste le facteur de limitation. Le nombre de requêtes par seconde que vous pouvez espérer obtenir d'un agent de charge dépend de nombreux facteurs, Notamment :
Charge utilisateur
Temps de réflexion
Schéma d'authentification
Taille des requêtes et des réponses
Temps de réponse
Niveau de validation des réponses
Type de test sous charge (test Web ou test unitaire)
Le temps de réflexion reste le principal facteur qui permet de déterminer le nombre d'utilisateurs dans un test utilisant le processeur de manière intensive. En augmentant le temps de réflexion de 2 secondes à 10 secondes, vous pouvez simuler 5 fois plus d'utilisateurs, mais le nombre de requêtes par minute généré reste le même. Si vous avez pour objectif de simuler de vrais utilisateurs, affectez au temps de réflexion une valeur en adéquation avec 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 virtuels n'ajoutera pas nécessairement de contrainte à votre applications web.
Les agents de test peuvent dépendre de la mémoire lors de tests utilisant le mode de connexion Connexion par utilisateur. Deux modes de connexion peuvent être configurés dans les paramètres de série de tests de charge. En mode Pool de connexions (valeur par défaut), les connexions sont regroupées, mais chaque utilisateur continue à utiliser deux connexions lorsqu'elles sont actives. Dans ce mode, tous les utilisateurs virtuels sont multiplexés sur le pool de connexions. Vous disposez de cette manière de 1000 utilisateurs virtuels actifs qui partagent 100 connexions. En mode Connexion par utilisateur, chaque utilisateur possède une connexion constituée de deux connexions réelles ouvertes vers le serveur.
Si vous exécutez un test de charge par rapport à une application ASP.NET standard avec un temps de réflexion de 3 à 5 secondes à l'aide de tests Web, vous pouvez simuler environ 1000 utilisateurs à partir d'un agent de test monoprocesseur avec 2 GHz d'UC et 1 Go de RAM (configuration recommandée). Le nombre d'utilisateurs pris en charge est une fonction du temps de réflexion. Plus les temps de réflexion sont longs, plus le nombre d'utilisateurs pouvant être pris en charge est élevé.
Le serveur qui exécute Visual Studio Enterprise doit disposer d'une connexion réseau fiable avec une bande passante d'au moins 1 Mbit/s et une latence maximale de 350 ms. Il ne doit y avoir aucun pare-feu entre les agents de test et le contrôleur de test. Si vos performances de tests ne répondent pas à vos attentes, songez à mettre votre configuration matérielle à niveau.
Considération sur le dimensionnement SQL
Par défaut, SQL Express est installé sur le contrôleur et est utilisé par le contrôleur comme magasin SQL par défaut pour stocker les résultats des tests de charge. Le nombre de licences est limité pour la base de données SQL Express, de sorte qu'elle puisse stocker 10 Go de données. Cela correspond à environ 24 heures de données de test de charge dans le cas d'un test de charge standard. L'espace nécessaire aux données de test de charge varie énormément d'un test à un autre.
Pendant un test de charge, des échantillons sont collectés pour chaque instance de compteur sur chaque ordinateur. La quantité d'espace nécessaire dans la base de données dépend par conséquent des facteurs suivants : nombre de compteurs collecté, nombre d'ordinateurs concerné dans le test et nombre d'échantillons pris, contrôlé par le taux d'échantillonnage.
Dans les paramètres d'exécution du test de charge, vous pouvez collecter des informations détaillées sur le minutage. Cela active le graphique d'activités des utilisateurs virtuels. Vous pouvez également collecter des journaux détaillés sur les utilisateurs virtuels.
Une série de tests de charge peut utiliser un ou plusieurs adaptateurs de données de diagnostic pour collecter des informations ou affecter l'ordinateur de test. Ceux-ci sont configurés dans les paramètres de test de la série. Les données issues de ces adaptateurs sont également stockées dans SQL Express et peuvent requérir une grande quantité d'espace en fonction de l'adaptateur de données de diagnostic.
Envisagez, si possible, d'utiliser une base de données différente pour stocker les données de test de charge. Cette base de données peut être stockée sur l'ordinateur du contrôleur de test ou sur un autre ordinateur. Pour modifier le magasin de données, envoyez les commandes SQL qui figurent dans le fichier .sql à l'instance de serveur SQL que vous souhaitez utiliser pour stocker les résultats des tests de charge. Deux méthodes sont applicables. Une première méthode consiste à utiliser la commande sqlcmd à partir de l'invite de commandes et à spécifier les options nécessaires pour se connecter à la base de données souhaitée. Utilisez l'option –i pour spécifier le chemin d'accès à loadtestresultsrepository.sql. Une seconde méthode consiste à utiliser l'une des interfaces graphiques utilisateur vers SQL (analyseur de requêtes, par exemple), à ouvrir le fichier .sql et à envoyer les connexions.
Voir aussi
Configuration des contrôleurs de test et des agents de test pour le test de charge
Distribution de séries de tests de charge entre plusieurs ordinateurs de test à l'aide des contrôleurs de test et des agents de test
Installation et configuration des agents de test et des contrôleurs de test
Configuration d'ordinateurs de test pour exécuter des tests ou collecter des données
Configuration d'ordinateurs et collecte d'informations de diagnostic à l'aide de paramètres de test
Spécification de paramètres de test pour Visual Studio Tests
Configuration des contrôleurs de test et des agents de test pour le test de charge
[retirée] Comment : exécuter un test de charge en utilisant des contrôleurs de test et des agents de test spécifiés dans un paramètre de test
Procédures pas à pas :utilisation d'un contrôleur de test et agents de test dans un test de charge