Nouvelle version du tutoriel sur la création d’un test de webservice avec JMeter

Tout est dans le titre, je viens d’ajouter une version mise à jour du tutoriel sur la création d’un petit test de charge sur un webservice avec JMeter.

Cette mise à jour pour avoir des captures d’écrans en français, et également pour montrer la nouvelle présentation de la requête WebService SOAP dans JMeter. En effet avec la (future) version 2.5.1 de JMeter, quelques changements pour rendre plus jolie et conviviale cette requête ont été fait.

Quelques nouvelles de JMeter

Cela fait un petit moment que je n’ai pas publié de billet, une des raisons principales de l’absence de billet, c’est JMeter.
Depuis la publication de la version 2.5, l’activité du bugzilla de JMeter a fortement augmenté. D’une part, des bugs ont été trouvés sur des nouvelles fonctionnalités de la 2.5, et d’autre part, de nouveaux contributeurs ont proposé bons nombres de correctifs à de nombreux bugs.
Concernant les bugs trouvés sur les nouvelles fonctionnalités, j’en mentionne deux : Continuer la lecture de Quelques nouvelles de JMeter

Apache JMeter 2.5 est sorti

Une nouvelle version de JMeter vient de sortir, elle était en gestation depuis plusieurs mois. J’y voyais une version 2.4.1, mais finalement comme il y a de nombreuses fonctionnalités ajoutées, et un bon nombre de bogues corrigés, on est passé directement de la 2.4 vers la 2.5.

Par ailleurs, cette version 2.5 a un sens particulier pour moi, puisque j’ai joué le rôle du « release manager » pour elle. Ainsi j’ai réalisé le processus de « délivrance » de la nouvelle version (vote de release, création des archives à télécharger, signature numérique, mise à jour du site Jakarta/JMeter, et annonce).

Voici un petit tour des principales nouveautés :

Nouvelle implémentation Requête HTTP

Avant JMeter possédait deux implémentations différentes pour réaliser une Requête HTTP : Java et HTTPClient version 3.1.

Avec la version 2.5, il y a trois, toujours les deux premières plus une nouvelle « HTTPClient4 » qui dont repose sur la version 4.x de l’API HTTPClient d’Apache.

Lors de cet ajout, les deux échantillons requêtes HTTP existants ont été fusionné en un seul, et une nouvelle liste déroulante (cf capture) dans la configuration de la Requête HTTP permet de choisir l’implémentation. Par défaut, c’est « vide », et cela correspond à l’implémentation historique Java.

  • NB1. Il est possible de changer l’implémentation par défaut à utiliser par le Proxy JMeter, via le paramètre jmeter.httpsampler dans le fichier jmeter.properties.
  • NB2. Théoriquement la meilleure implémentation en termes de qualité/performance est HTTPClient4.

Récupération parallèle des ressources d’une page

Une nouvelle fonctionnalité ajoutée également dans la Requête HTTP, est la possibilité de récupérer en parallèle les ressources associées à une page (i.e. les css, js, images, etc), via un pool d’unités d’exécution dont la taille est paramétrable (cf. capture).

Cette nouvelle fonctionnalité permet entre autre de « simuler » mieux le comportement des navigateurs actuels qui parallélisent la récupération des éléments d’une page (pour un affichage plus rapide). Continuer la lecture de Apache JMeter 2.5 est sorti

Utiliser JMeter pour superviser un serveur Tomcat

Voici une nouvelle version du tutoriel JMeter pour superviser un serveur Tomcat. On passe à la version 7 de Tomcat et avec un JMeter en français.

Nous allons donc utiliser JMeter pour supervision le fonctionnement d’un serveur Tomcat à travers son interface de statut.

Le pré-requis est bien entendu d’avoir à disposition un serveur Tomcat (sous Unix/Linux ou Windows) tournant sur un Java JDK.

On va commencer par « ouvrir » le service de statut du Tomcat. Pour cela, Continuer la lecture de Utiliser JMeter pour superviser un serveur Tomcat

20 ans du noyau Linux et ma petite histoire avec Linux

Linux, le noyau qui est utilisé dans bon nombre de distributions GNU/Linux, fête ses 20 ans. Il est sorti en 1991 et on est en 2011 (soit 20 ans donc ;-)).

I'll be celebrating 20 years of Linux with The Linux Foundation!

Pour ma part, j’ai commencé à installer Linux sur un IBM Aptiva 486 SX 25 avec 4 Mo de RAM (mon premier PC) en 1995, j’étais au lycée, le CD était une Slackware fournie avec un livre dont le titre m’échappe. Le noyau Linux était à la version 1.2.3.

A l’époque, je me souviens avoir lu des articles sur Linux dans des magazines, j’en ai parlé à un ami et mentor en informatique (c’est lui qui m’a fait découvrir les dessous de Windows 3.1 : le DOS), il avait 10 ans d’expérience informatique et un bel Amiga (entre autres). Il m’a dit : Continuer la lecture de 20 ans du noyau Linux et ma petite histoire avec Linux

Envoyer un email avec JMeter via son élément Requête SMTP

Ce billet est un petit « howto » pour vous montrer comment utiliser JMeter pour envoyer un email (courriel), ici en utilisant le serveur de messagerie SMTP de Google Mail.

Pour rappel, le SMTP (Simple Message Transfer Protocol) est le protocole normalisé d’échange de message électronique (email). Dans JMeter depuis la version 2.4, un nouvel échantillon appelé Requête SMTP a été ajouté pour avoir un client SMTP qui envoi donc un email.

