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

OpenOffice / LibreOffice : un choix pas si extra-terrestre aujourd’hui, et mon point de vue.

J’ai envie de partager cet article avec vous. Il nous apprend que finalement, le choix d’OpenOffice (ou – j’ajoute – de LibreOffice) par rapport à une migration vers MS Office 2007 ou 2010 n’est pas si invraisemblable que cela, en fonction de la population d’utilisateurs cible.

Par ailleurs, il semblerait que le basculement vers OpenOffice montre les adhérences de sa suite MS Office par rapport à d’autres logiciels comme SharePoint ou SQL Server, (qui en doutait ?).

Je suis assez content de voir que les gens (responsables de parcs bureautiques) continuent à se poser des questions sur la suite bureautique déployée chez eux.

Bien sûr OpenOffice/LibreOffice ne sont pas les meilleurs logiciels de la Terre (qui peut le prétendre?), mais pour mon cas, et ceux depuis plusieurs années, c’est plus que parfait pour mon utilisation.

Il y a eu bien entendu la phase de transition à passer, c’est-à-dire :

  • Retrouver ses repères par rapport à MS Office, pour cela, ne pas hésiter à lire quelques billets de blog ou articles sur des sites genre 01net.com sur le sujet
  • Progressivement convertir sa base de « modèles » en documents OpenOffice (il est préférable d’utiliser les formats natifs OpenOffice (.odt, .ods, .odp) pour ses documents.
  • Ne pas avoir peur d’envoyer ces documents OpenOffice par email avec deux formats : OpenOffice et PDF, en indiquant que le format est OpenOffice (lisible avec MS Office depuis la version 2007 SP2)
  • Arrêter d’installer MS Office chez sa famille ou ses amis… et oui en tant qu’informaticien, on vous le demande souvent… Oh, je viens de m’acheter un nouvel ordinateur ! Est-ce que tu peux m’installer Office ? Réponse : oui sans problème, je vais t’installer une suite bureautique qui s’appelle OpenOffice. Ici, le demandeur ne va retenir que le mot « Office » dans OpenOffice… Si il est du genre méfiant, on peut lui configurer son OpenOffice pour délivrer par défaut les formats MS Office (.doc, .xls, .ppt).

La phase de transition doit certainement dépendre de chacun. Pour moi, cela a duré environ 6 mois (en 2007/2008) avec quelques retours ponctuels vers MS Office pour retravailler des vieux documents MS Office complexes qui ne méritaient pas d’être enregistrés en OpenOffice.

Aujourd’hui, cela fait bien longtemps que je n’ai pas utilisé MS Office (pour Word, Excel ou PowerPoint) car :

  • Les gens m’envoient facilement des PDF plutôt qu’un document Word (plutôt dans un souci de protection de son document que dans un souci de « compatibilité »…)
  • Les documents MS Office que je reçois s’ouvrent bien avec OpenOffice (même les documents OpenXML), et cela suffit bien pour que je puisse les lire. Je n’ai pas besoin de faire des retours sur ces documents en général, et si besoin OpenOffice suffit pour ajouter quelques lignes.
  • Dans ma société, j’utilise au maximum (que) des documents OpenOffice avec mes collègues, qui ont tous un OpenOffice d’installé (même sous Windows) (c’est une obligation chez nous).

Pour conclure : content depuis plusieurs années d’OpenOffice/LibreOffice. J’apprécie qu’OpenOffice fasse son bonhomme de chemin dans les entreprises.

 

JMeter et Groovy : avoir des requêtes HTTP concurrentes

Maintenant que nous avons vu comment faire des scripts Groovy dans JMeter, utilisons Groovy pour faire des requêtes HTTP parallèles avec JMeter.

Oh ! Des requêtes parallèles !? Le vieux rêve dans JMeter… certainement l’une des premières questions que j’ai posé sur la mailing-list des utilisateurs JMeter (jmeter-user).

Bon, je vous préviens, il ne s’agit pas encore de faire un méga test de charge avec ce genre de requêtes parallèles, mais cela peut aider pour des tests ayant des besoins de lancement simultané de requêtes, ou toute autre idée qui vous vient à l’esprit.

Le premier pré-requis est donc d’avoir un JMeter prêt pour faire du Groovy.

Ensuite, nous allons utiliser HTTPBuilder, qui est une couche API basée sur Apache HttpClient, et accessible en Groovy. HTTPBuilder sait faire pas mal de choses (comme du parsing automatique de requêtes JSON), etc. Ici, nous allons dans ce billet seulement nous intéresser à sa capacité à faire des requêtes HTTP de manière asynchrone.

Le petit nom de ce type de requête dans HTTPBuilder est AsyncHTTPBuilder. C’est une requête HTTP qui, au lieu d’être exécutée en premier plan, est envoyée en arrière-plan via une exécution dans un pool d’exécution (élément Executor dans l’API Java) et l’utilisation d’un type particulier : java.util.concurrent.Future pour le résultat de l’exécution de la requête. Ce ‘future’ permet d’avoir la possibilité de lancer plusieurs requêtes HTTP asynchrones (quasiment en même temps), puis de récolter le résultat de leurs exécutions ensuite. Continuer la lecture de JMeter et Groovy : avoir des requêtes HTTP concurrentes