/dev/var/19 > Méthodologie de tests de charge et performance des sites Web

/dev/var/19 > Méthodologie de tests de charge et performance des sites Web

Fdeabaecd044c39cb7d75b104b0aff7c?s=128

Fedir RYKHTIK

October 19, 2017
Tweet

Transcript

  1. Méthodologie de tests de charge et performance des sites Web

    Fedir Rykhtik, @FedirFR /dev/var/19, Toulon, 18 Octobre 2017
  2. Types des tests de charge

  3. Test de montée charge (TMC) : • simulation d'un nombre

    d'utilisateurs virtuels prédéfinis, • validation de l'application pour une charge attendue d'utilisateurs, • mise en évidence les points sensibles et critiques de l’architecture technique, • mesure de dimensionnement des serveurs, de la bande passante nécessaire sur le réseau, • optimiser le coût de l'infrastructure
  4. Service-level agreement (SLA, accord de niveau de service)

  5. • ICP/KPI ◦ Mémoire consommée ◦ Utilisation de CPU ◦

    Utilisation de la bande passante ◦ Quantité de I/O ◦ Quantité des processus système / services ◦ Nombre de sessions en mémoire ◦ Nombre de requêtes par session ◦ Temps de réponse ◦ Temps d'exécution d’une opération type ◦ Quantité des erreurs HTTP Indicateur clé de performance (ICP) Key performance indicator (KPI)
  6. Les différents types d'architectures TMC

  7. Architecture basique Test manager Target Server Virtual Users Load Scripting

    Statistics
  8. Architecture avancée avec le serveur de monitoring

  9. Architecture automatisée TMC

  10. Plan de test de charge

  11. Organisation de TMC • Dimensionnement et tests des injecteurs •

    Calcul de la bande passante nécessaire • Contrôle de l'application cible • Vérification de fonctionnement de système de monitoring • Lancé des tirs • Contrôle de l'exécution des tirs (monitoring de performance de la cible et des injecteurs) • Tests manuels de comportement de l’application • Collection de statistique à partir des injecteurs et le système cible • Analyse et croisement des données • Création des rapports
  12. Choix de charge • Complexité de plan de test •

    Performance des injecteurs () • Type d'exécution (GUI / ligne de commande) • Distribution des types des utilisateurs virtuels • Distribution des types des requêtes (GET, POST, PUT, DELETE) • Temps de réflexion de l’utilisateur (rapidité d’action) • Prise en compte des appels aux services externes
  13. Choix de type et de quantité des injecteurs • Tests

    des injecteurs • Système de monitoring des performances des injecteurs • Adaptation des ressources des injecteurs • Validation des capacités d’un injecteur
  14. Agile & DevOps • Techno : Intégration dans la chaîne

    de déploiement continu • Techno : Tests de chaque composant de l'infrastructure • Techno : Automatisation de maintenance des test • Techno : Automatisation de la corrélation, le paramétrage et la variabilisation • Techno : Analyse automatique des anomalies, signalés par le système de monitoring • Orga : Accessible à tous les développeurs et testeurs • Orga : Partager des scénarios et les résultats des tests • Orga : Partage des résultats • Orga : Accès à l'historique • Orga : Tester plus tôt • Orga : Analyser plus tôt • Orga : Avertir plus tôt • Orga : Agir plus tôt
  15. Outils TMC

  16. Outils TMC

  17. Choix de l’outil TMC

  18. Apache JMeter • Application open-source écrite en Java • Par

    la Fondation Apache Software Fundation • Peut fonctionner sur tous les OS classiques • Peut également être utilisée sans interface graphique • HTTP, HTTPS, SOAP, XML-RPC, SMTP, POP3, IMAP, LDAP, FTP, TCP • Contrôle des injecteurs distants • Écosystème, plugins
  19. Coin lecture

  20. Ressources • https://fr.wikipedia.org/wiki/Test_de_performance • https://leanpub.com/maitriser-jmeter-du-test-de-charge-a-devops • https://fr.wikipedia.org/wiki/Apache_JMeter • http://blog2dev.blogspot.fr/2013/12/jmeter-tester-la-montee-en-charge-dun.html •

    http://jmeter.apache.org/usermanual/get-started.html • http://www.testautomationguru.com/jmeter-distributed-load-testing-using-docker/ • http://arodrigues.developpez.com/tutoriels/java/performance/plan-test-realiste/ • https://fr.wikipedia.org/wiki/Service-level_agreement • https://www.ibm.com/developerworks/library/wa-webapptesting/ • http://www.softwaretestinghelp.com/web-application-testing/ • https://theseus.fi/bitstream/handle/10024/118673/Web%20Application%20Performance%20Requirements%20Deriving%20 Methodology.pdf?sequence=1 • http://www.testautomationguru.com/jmeter-user-load-distribution-using-throughput-controller/ • https://msdn.microsoft.com/en-us/library/bb924375.aspx • https://technet.microsoft.com/fr-fr/library/dn753717.aspx • https://support.office.com/fr-fr/article/Capacit%C3%A9-de-planification-et-de-charge-test-de-SharePoint-Online-c932bd9b-fb 9a-47ab-a330-6979d03688c0 • https://www.netvigie.com/fr/metriques-loadtest.html • https://blog.octo.com/une-demarche-de-tests-de-performance/ • http://blog.admin-linux.org/administration/test-de-montee-en-charge-benchmark-avec-des-logiciels-libres • https://www.ibisc.univ-evry.fr/~belardinelli/Documents/testlogiciel.pdf • http://www.testautomationguru.com/jmeter-user-load-distribution-using-throughput-controller/ • https://www.blazemeter.com/blog/what%E2%80%99s-the-max-number-of-users-you-can-test-on-jmeter • http://www.dotnetdojo.com/10-outils-de-tests-de-charge-pour-votre-application-web/
  21. Merci pour votre attention ! @FedirFR