Table des matières
Le test en charge permet de tester la robustesse et la performance d'une application, ainsi que la capacité en terme de matériel ou de bande passante. Les besoins doivent être clairement définis pour en déduire les objectifs précis du test. Il y a plusieurs familles d'objectifs :
Vérifier la stabilité de l'application. Le nombre d'utilisateurs simultanés de l'application doit être connu. Le test permet de répondre aux questions suivantes :
Le serveur est-il assez robuste pour résister à une charge donnée d'utilisateurs ?
Le temps de réponse moyen des pages sous cette charge est-il acceptable ?
Le serveur retrouve t-il des performances normales après un pic de charge ?
Il faut définir au préalable ce qu'un temps de réponse acceptable signifie. Cette notion varie selon l'application testée et selon le type de pages. Une page quelconque est censée s'afficher plus vite qu'une page de résultat de recherche où l'utilisateur sait qu'il doit patienter.
Il est utile de surveiller l'utilisation du CPU et de la mémoire du serveur durant le test. Le serveur est surchargé si ces taux d'utilisation excédent 90% trop fréquemment.
Il est important de tester la capacité du serveur à retrouver des performances normales après un pic de charge. Beaucoup d'applications peuvent avoir un pic d'utilisation, par exemple à 08h30 sur un intranet, cela cause un stress temporaire sur l'application dont il faut vérifier qu'il ne sera pas dommageable pour le système. Ce type de test permet aussi de mettre en évidence des problèmes de fuite mémoire ou de gestion de ressources.
Trouver le nombre d'utilisateurs simultanés qu'une application peut gérer. Cela permet notamment de valider la configuration matérielle, ou de valider ses objectifs de visites sur l'application. Le test doit permettre de répondre aux questions suivantes :
Combien l'application peut elle supporter d'utilisateurs avec un niveau acceptable de temps de réponse ?
A partir de quelle charge le serveur commence-t-il à générer des erreurs et/ou à refuser des connexions ?
Le serveur continue-t-il à être utilisable à forte charge ou crashe-t-il?
Ce type de test est un test de stress. La charge est augmentée progressivement jusqu'à trouver les divers points de rupture.
Utiliser un scénario en ramp-up à partir d'une charge normale jusqu'aux limites maximales attendues. Surveiller les temps de réponse et taux d'erreurs. Un changement brusque signifie qu'un cap a été atteint.
Valider les évolutions de performance après une modification de l'application ou de l'infrastructure. Le test doit permettre de répondre aux questions suivantes :
Est-ce que les optimisations effectuées se traduisent par un réel gain de performance ?
Quelles sont les pages dont les performances se sont dégradées ?
NeoLoad permet de comparer les performances entre deux résultats de test. NeoLoad permet également de filtrer un résultat de test suivant différents critères.
Le préalable à tout test est de définir des critères de succès ou d'échec du test. Définir des niveaux de performance acceptable en terme de robustesse et de performance avant de lancer une campagne de test.
Dans la plupart des cas, ces critères sont définis en terme de temps de réponse, de taux d'erreur ou de nombre de requêtes par seconde :
Définir un temps de réponse moyen pour les pages (peut être différent d'une page à l'autre).
Définir un temps de réponse maximum pour les pages (peut être différent d'une page à l'autre).
Définir un nombre ou taux maximal d'erreurs.
NeoLoad permet de contrôler certains de ces critères grâce à la validation de requêtes.