Bien entendu, JMeter étant un outil de test de charge, avec cet échantillon, on peut faire un test de charge sur un serveur de messagerie franchement installé pour vérifier sa tenue de charge et robustesse (ce qui est mon cas), on peut aussi utiliser cet échantillon SMTP pour par exemple s’envoyer un email de rapport à la fin d’un test de charge « long » (qui dure plusieurs heures ou jours), ou tout simplement dans le cadre de la mise en place d’un système d’alerte en cas de temps de réponse dégradé d’un site web (par exemple) avec un script qui s’exécute toutes les x minutes ou heures.

Revenons à notre sujet, voici notre arbre JMeter tout simple pour ce test :

Continuer la lecture de Envoyer un email avec JMeter via son élément Requête SMTP

Debian Live : voir ou tester Debian sans l’installer

Si vous souhaitez voir ou tester Debian afin de vous faire votre propre idée, le tout sans passer par l’étape de l’installation, une solution : Debian Live. Ces dernières sont des images ISO qui permettent de démarrer une Debian sur un ordinateur ou une machine virtuelle sans modifier le disque dur existant. Cela permet donc de tester ou voir la tête de Debian ou parfois pour les plus aguerris de l’utiliser comme cd/dvd de réparation. Pour ceux qui connaissent la distribution Ubuntu et ses images iso, les Debian Live c’est la même chose.
Comment faire : aller sur le site de Debian, et cliquer sur le lien de téléchargement Obtenir Debian. Sur cette page, il y a plusieurs choix, il faut diriger ses petits yeux sur  la colonne de droite et en bas, le lien « Essayer Debian en autonome avant l’installation »
Un clic sur ce lien vous amène sur une page Images d’installation autonomes. Pour récupérer directement une image ISO pour la graver ou l’utiliser avec une clé ou comme « cdrom » pour une machine virtuelle, il faut cliquer sur ‘amd64‘ (ou i386 pour les gens qui veulent du 32 bits) dans la section « CD, DVD et USB » (sans bittorrent). Continuer la lecture de Debian Live : voir ou tester Debian sans l’installer

Quelques nouvelles en ce mois de mai

Cela fait un bout de temps que je n’ai pas poster un petit billet alors voici quelques nouvelles :

  • Tout d’abord, si je n’ai pas posté, c’est que j’ai pas mal de travail (comme bien souvent) à tel point que j’en rêve la nuit, plutôt, j’y réfléchis en dormant… (genre faut que j’essaye cela demain… ou bien je me vois en petit paquet ip traversant un routeur via un vpn…)
  • Je travaille en parallèle sur deux-trois projets, un premier sur la migration de serveurs de messagerie (SMTP/POP) vers une seule solution de messagerie (SMTP/POP(s)/IMAP(s)/Webmail) pour un total de 90 000 comptes à migrer. Dans les technologies utilisées : Debian 6.0 comme OS, du Postfix en configuration « virtual mail » pour le SMTP, Dovecot pour le POP/IMAP et leurs pendants SSL, Perdition en tant que reverse proxy POP/IMAP qui va faire de la répartition de charge vers les serveurs Dovecot, un webmail avec RoundCube. Le tout utilisant un référentiel de comptes dans une base MySQL répliquée en master/slave pour l’ensemble des briques logiques déjà citées. Dis comme cela c’est assez simple comme solution à mettre en oeuvre… c’est bien entendu le coté ‘migration’ qui complexifie la tâche, à savoir faire en sorte que les utilisateurs ne s’en rendent pas compte… à priori tous les obstacles techniques sont écartés, reste plus à le refaire sur la future production (la solution étant prototypée avec succès sur des VM) et basculer….
  • Un autre projet c’est la mise en place d’une solution Magento (solution de gestion d’un site e-commerce) en haute disponibilité et haute performance. On est toujours dans l’étape prototypage en VM. Ici les technologies c’est du Debian 6.0, DRBD en master-master (RAID-1 sur un réseau IP), MySQL master-master, Apache, PHP/Zend/APC, Memcached et Varnish. L’étape DRBD m’a coûté 2 jours à cause d’un « no » qui devait être un « yes » dans un petit fichier de configuration… Sinon, tout devrait bien aller…
  • Coté JMeter c’est assez calme, on prépare tranquillement la version suivante (2.4.1).

Voilà ; Voilou…

Deux tutoriels sur la réalisation de plan de tests de charge

Antonio Gomes Rodrigues nous livre deux tutoriels sur la réalisation de plan de tests de charge :

Par le passé, il avait déjà publié un autre tutoriel sur l’audit de performances d’une application en Java EE.

Intégration d’un test JMeter dans Hudson avec le plugin Hudson Performance

Hudson est une plate-forme d’intégration continue, JMeter est un outil de test de charge et aussi de tests fonctionnels (on a tendance à l’oublier, mais pour faire du test de charge, il faut savoir faire du test fonctionnel). Que diriez vous d’intégrer dans Hudson l’exécution d’un test (de charge) JMeter, et d’avoir un beau graphique pour voir l’évolution des temps de réponses de votre application en fonction des ‘builds’ Hudson / versions de votre application ?

La réponse à cette question est l’objet de ce tutoriel. Continuer la lecture de Intégration d’un test JMeter dans Hudson avec le plugin Hudson Performance