Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Confoo 2016: Initiation aux tests de charge

0 views

Published on

Quelques bonnes pratiques et outils à utiliser lors de vos tests de charge

  • Be the first to comment

Confoo 2016: Initiation aux tests de charge

  1. 1. © Henri Tremblay 2015 Henri Tremblay Université de la performance: Initiation aux tests de charge
  2. 2. 2 Amateur de Stratégie TI Performance Productivité Fait de l’Open Source Aime être utile Henri Tremblay Henri Tremblay
  3. 3. 3 Agenda Test de performance unitaire Test de charge Test de rupture Test de vieillissement
  4. 4. 4 La mesure de performance doit être au cœur du processus de développement informatique Notre vision ? Source : Les géants du Web
  5. 5. 5 PROD Archi Dev Perf
  6. 6. 6 PROD Archi Dev Perf 1. Conception des tests 2. Automatisation des tests 3. Développement logiciel 4. Exécution auto- matique des tests #1 #2 #3
  7. 7. 7 Archi Dev Perf PROD DélaiMEP À L’ARRACHE 1. Conception des tests 2. Automatisation des tests 3. Développement logiciel 4. Exécution auto- matique des tests #1 #2 #3
  8. 8. 8 1. Conception des tests 2. Automatisation des tests 3. Développement logiciel 4. Exécution auto- matique des tests #1 #2 #3 PROD Archi Dev Tests de charge en continue
  9. 9. 9 Premature optimization is the root of all evil - Donald Knuth
  10. 10. 10 Il voulait dire ça: // Do not use the for(Object o : list) // because I think it is probably // slower than doing this… Probably… for(int i = 0; i < list.size(); i++) { Object o = list.get(i); … } Stop guessing dam it!!!
  11. 11. 11 Code Mesure OptimiseLà où c’est important
  12. 12. 12 LES DIFFÉRENTS TYPES DE TEST• Objectif: mesurer la performance unitaire • Ex: le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire • Objectif: mesurer la tenue en charge de l’application sur la population cible • Ex: on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge • Objectif: déterminer les limites de l’application • Ex: on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture • Objectif: déterminer la capacité de l’application à fonctionner sur une période étendue • Ex: on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  13. 13. 13 Exécution test unitaire
  14. 14. 14 Les performances d’un système sont une spécification fonctionnelle implicite du système Notre vision ? Source : www.arthursclipart.org
  15. 15. 15 Cible de performance Exemples: Temps d’affichage du détail d’un item: < 200ms Nombre d’utilisateurs concurrents: 200
  16. 16. 16 DÉMO Exécution test unitaire
  17. 17. 17 LES DIFFÉRENTS TYPES DE TEST• Objectif: mesurer la performance unitaire • Ex: le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire • Objectif: mesurer la tenue en charge de l’application sur la population cible • Ex: on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge • Objectif: déterminer les limites de l’application • Ex: on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture • Objectif: déterminer la capacité de l’application à fonctionner sur une période étendue • Ex: on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  18. 18. 18 DÉMO Exécution test de charge
  19. 19. 19 LES DIFFÉRENTS TYPES DE TEST• Objectif: mesurer la performance unitaire • Ex: le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire • Objectif: mesurer la tenue en charge de l’application sur la population cible • Ex: on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge • Objectif: déterminer les limites de l’application • Ex: on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture • Objectif: déterminer la capacité de l’application à fonctionner sur une période étendue • Ex: on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  20. 20. 20 DÉMO Test de rupture
  21. 21. 21 LES DIFFÉRENTS TYPES DE TEST• Objectif: mesurer la performance unitaire • Ex: le use case de souscription est testé pour 1 utilisateur et, pour chaque étape du use case, on mesure le temps passé dans les différents composants de l’application Test de performance unitaire • Objectif: mesurer la tenue en charge de l’application sur la population cible • Ex: on simule l’utilisation de l’application par 200 utilisateurs en parallèle pendant 2h Test de charge • Objectif: déterminer les limites de l’application • Ex: on augmente le nombre d’utilisateurs en parallèle sur l’application jusqu’à ce que le taux d’erreurs / les temps de réponse ne soient plus acceptables Test de rupture • Objectif: déterminer la capacité de l’application à fonctionner sur une période étendue • Ex: on simule l’utilisation de l’application pendant 48h, avec une charge constante et égale à la charge moyenne Test de vieillissement
  22. 22. 22 DÉMO Test d’endurance
  23. 23. 23 LES DIFFÉRENTS TYPES DE TEST•1 utilisateur •1 scénario •Quelques itératinos Test de performance unitaire • Nombre espéré d’utilisateurs • Plusieurs scénario • 10 minutes et plus Test de charge • Nombre croissant d’utilisateurs • Plusieurs scénario • Jusqu’à rupture (dégradation) Test de rupture •Nombre espéré d’utilisateurs •Plusieurs scénario •Plusieurs heures Test de vieillissement
  24. 24. 24 Les outils utilisés aujourd’hui https://jhipster.github.io https://visualvm.java.net/ https://www.yourkit.com/ https://www.jclarity.com/censum/ http://grafana.org/ https://influxdata.com/ https://www.docker.com/ http://gatling.io
  25. 25. 25 @henri_tremblay henri@tremblay.pro http://www.montreal-jug.org/ Exemple de benchmark: http://blog.octo.com/lart-du-benchmark/ http://brownbaglunch.fr

×