Articles avec le tag ‘tests de charge’

Les tests de charge à caractère technique (robustesse) sont ils importants ?

Introduction

Mettons-nous d’abord d’accord sur la définition de « tests de charge à caractère technique (ou test de robustesse) ».
Il s’agit de tester un système en mode dégradé : ralentissement de l'application, un des serveurs est non disponible, réseau saturé, panne mémoire, disque plein, réseau défaillant, etc. sous forte charge.
Maintenant que nous sommes d’accord, commençons.

Votre application a réussi tous les tests, qu’ils soient unitaires, d’intégration, fonctionnels ou de charge et nous voilà enfin prêts à la mettre en production.
Mais vous vous posez toujours des questions sur comment va réagir votre application en cas de fonctionnement dégradé.

Les délais font que l’application est mise en production sans la réalisation de ces tests.
Deux jours plus tard, après une campagne de publicité qui vous a apporté beaucoup de nouveaux utilisateurs, on vous réveille à deux heures du matin pour que vous veniez d’urgence au bureau, car l’application est dans un état instable.
Dommage, car des tests de robustesse auraient sûrement pu vous éviter ce désagrément.

Vous ne me croyez pas, vous avez raison.

Et si je vous dit que lors de mes missions j'ai rencontré :

  • des crashs de l'application à cause d'un consommateur JMS non démarré ;
  • des crashs de l'application à cause d'un load balancer mal configuré ;
  • des problèmes de répartition de charge dans un cluster d'Apache ActiveMQ après l'arrêt/relance d'un noeud.

Toujours pas. Et si je vous dit que ces problèmes sont arrivés dans des grosses structures sur des projets plus ou moins gros et avec des gens compétents ?

Bon vous ne me laisser plus le choix, nous allons voir un exemple qui vous prouvera (enfin je l'espère) l'importance de ces types de tests.

Mais avant cela comment allez vous reproduire ce bug qui est arrivé en environnement de production sur votre environnement de test ?

Avec un test de robustesse bien sûr 😉

Lire la suite de cette entrée »

Voici la présentation « Apache JMeter, Java et Groovy sont sur un bateau » présentée au Paris JUG

logoparisjugnvlleversion
Pour ceux qui n'ont pas pu venir au Paris JUG, voilà ma présentation « Apache JMeter, Java et Groovy sont sur un bateau ».

Que ce soit d’évaluer le niveau de sécurité d’un captcha, chiffrer le coût en performance d’activation des logs GC d’une JVM ou d’activer/désactiver des fonctionnalités de notre application par JMX lors d’un test, l’outil de test de charge Apache JMeter offre un spectre de fonctionnalités avancées digne des meilleures solutions éditeurs. Venez découvrir les possibilités infinies qu’offre Apache JMeter associé à du Java et du Groovy.

Lire la suite de cette entrée »

Voici la présentation « Test de charge avec Apache JMeter » présentée au YAJUG

Pour ceux qui n'ont pas pu venir au YAJUG et qui ne veulent pas attendre la vidéo, voilà ma présentation « Test de charge avec Apache JMeter » en français.

Vous y apprendrez comment mettre en place une campagne de test de charge à l'aide de JMeter.
Pour cela, nous verrons comment générer une charge réaliste et controllée.
Puis la mise en place d'une supervision efficace à l'aide de JMXTrans.
Et nous finirons sur l'analyse des résultats à l'aide de QlikView.
En bonus on verra quelques cas d'utilisations avancées de JMeter.

Interview de Philippe Mouawad – développeur et membre PMC du projet Apache JMeter

Après l'interview de Milamber, voici l'interview de Philippe Mouawad (développeur et membre PMC du projet Apache JMeter).

Lire la suite de cette entrée »

Voici la présentation « Mesurer la performance dans le milieu hostile du développement Java » présentée au breizhcamp 2012

Pour ceux qui n'ont pas pu venir au breizhcamp 2012 et qui ne veulent pas attendre la vidéo, voilà ma présentation « Mesurer la performance dans le milieu hostile du développement Java ».

Vous y apprendrez comment mesurer les performances applicatives sur un poste de développeur Java avec des produits open source.

Présentation de l’outil Apache JMeter – partie 2


Après avoir vu dans la première partie l'utilisation de Apache JMeter, nous allons continuer son apprentissage. Pour cela nous verrons comment enregistrer de manière réaliste (en particulier sur les temps de réponse) un script et comment le lancer.

Nous utiliserons la version 2.6 en français de JMeter.

Lire la suite de cette entrée »

Présentation de l’outil de génération de jeux de données Benerator

Afin qu'une campagne de tirs de charges soit la plus utile possible, il est souvent nécessaire d'avoir un jeu de données conséquent et réaliste. Pour cela plusieurs solutions existent :

  • importation des données de la base de données de production ;
  • création du jeu de données à l'aide d'outils maison ;
  • utilisation d'ETL ;
  • utilisation de l’outil de test de charge et/ou de test fonctionnel afin d’exécuter des scripts qui vont remplir la base ;
  • utilisation d'outil de création de données.

Nous allons nous focaliser sur la dernière solution avec l'utilisation de l'outil Benerator qui couvre largement ce besoin.
Lire la suite de cette entrée »

Pourquoi faire attention au volume du jeu de données en base

1. La source du problème

Lorsqu'on développe une application, pour gagner du temps on travaille souvent avec des jeux de données réduits.
En dehors de la question de pure "facilité", cela permet également de :

  • réduire le temps d’exécution des requêtes SQL ;
  • réduire le temps de chargement de la sauvegarde de la base ;
  • avoir toute l'application sur son poste de travail ;

Lire la suite de cette entrée »

Pourquoi désactiver les plugins du navigateur Web lors de l’enregistrement d’un scénario ?

Dans la majorité des outils de test de charge (HP LoadRunner, Apache JMeter, Microfocus SilkPerformer...) l'enregistrement des scripts est réalisé à l'aide d'un proxy. Toutes les requêtes qui passent par ce proxy sont enregistrées et l'on peut donc se retrouver avec des requêtes qui n'ont rien à faire dans notre script, en particulier si certains plugins sont installés dans le navigateur Web utilisé pour notre enregistrement.

Ces requêtes inutiles vont faire appel à des environnements externes à celui qu'on teste et vont poser un certain nombre de problèmes comme :

  • avoir des temps de réponse faussés, dû à l'attente d’acquittement des sites externes ;

  • se faire black-lister par l'environnement externe ;

Lire la suite de cette entrée »

Pourquoi tester les résultats de chaque requête dans un script de test de charge ?

Il peut être tentant dans un script de test de charge de ne pas tester le résultat de chaque requête. Mais en faisant cela, on s'expose à de graves problèmes pouvant fausser les résultats.

Car si le résultat de la requête n'est pas testé, on ne sait pas si elle s'exécute avec succès et donc le résultat final du tir de charge proposera des moyennes de valeurs complètement faussées.

Cela revient à additionner des patates avec des carottes et comme nous l'ont appris nos professeurs, cela n'a aucun sens.

Lire la suite de cette entrée »

Mots-clés
RSS Feed