Tests d'évolutivité pour les débutants

30 octobre 2021

Le test d'évolutivité est un tests non fonctionnels méthode qui mesure les performances d'un système ou d'un réseau lorsque le nombre de demandes d'utilisateurs est augmenté ou réduit. Le but de ces tests est de s'assurer que le système peut gérer l'augmentation prévue du volume de données, du trafic des utilisateurs, de la fréquence des comptages de transactions, etc. Il teste le système capable de répondre aux besoins croissants.

Il est également appelé test de performance, car il se concentre sur le comportement de l'application lorsqu'elle est déployée sur un système ou testée sous une charge excessive. Les tests d'évolutivité sont utilisés pour mesurer comment l'application arrête la mise à l'échelle et identifie la raison derrière cela.

EXEMPLE: Supposons que les tests d'évolutivité déterminent la charge maximale à 10 000 utilisateurs, puis que le système soit évolutif. Dans ce cas, les développeurs doivent réduire le temps de réponse une fois la limite de 10 000 utilisateurs atteinte ou augmenter la taille de la RAM pour s'adapter aux données utilisateur croissantes.



Table des matières

Prérequis pour les tests d'évolutivité

    Capacité de répartition de charge-Vérifiez si l'outil de test de charge nécessite plusieurs machines pour produire la charge et la gérer à partir d'un point central.Système opérateur-Vérifiez les agents de génération de charge et le maître de test de charge exécutés sous quels systèmes d'exploitationProcesseur-Vérifiez l'agent utilisateur virtuel et le maître de test de charge pour savoir quel type de CPU est requisMémoire-Vérifiez la quantité de mémoire adéquate pour l'agent utilisateur virtuel et le maître de test de charge.

Étapes pour lancer les tests d'évolutivité

  1. Définissez le processus reproductible pour l'exécution des tests d'évolutivité.
  2. Déterminez maintenant les critères d'évolutivité.
  3. Maintenant, présélectionnez les outils logiciels nécessaires pour exécuter le test.
  4. Définissez l'environnement et configurez le matériel nécessaire pour effectuer les tests.
  5. Planifiez le test ainsi que les tests de scalabilité.
  6. Créer et vérifier le script visuel.
  7. Créer et démontrer les scénarios de test de charge.
  8. Exécutez les tests.
  9. Évaluez les résultats.
  10. Générer les rapports requis.

Conseils pour améliorer l'évolutivité

  1. Déchargez la base de données en limitant les transactions. Cependant, n'allez pas trop loin en chargeant tout dans la couche d'application. Vous pourriez rencontrer d'autres problèmes de performances.
  2. Modifiez une variable à la fois. Cela prend du temps, mais trop de changements à la fois peuvent aggraver les performances de votre application.
  3. Réinitialisez tout avant d'exécuter un test pour vous assurer que les tests n'influencent pas votre test actuel. Il est recommandé de redémarrer l'ensemble du système logiciel, mais vous pouvez laisser votre matériel en marche.
  4. Les caches peuvent aider de manière significative à décharger les ressources. Envisagez d'implémenter un CDN pour aider à soulager une partie de la charge de votre serveur d'origine et à le placer sur les serveurs du CDN pour des performances encore plus rapides.
  5. Il n'est pas nécessaire de stocker les données de manière permanente dans la base de données. Stockez uniquement les données nécessaires qui aident à améliorer votre entreprise ou votre application.
  6. Décomposer les processus en étapes et les séparer en files d'attente à exécuter par un nombre minimal de travailleurs peut vous donner un gain de performances.
  7. Automatisez le processus de test. De cette façon, vous pouvez passer les heures de travail à analyser les tests effectués pendant les heures creuses. L'automatisation garantit que les tests et les nouveaux tests sont effectués de manière cohérente avec les mêmes paramètres.
  8. Restreindre l'accès aux ressources. Si vous avez plusieurs demandes pour la même aide qui effectue le même calcul, laissez chacune se terminer avant de commencer. Sinon, le processus ralentira.
  9. Les communications réseau prennent plus de temps que les communications en mémoire, ce qui limite les échanges entre votre application et votre réseau.

AVANTAGES

  • Cela aide à déterminer les inconvénients de l'application Web testée en termes d'utilisation du réseau, de temps de réponse, d'utilisation du processeur, etc.
  • Il détermine l'expérience de l'utilisateur final sous charge. Des mesures appropriées doivent être prises à l'avance pour corriger les problèmes et rendre l'application plus évolutive.
  • Pour réduire le risque de perdre de l'argent et sa bonne volonté à cause des performances médiocres d'une application, il est crucial de faire des tests d'évolutivité avant de la publier dans un environnement de production.
  • Les tests d'évolutivité contribuent à un suivi utile de l'utilisation des outils.
  • Il découvre la cause exacte de plusieurs problèmes de performances dans une application en phase de test, ce qui permet d'économiser du temps et de l'argent s'il est détecté dans l'environnement de production.

