Les tests de montée et charge et de performance en géréral permettent de déterminer la performance d’un système informatique. Il existe plusieurs types de tests. Ils permettent de mettre en évidence les limites ou les faiblesses d’un système mais aussi la conformité d’un site internet ou d’une application à un cahier des charges. Le test de charge est le plus courant. Il doit être effectué au cours du développement ou au plus tard avant la mise en production.
Les tests de performance ont une importance toute particulière pour les sites internet et applications hébergées sur des serveurs. La configuration actuelle d’internet demande en effet aux serveurs d’effectuer la grande majorité des traitements pendant que le client, le navigateur du visiteur, effectue quasi-uniquement des tâches d’affichage.
Les différents types de tests de performance
Les différents types de tests de performance permettent de déterminer les différentes valeurs d’une application ou d’un système en exécution comme par exemple la charge maximale ou le temps de réponse pour une charge donnée. L’analyse des tests permet d’améliorer une application avant sa mise en production et par conséquent d’éviter de sérieuses déconvenues. Une boutique en ligne peut par exemple voir une grande partie de son chiffre d’affaire s’envoler si elle est indisponible pendant le grand rush de la période des fêtes de Noël!
Le test de charge permet de connaître le temps de réponse d’un site internet ou d’une application pour un nombre d’utilisateurs virtuels connectés simultanément.
Le test de performance permet quant à lui de vérifier le niveau de performance d’une application à différents niveaux de charge.
Le test de dégradations des transactions vérifie pour des scénarios fonctionnels la charge système maximale. Ce test permet d’isoler facilement les fonctionnalités dont les performances doivent être optimisées.
Le test de stress permet de simuler l’activité maximale de tous les scénarios fonctionnels. Ce test permet pour un site internet d’observer les performances lors des plus forts pics de visites attendus.
Le test d’endurance impose une charge importante d’utilisateurs pendant une longue période. Il permet de déterminer si les performances d’une application et/ou d’un système se dégradent avec le temps.
Le test de montée en charge consiste à simuler un grand nombre d’utilisateurs de manière croissante afin de déterminer la charge maximale d’un système.
Le test aux limites permet d’observer la réaction d’un système à une activité nettement supérieure à l’activité normale attendue.
Le test de montée en charge
Comme tout test de performance, le test de montée en charge peut être réalisé uniquement après l’écriture d’un plan de tests. Ce dernier permet de déterminer les scénarios fonctionnels à tester mais aussi le modèle de charge. La définition du modèle de charge est réalisée à partir de l’utilisation attendue de l’application: nombre d’utilisateurs simultanés, scénarios fonctionnels réalisés par ces derniers, pic d’activité de l’application, …
Les tests de montée en charge doivent idéalement être réalisés tout au long du développement d’une application mais aussi avant la mise en place d’une mise à jour. De nombreux sites internet sont cependant mis en production sans phase de tests, souvent par faute de moyens. Si par bonheur, un site connaît un succès grandissant, il n’est évidemment jamais trop tard pour réaliser des tests de performance. Ils permettront de déterminer les fonctionnalités de l’application et la configuration du serveur à améliorer mais aussi de connaître la charge maximale que le site pourra supporter et ainsi pouvoir par exemple opter pour un serveur plus puissant.
Scénarios de tests
L’identification des processus métier et des capacités du système et par conséquent des risques métiers et techniques permettent d’écrire les différents scénarios à mettre en oeuvre. La définition du modèle de charge est écrite à partir du modèle d’usage. Le nombre d’utilisateurs ainsi que leur scénario fonctionnel mais aussi leur simultanéité sont ainsi définis.
Réalisation des tests
Les tests doivent être réalisés dans un environnement de tests identique à l’environnement de production. Dans le cas d’un site internet, il est possible par exemple de dupliquer un site internet sur un serveur de test.
L’automatisation des tests, particulièrement la création des utilisateurs et leurs actions sur l’application, est possible grâce à des logiciels spécialisés. Le logiciel libre Apache JMeter d’Apache Software Foundation est un excellent outil pour réaliser des tests sur un site internet. L’un des points forts d’Apache JMeter est de pouvoir enregistrer très facilement des parcours utilisateurs et notamment l’action de connexion.
Afin de réaliser des tests impliquant un grand nombre d’utilisateurs, il peut être nécessaire de déployer et synchroniser le logiciel sur plusieurs ordinateurs.
Le test de montée en charge permet de déterminer le temps de réponse d’une application au cours de la connexion d’un nombre croissant d’utilisateurs. Pour obtenir des informations sur l’état des ressources systèmes ou applicatives, l’installation de sondes ou d’agents natifs est nécessaire.
Il existe deux type de tests de montée en charge: l’augmentation continue et l’augmentation par série.
Le test de montée en charge en augmentation continue consiste à simuler sans discontinuer un nombre croissant d’utilisateurs connectés à l’application. Il permet de déterminer avec exactitude la charge critique. La principale difficulté est de réussir à exécuter le test sans interruption. S’il est interrompu, le test doit être réinitialisé.
Le test de montée en charge en augmentation par séries permet de réaliser des tests indépendants. Cette méthode permet de lancer plusieurs tests indépendants tout en augmentant à chaque série le nombre d’utilisateurs. L’avantage est de pouvoir reprendre les tests à la dernière série en cas d’échec. Si le taux de réussite de ce test est meilleur que le test de montée de charge en augmentation continue, la charge critique n’est pas connue avec précision. Il est seulement possible de définir avec approximation le point de « rupture ».
Résultats des tests
Les résultats d’un test de montée en charge sont présentées en trois vues: la Vue Métier, qui retranscrit le nombre de clients connectés et le nombre de processus métiers réalisés ; la Vue Utilisateur, qui permet de connaître le temps de réponse des transactions et le taux d’erreur ; et la Vue Technique, qui permet de découvrir les consommations des ressources systèmes et applicatives.
L’analyse de ce bilan de tests permet de déterminer quelles optimisations sont possibles tant au niveau de l’application que du système. Il peut également par exemple permettre dans le cas d’un site internet de dimensionner un serveur.
Les optimisations et modifications d’une application et du système doivent être réalisées par itération. Un nouveau test de montée en charge doit être réalisé après chaque modification. L’impact sur l’application et le système sont ainsi facilement quantifiables.
Découvrez notre large gamme de serveurs Dell puissants et adaptés à tous les besoins.