Tomcat ou Jboss, enregistrer le temps de traitement des requêtes HTTP

Avec Tomcat ou Jboss, il est possible d’enregistrer le temps de traitement d’une requête HTTP. Il y a en effet une valve AccessLogValve (désactivée par défaut) qui trace les accès (requêtes) HTTP qui sont effectués sur le serveur. Avec une petite modification du format du log, on peut ajouter l’enregistrement du temps de traitement coté Tomcat ou Jboss de la requête.

Ceci est particulièrement utile pour décorréler le temps de traitement par rapport au temps de réponse enregistré dans un outil de test de charge, comme JMeter.

Voici comme faire dans Tomcat :

Au niveau du fichier Tomcat_Home/conf/server.xml, on trouve la section suivante en commentaires :

<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
--->

Continue reading ‘Tomcat ou Jboss, enregistrer le temps de traitement des requêtes HTTP’ »

Comment avoir le format A4 par défaut sur Ubuntu avec OpenOffice.org en version américaine ?

Bon, la question peut sembler bizarre… « Comment avoir le format A4 par défaut sur Ubuntu avec OpenOffice.org en version américaine ? » au lieu du format « letter ».

Et oui, j’utilise un Ubuntu en version en_US (américaine) alors que je suis francophone dans un monde francophone avec du matériel ‘francophone’ (clavier, mesure en cm, papier A4, etc.), d’où la question…

La réponse à cette première question ne fut pas facile à trouver, je la cherche depuis quelques mois. J’ai trouvé ce soir sur ce site, bien que les messages de ce forum datent de 2008… Je ne peux m’empêcher d’en parler sur ce blog, histoire que cela aide quelqu’un d’autre un autre jour.

Il suffit d’éditer le fichier /etc/papersize (en tant que root) et de changer ‘letter’ par ‘a4′. C’est tout.

./

Sous Linux/Ubuntu la migration de poste, c’est facile !

Pour compléter le billet sur mon nouveau portable, je voudrais vous dire que la migration des données et de la configuration d’un portable Ubuntu vers un autre portable Ubuntu, c’est facile, rapide et sans surprise. Continue reading ‘Sous Linux/Ubuntu la migration de poste, c’est facile !’ »

Nouvel ordinateur : Dell Latitude E6500

J’ai reçu hier mon nouvel ordinateur portable, je partage avec vous, quelques photos et impressions.

C’est un Dell Latitude E6500, équipé d’un processeur Intel Core 2 Duo cadencé à 2,53 GHz, avec 4 Go de mémoire vive, un disque dur de 250 Go, un écran 15 pouces avec une résolution de 1440×900 pixels et une carte Nvidia Quadro NVS avec 256 Mo. Bien entendu, Wifi, Bluetooth, ethernet gigabit et aussi webcam, micro, lecteur SD et lecteur smart card. Une belle machine en deux mots. Continue reading ‘Nouvel ordinateur : Dell Latitude E6500’ »

[Linux] Exécuter une commande avec un utilisateur normal en tant que root à distance sans mot de passe et en SSH

Comment exécuter une commande root avec un utilisateur normal, à distance et sans saisir de mot de passe, le tout en SSH entre deux machines Linux ?

Voici une réponse :

Pour répondre à la problématique du « à distance sans saisir de mot de passe avec SSH », nous allons utiliser la notion de clé SSH.

Sur le poste de travail Linux (le poste qui va lancer la commande à distance), nous allons générer la clé SSH avec la commande suivante :

ssh-keygen -t dsa -f $HOME/.ssh/MON_LOGIN

Puis nous allons transférer la partie publique de la clé, en utilisant l’utilitaire ssh-copy-id :

ssh-copy-id MON_LOGIN@192.168.1.1

Nouvelles, JMeter flux parallèles : développement ‘in deep’…

Aucun billet depuis le début de cette nouvelle année, je dois quelques nouvelles à ce blog.

Tout d’abord, j’ai eu un changement d’activité professionnelle en ce début d’année, qui m’accapare beaucoup de temps. Cela devrait se tasser et me permettre d’ajouter quelques billets sur JMeter.

Ensuite, car je travaille « in deep » dans JMeter, je suis en effet entrain d’essayer d’y ajouter un contrôleur « parallèle » pour permettre l’exécution en parallèle de requêtes HTTP pour un même utilisateur virtuel.

Ceci permettra de mieux simuler certains sites web 2.0 qui ont beaucoup de requêtes AJAX, ces dernières utilisant à bon escient les flux parallèles possibles dans un navigateur internet moderne (exemple, Firefox 3.5 c’est 6 flux parallèles). L’idée étant d’avoir un temps de réponses « écran web 2.0 » proche de celui du navigateur. En effet, aujourd’hui avec JMeter, si j’ai un écran d’un site web 2.0 ayant 10 requêtes (1 principale et 9 requêtes ‘ajax’), JMeter fera 10 requêtes en série, et donne donc un temps différent et généralement plus important que le navigateur qui lui, envoie ses 10 requêtes sur 2 à 6 flux parallèles. On peut voir ce phénomène sur Firefox avec le plugin Firebug ainsi qu’au niveau du paramètre network.http.max-persistent-connections-per-server dans Firefox > about:config.