LES INCONVÉNIENTS

  • L'utilisation d'outils de test d'évolutivité et d'une équipe de test spécifique pour les tests de performance peut entraîner un dépassement de budget.
  • Les tests qui fonctionnent correctement échouent dans la phase de test en raison du mauvais test, et les scripts de test entraînent une perte de temps pour apporter des modifications.
  • Les erreurs fonctionnelles ne peuvent pas être identifiées dans les tests d'évolutivité.
  • La fenêtre de test est très étroite pour ne pas perturber les processus métier, et donc les défauts restent découverts.
  • Le temps passé à tester chaque attribut des tests de scalabilité est parfois élevé et peut retarder le respect des délais du projet.
  • L'environnement de test n'est pas le même qu'un environnement de production et peut entraîner divers problèmes.

Attributs de test d'évolutivité

    Débit

Il est défini comme plusieurs requêtes traitées par unité de temps. Cependant, pour différentes applications, la définition du débit peut varier et est testée différemment.

    Utilisation de la mémoire

L'utilisation de la mémoire est également testée pour obtenir les meilleurs résultats de consommation de mémoire pour une application. Pour une utilisation moindre de la mémoire, de bonnes pratiques de programmation doivent être suivies par les programmeurs, comme moins d'utilisation de boucles redondantes, réduire les accès à une base de données, gérer les validations complètes côté client uniquement, etc. Une application manque souvent de mémoire en raison d'un grand nombre de requêtes, les développeurs doivent donc toujours conserver une base de données supplémentaire pour gérer de telles situations.

    L'utilisation du processeur

Il est testé pour vérifier le processeur utilisé pour effectuer la tâche dans une application. L'utilisation du processeur est mesurée en mégahertz. Pour plus de débit et moins d'utilisation du processeur, le code de toute application écrite dans n'importe quel langage de programmation doit être correctement optimisé.

    Utilisation du réseau

La bande passante consommée pour effectuer une tâche dans une application est testée. L'utilisation du réseau est mesurée en octets, segments, paquets reçus ou envoyés par seconde sur le réseau. Pour qu'une application sans faille donne les meilleurs résultats, l'utilisation du réseau doit être minimale.

    Temps de réponse

Temps de réponse est le temps entre la réponse et la demande de l'utilisateur du serveur d'application. Il est testé à différentes charges soit en augmentant le nombre de requêtes par utilisateur, soit en augmentant le nombre d'utilisateurs pour vérifier à quel moment l'application commencera à répondre en retard.

Plan de test d'évolutivité

Créez un programme de recherche approfondi avant de finalement construire les expériences. C'est une étape essentielle pour s'assurer que l'évaluation est conforme aux spécifications de la demande.

    Étapes pour les scripts :Une étape approfondie doit être franchie dans le script de test pour décider des actions précises qu'une personne effectuera.Données d'exécution :Toutes les données d'exécution utilisées pour communiquer avec le programme peuvent être déterminées par le programme de test.Tests pilotés par les données :Si les scripts nécessitent des données différentes lors de l'exécution, tous les champs nécessitant ces données doivent être connus.

Meilleurs outils de test d'évolutivité

CyberInondation

CyberFlood est une solution de test puissante et facile à utiliser qui génère un trafic d'application et des attaques réalistes pour tester les performances, l'évolutivité et la sécurité de vos appareils et solutions réseau compatibles avec les applications. Testez et appliquez les politiques de trafic des applications. Référence performances et capacités. Valider sécurité Internet .

CARACTÉRISTIQUES

  • Émulation, pas simulation.
  • Capacités étendues.
  • Chiffrement.

LE PRIX

Vous devez contacter le vendeur pour le prix.

Impact de la charge

Load Impact est un système de test basé sur le cloud pour créer leurs sites Web, applications mobiles et API en effectuant une série de tests de performance indiquant l'endurance au stress de vos systèmes.

CARACTÉRISTIQUES

  • Possibilité d'ajouter des IP supplémentaires.
  • Tests d'API.
  • Scripts automatisés et avancés.
  • Émulation de navigateur.
  • Tests mobiles

LE PRIX

    De base-89 $ par moisStandard-299 $ par moisAvancée-699 $ par moisPour-1299 $ par mois

FAQ

Qu'est-ce qu'un test d'évolutivité ?

Le test d'évolutivité est une méthode de test non fonctionnelle qui mesure les performances d'un système ou d'un réseau lorsque le nombre de demandes d'utilisateurs est augmenté ou réduit. Le but de ces tests est de s'assurer que le système peut gérer l'augmentation prévue du volume de données, du trafic des utilisateurs, de la fréquence des comptages de transactions, etc. Il teste le système capable de répondre aux besoins croissants.

Pourquoi les tests d'évolutivité sont-ils nécessaires ?

Les tests d'évolutivité vous aident à déterminer comment votre application évolue avec l'augmentation de la charge de travail.
Il détermine la limite d'utilisateurs pour l'application Web.
Il détermine la dégradation côté client et l'expérience de l'utilisateur final sous charge.
Détermine la robustesse et la dégradation côté serveur.