Dans cette section, nous découvrirons les tests de performances, pourquoi nous en avons besoin, les types de tests de performances et le processus de test de performances.
Voici les sujets que nous comprendrons dans cette section :
Qu’est-ce que les tests de performances ?
C'est la partie la plus importante des tests non fonctionnels.
Vérifier le comportement d'une application en appliquant une certaine charge est appelé test de performances.
Généralement, ces tests définissent la rapidité avec laquelle le serveur répond à la demande de l'utilisateur.
Tout en effectuant des tests de performances sur l'application, nous nous concentrerons sur les différents facteurs tels que Temps de réponse, charge et stabilité de la demande.
Temps de réponse: Le temps de réponse est le temps mis par le serveur pour répondre à la demande du client.
Charger: Ici, Load signifie que lorsque Numéro N d'utilisateurs utilisant l'application simultanément ou envoyant la demande au serveur à la fois.
La stabilité: Pour le facteur de stabilité, on peut dire que, lorsqu'un nombre N d'utilisateurs utilisent l'application simultanément pendant un temps donné.
Quand utilisons-nous des tests de performances ?
Nous effectuerons des tests de performances une fois que le logiciel sera stable et migré vers la production, et qu'il pourra être consulté par plusieurs utilisateurs simultanément, pour cette raison, certains problèmes de performances peuvent survenir. Pour éviter ces problèmes de performances, le testeur effectue une série de tests de performances.
Puisqu'il s'agit de tests non fonctionnels, ce qui ne signifie pas que nous utilisons toujours des tests de performances, nous effectuons des tests de performances uniquement lorsque l'application est fonctionnellement stable.
Remarque : Les tests de performances ne peuvent pas être effectués manuellement car leurs résultats coûteux et précis ne peuvent pas être conservés.
Types de tests de performances
Voici les types de tests de performances :
PowerShell supérieur ou égal
Discutons-en un par un pour vous donner une compréhension complète de Charge, contrainte, évolutivité, et La stabilité Test de performance.
Test de charge
Le test de charge est utilisé pour vérifier les performances d'une application en appliquant une charge inférieure ou égale à la charge souhaitée. On l'appelle test de charge.
Par exemple: Dans l'image ci-dessous, 1000 utilisateurs sont les charge souhaitée , qui est donné par le client, et 3/seconde est le but ce que nous voulons réaliser en effectuant un test de charge.
Tests de résistance
Les tests de résistance sont des tests qui vérifient le comportement d'une application en appliquant une charge supérieure à la charge souhaitée.
Par exemple: Si nous prenons l'exemple ci-dessus et augmentons la charge souhaitée de 1 000 à 1 100 utilisateurs, l'objectif est de 4/seconde. Lors de l'exécution du test de résistance dans ce scénario, il réussira car la charge est supérieure (100 au-dessus) à la charge réelle souhaitée.
Tests d'évolutivité
Vérifier les performances d'une application en augmentant ou en diminuant la charge dans des échelles particulières (nombre d'utilisateur) est appelé tests d'évolutivité . Les tests d’évolutivité vers le haut et vers le bas sont appelés tests d’évolutivité.
Les tests d'évolutivité sont divisés en deux parties qui sont les suivantes :
Tests d'évolutivité vers le haut
Il s'agit de tests là où nous augmenter le nombre d'utilisateurs à une échelle particulière jusqu'à ce que nous obtenions un point de crash. Nous utiliserons des tests d’évolutivité ascendante pour déterminer la capacité maximale d’une application.
Tests d'évolutivité vers le bas
Le test d'évolutivité vers le bas est utilisé lorsque le test de charge n'est pas réussi, puis démarre diminuer le nombre. d'utilisateurs dans un intervalle particulier jusqu'à ce que l'objectif soit atteint. Pour qu'il soit facile d'identifier le goulot d'étranglement (bug).
Tests de stabilité
Vérifier les performances d'une application en appliquer la charge pendant une durée donnée est connu comme Tests de stabilité .
Exemple de test de performances
Prenons un exemple où nous allons tester le comportement d'une application où la charge souhaitée est soit inférieure à 1000, soit égale à 1000 utilisateurs .
Dans l'image ci-dessous, nous pouvons voir que le 100 jusqu'à les utilisateurs sont augmentés en permanence pour vérifier le charge maximale , qu'on appelle aussi tests d'évolutivité ascendante .
1200 → 3,5s : [elle n'est pas inférieure ou égale à la charge souhaitée c'est pourquoi elle le sera Échouer ]
1300 → 4s : [elle n'est pas inférieure ou égale à la charge souhaitée. c'est à dire., Échouer ]
1400 → Crashé
Remarque 1 : Les tests de volume et de trempage sont un type de test mais pas des tests de performances.
Tests de volume
Les tests de volume sont des tests qui nous aident à vérifier le comportement d'une application en insérant un volume massif de charge en termes de données. C'est ce qu'on appelle les tests de volume, et ici, nous nous concentrerons sur le nombre de débits de données plutôt que sur le nombre d'utilisateurs. .
Note 2:
Le volume est une capacité tandis que la charge est une quantité, c'est-à-dire que le test de charge signifie non. d'utilisateurs, et les tests en volume signifient une quantité de données.
Test de trempage
Dans ce type de test, nous vérifierons le comportement d'une application sur l'environnement, qui ne prend pas en charge pendant une longue période, ce que l'on appelle les tests de trempage.
sinon en java
Généralement, les tests d'immersion sont un type de test négatif puisque nous savons déjà que le serveur ou l'environnement ne prend pas en charge.
Processus de test de performances
Les tests de performances ne peuvent pas être effectués manuellement car :
- Nous avons besoin de beaucoup de ressources et c’est devenu une approche plus coûteuse.
- Et la précision ne peut pas être maintenue lorsque nous suivons manuellement le temps de réponse.
Le processus de test de performance se déroulera selon les étapes suivantes :
- Identifier des scénarios de performances
- Planifier et concevoir un script de test de performances
- Configurer l'environnement de test et répartir la charge
- Exécuter des scripts de tests
- Résultat
- Résultats d'analyse
- Identifiez le goulot d'étranglement
- Refaire le test
Si nous effectuons une flux positif du processus de test de performance, il pourrait suivre le processus ci-dessous :
Identifier des scénarios de performances
Tout d’abord, nous identifierons les scénarios de performance en fonction des facteurs ci-dessous :
Scénarios les plus courants : Cela signifie que nous pouvons trouver les scénarios de performances basés sur les scénarios couramment utilisés comme dans le Application Gmail ; nous effectuerons connectez-vous, recevez des messages, envoyez des éléments, rédigez un e-mail et déconnectez-vous .
Scénarios les plus critiques : Les scénarios critiques signifient que l'application Gmail est régulièrement utilisée et importante pour l'entreprise. connexion, rédaction, boîte de réception et déconnexion .
Énorme transaction de données : Si nous avons d’énormes données, cela signifie qu’un nombre n d’utilisateurs utilisent l’application en même temps.
Une fois que nous aurons identifié les scénarios de performances, nous passerons à l’étape suivante.
Planifier et concevoir un script de test de performances
Dans cette étape, nous installerons les outils dans la machine Test Engineer et accéderons au serveur de test, puis nous écrirons un script en fonction des scénarios de test et exécuterons l'outil.
Une fois que nous aurons fini d’écrire le scénario, nous passerons à l’étape suivante.
Configurer l'environnement de test et répartir la charge
Après avoir écrit les scripts de test, nous organiserons l’environnement de test avant l’exécution. Et aussi, gérez les outils, les autres ressources et répartissez la charge selon le 'Usage Pattern' ou mentionnez la durée et la stabilité.
Exécuter des scripts de tests
Une fois que nous aurons fini de répartir la charge, nous exécuterons, validerons et surveillerons les scripts de test.
Résultat
Après avoir exécuté les scripts de test, nous obtiendrons le résultat du test. Et vérifiez que le résultat atteint ou non l'objectif dans le temps de réponse donné, et le temps de réponse peut être maximum, moyen et minimum.
Si la réponse ne respecte pas le délai de réponse requis, nous procéderons alors à la flux négatif où effectuera les étapes ci-dessous :
Résultats d'analyse
Tout d’abord, nous analyserons le résultat du test pour savoir s’il respecte ou non le temps de réponse.
Identifiez le goulot d'étranglement
Après cela, nous identifierons le goulot d'étranglement (bug ou problème de performances) ). Et le goulot d'étranglement pourrait survenir à cause de ces aspects comme le problème de code, problème matériel (disque dur, processeur RAM), problèmes de réseau, et le problème logiciel (système d'exploitation) . Et après avoir trouvé le goulot d'étranglement, nous effectuerons réglage (réparation ou ajustement) pour résoudre ce goulot d'étranglement.
Refaire le test
Une fois que nous avons résolu les goulots d'étranglement, réexécutez les scripts de test et vérifiez le résultat s'il atteint ou non l'objectif requis.
Le problème se produit lors des tests de performances
Lors de l'exécution de tests de performances sur l'application, certains problèmes peuvent survenir. Ces problèmes sont également appelés problèmes. problème de performance .
Les problèmes de performances sont les suivants :
Problème de temps de réponse
Le temps de réponse désigne la rapidité avec laquelle le serveur répond à la demande du client. Si la demande de l'utilisateur n'est pas traitée dans le temps de réponse imparti, il est possible que l'utilisateur perde tout intérêt pour le logiciel ou l'application en question. C'est pourquoi l'application ou le logiciel doit avoir un temps de réponse parfait pour répondre rapidement à la demande de l'utilisateur.
Problème d'évolutivité
Les problèmes d'évolutivité se produisent lorsque l'application ne peut pas prendre en charge simultanément le nombre n d'utilisateurs et les demandes des utilisateurs attendues. C'est pourquoi nous ferons tests d'évolutivité ascendante (vérifier la capacité maximale de l'application) et tests d'évolutivité vers le bas (lorsque l'heure prévue ne correspond pas à l'heure réelle).
cadre de collections Java
Goulot
Le goulot d'étranglement est le nom informel d'un bug qui se produit lorsque l'application est limitée par un seul composant et crée un impact négatif sur les performances du système.
Les principales causes de goulots d'étranglement sont problèmes logiciels (problème lié au système d'exploitation), problèmes matériels (problèmes liés au disque dur, à la RAM et au processeur), et problème de codage, etc.
Voici les goulots d'étranglement de performances les plus courants :
- Utilisation de la mémoire
- Utilisation du disque
- Utilisation du processeur
- Limites du système d'exploitation
- L'utilisation du réseau
Problèmes de vitesse
Lorsque nous effectuons des tests de performances sur l'application, celle-ci doit être plus rapide pour attirer l'intérêt et l'attention de l'utilisateur, car si la vitesse de l'application est lente, elle peut perdre l'intérêt de l'utilisateur pour l'application.
Outils de tests de performances
Nous disposons de différents types d'outils de test de performances disponibles sur le marché, dont certains sont des outils commerciaux et des outils open source.
Outils commerciaux : LoadRunner[HP], WebLOAD, NeoLoad
Outil open source : JMeter
LoadRunner
Il s'agit de l'un des outils de test de performances les plus puissants, utilisé pour prendre en charge les tests de performances pour une large gamme de protocoles, un certain nombre de technologies et d'environnements d'application.
Il identifie rapidement les causes les plus courantes des problèmes de performances. Et prédisez également avec précision l’évolutivité et la capacité des applications.
JMètre
Le logiciel Apache JMeter est un outil open source, qui est une application entièrement Java conçue pour charger le comportement des tests fonctionnels et mesurer les performances.
Généralement, il a été conçu pour tester les applications Web, mais il est désormais étendu à d'autres fonctions de test.
chaîne json java
Apache JMeter est utilisé pour tester les performances des ressources statiques et dynamiques et des applications Web dynamiques.
Il peut être utilisé pour reproduire la lourde charge sur un serveur, un réseau ou un objet, un groupe de serveurs pour tester sa solidité ou pour analyser les performances globales sous différents types de charge.
CHARGEMENT Web
Outil de test WebLOAD utilisé pour tester les applications Web de tests de charge, de performances et de tests de résistance.
L'outil WebLOAD combine performances, évolutivité et intégrité en un seul processus de vérification des applications Web et mobiles.
NéoLoad
Neotys développe un outil de test appelé NeoLoad. Le NeoLoad est utilisé pour tester les scénarios de tests de performances. Avec l'aide de NeoLoad, nous pouvons identifier les zones de goulot d'étranglement dans le processus de développement d'applications Web et mobiles.
L'outil de test NeoLoad est plus rapide que les outils traditionnels.
En dehors d'eux, d'autres outils sont Charge électrique, outil de stress Web, LoadUI Pro, StresStimulus, LoadView, LoadNinja et RedLine13, ce qui permet de tester les performances du logiciel ou d’une application.