C’est un travail difficile de développement, car la conception applicative de JMeter est « historique » (depuis 1998), et parfois empirique. La gestion des unités d’exécution s’effectuant en 1 thread = 1 VU, avec un ensemble de services disponibles par thread à un niveau élevée (très loin de la requête HTTP). Pour faire des flux parallèles, j’ai besoin de ces services à un niveau très bas (proche de la requête HTTP), et là c’est difficile.

Enfin, je pense avoir réussi à trouver une solution, j’ai maintenant un contrôleur qui sait balancer n flux parallèles, maintenant il faut faire un (gros) travail sur la préservation de l’intégrité des données partagées entre les flux parallèles…

J’espère que je vais réussir complètement à faire ceci.

Ah, j’allais oublier ! Très bonne année 2010 !

./

Quelques cas d’utilisation de l’extracteur d’expression régulière dans JMeter

Voici un billet pour parler de l’extracteur d’expressions régulières dans JMeter.

Commençons par le plan de test : très simple, une requête avec en élément fils un extracteur d’expression régulière.

La requête HTTP est simplement la page d’accueil de ce blog.

On place un échantillon Débogage après la requête HTTP qui possède l’extracteur d’expression régulière, il permet d’afficher différentes informations internes à JMeter. Ici, on s’intéresse aux valeurs des variables de JMeter.

Ensuite (enfin) vient l’extracteur d’expression régulière, on commence par un « simple ».

Quelques explications : Continue reading ‘Quelques cas d’utilisation de l’extracteur d’expression régulière dans JMeter’ »

Changer l’adresse IP source d’une requête HTTP lors d’un test avec JMeter

Dans la prochaine version de JMeter (la 2.4) et actuellement dans la version « nightly build », une nouvelle fonctionnalité permet le changement d’adresse IP source pour les requêtes HTTP transmises par JMeter.

L’intérêt de cette possibilité est (par exemple) de permettre de faire des tests de charges sur des architectures techniques comportant un suivi de session par adresse IP (typiquement des répartiteurs de charges).

Voici un petit mode d’emploi. Continue reading ‘Changer l’adresse IP source d’une requête HTTP lors d’un test avec JMeter’ »

Retour dans le passé, voici les différentes versions de JMeter

La première version de JMeter, estampillée 1.0, date du 15 décembre 1998. Ensuite l’année 1999 va voir au moins 4 versions successives de JMeter.
Aujourd’hui, près de 11 ans après, il y a eu environ 20 versions ‘majeures’ de JMeter, et nous en sommes à la version 2.3.4.

Voici un petit retour-arrière sur les différentes interfaces graphiques de JMeter depuis la première version jusqu’à la dernière.

Et voici la première version 1.0.2, on remarquera la simplicité de l’interface : un seul écran, un bouton Start, un Stop. Seulement 10 unités d’exécution maximum. On reconnaît le récepteur de résultat graphique que l’on retrouve encore dans les versions d’aujourd’hui.

Continue reading ‘Retour dans le passé, voici les différentes versions de JMeter’ »

Envoyer en ligne de commande des paramètres à votre scénario JMeter

Voici un petit billet pour vous monter comment lancer JMeter en ligne de commande tout en paramétrant son scénario de test.

En effet, vous pouvez avoir l’idée ou l’envie de faire une série de test en jouant sur certains paramètres de votre scénario JMeter, le tout en ligne de commande. Par exemple, faire un test avec 1 utilisateur, puis le même test avec 10 utilisateurs, et le même avec 100 utilisateurs.

Bien évidemment vous pouvez les lancer depuis l’interface graphique de JMeter, à la suite, tout en modifiant le paramètre du nombre d’utilisateurs dans l’interface, mais c’est trop facile ;-) .

Donc pour le faire en ligne de commande, il faut d’abord passer par l’interface graphique JMeter. En effet, nous avons besoin d’utiliser une fonction JMeter qui va permettre de lire une propriété JMeter et renvoyer sa valeur. Cette fonction doit être appelée à la place de la valeur du champ correspondant au paramètre que l’on veut rendre « paramétrable »…

Le mieux est d’abord de voir la capture d’écran :

Les différents ${__P(xxx,yyy)} correspondent à notre fonction JMeter qui permet de lire une propriété JMeter, et qui la renvoie. Continue reading ‘Envoyer en ligne de commande des paramètres à votre scénario JMeter’ »