mercredi 27 juin 2007

Test de performance IHM Web

Dans la série outils de test, je découvre un nouvel outil Open Source de "Web Load Testing" : WEBLOAD. Cet outil est passé en open source récemment, peut-être pour lui redonner un second souffle ...
En outil équivalent commercial, il y a l'incontournable LoadRunner (de Mercury) qui est très puissant mais également très cher ...

Phase 1 : le scénario

L'objectif de ce genre d'outil est d'enregistrer un scénario de navigation d'un utilisateur à l'aide d'un browser Web classisque. Ce scénario peut alors être customisé pour mettre un peu d'aléa, simuler plusieurs utilisateurs avec plusieurs profils, ... Bref, tenter de rendre le scénario crédible par rapport à une utilisation réelle de production.

Phase 2 : les tirs de bench

Une fois le scénario obtenu, vous pouvez simuler un grand nombre d'utilisateur et l'outil enregistre le comportement de la plate-forme. Vous analysez ensuite les résultats pour voir si votre application supporte la charge voulue ...

Phase 3 : l'analyse

C'est à ce moment que vient une phase qui peut-être longue d'analyse, de tuning système, applicatif, ... pour mieux exploiter les ressources de votre machine. Il n'est pas rare de voir les temps de réponse augmenter alors que le CPU du serveur plafonne à 5 ou 10 % ! La solution dans ce cas n'est certainement pas d'augmenter la puissance du serveur ...

Ensuite on répète les phases 2 et 3 pour vérifier que les modifications apportées suite à l'analyse ont un effet bénéfique ...
Si vous êtes pas trop bon, le nombre d'itération peut être important ... C'est un métier le bench !

WebLoad


Pour revenir au nouvel outil énoncé au début du billet, vous pouvez le téléchargez sur sourceforge.
Le site de webload montre des demos (en flash) et des screenshots de son outil.

En Open Source, les outils concurrents que j'ai eu l'occasion d'utiliser sont :
  • OpenSTA : Gros inconvénient d'être uniquement disponible sous Windows (je suis sous Ubuntu ...). Il est assez performant en injection et riche en fonctionnalité mais il est parfois instable. Il n'a pas évolué depuis 2 ans ...
  • L'incontournable JMeter : Fait en Java, il est portable sur n'importe quelle plate-forme et dispose d'un grand nombre d'utilisateur. Il a l'avantage de pouvoir s'intégrer facilement dans une chaine d'intégration continue, permettant ainsi de suivre les évolutions des performances en même temps que j'ajout de fonctionnalités.
  • L'inconnu Tsung (anciennement IDX-Tsunami) : Développé à l'origine par Idealx, cet outil m'a impressionné par sa puissance d'injection. Il n'est pas très "user friendly" car il faut aimé la ligne de commande et édité des fichiers XML mais sur mon portable (Dell Latitude D505, 1.7 GhZ), j'ai réussi à dépasser les 1000 requêtes par seconde ...
  • The Grinder : Outil que je connais mal mais dont on m'a dit du bien. Il semble très riche en fonctionnalité. BEA ne semble pas très loin derrière ...
  • Le Microsoft web application stress tool que j'ai utilisé il y a longtemps maintenant. Bien sûr, cet ouil ne fonctionne que sous environnement Microsoft ...
  • En bien d'autres qui ne me viennent pas à l'esprit !
Dès que j'ai un peu de temps, je teste ce nouveau venu ... Peut-être l'occasion d'un nouveau billet !

jeudi 21 juin 2007

Outil de tests fonctionnels d'IHM Web

Vous avez commencé à utiliser des outils de test de type JUnit pour réaliser des tests de non régression et/ou mettre en place une plate-forme d'intégration continue.

Dans une application Web, on ne peut se contenter de tester uniquement des services métiers, seulement in a fait qu'une partie du boulot.

Qu'est-ce qui assure que lorsqu'on a fait un changement sur un service métier, il n'y a pas un impact sur une page de notre application Web ?

Le test de la partie présentation est est donc également important.

Comment tester la partie présentation de manière automatique ?

Dans cette question, je parle uniquement de tests fonctionnels et non de tests multi-navigateurs de présentation du genre mon cadre est décalé de tant de pixels sur IE et pas sur Safari ou Firefox ...

Il existe quelques outils pour tester les IHM Web et je suis tombé sur cette vidéo Google présentant l'outil Selenium :


D'autres outils existent comme : Sahi, FIT, Watir, FitNesse, ...

Je n'ai pas testé l'ensemble de ces outils de manière approfondie mais, après quelques tests basics, Selenium me semble être le plus souple ayant entre autre pour qualité :
  • Scénario facile à générer grâce à une extension Firefox
  • Pas sectaire au niveau OS : Windows, Linux et Mac OSX (ben oui, c'est important pour moi cela ...)
  • Pas sectaire non plus en terme de langage : Java, .NET, Perl, Python et Ruby
  • Compatible AJAX
Vous n'avez plus qu'à essayer ;-)

lundi 18 juin 2007

OGM : Mais Monsanto NK603 et MON863 sur la sellette ...

Après avoir assisté en France à une "comédie quasi burlesque" de nos politiques (ex-ministre de l'écologie et ministre de l'agriculture) sur la non-interdiction du mais transgénique MON810 (cf. PS en bas de ce post), nous voici avec un nouveau pavé dans la marre des OGM :

Le CRIIGEN (organisme indépendant) vient de sortir une nouvelle étude sur le Mais NK603 à la suite de celle sur le Mais MON863 montrant des risques sérieux de toxicité ...
Voici quelques liens pour vous informer :
Combien d'études faudra t'il pour que nos politiques ouvrent les yeux et arrêtent d'écouter les lobbies de l'agriculture

PS : Cet évènement a eu lieu suite à un interdiction récente du MON810 en Allemagne s'ajoutant à la liste des pays où ce maïs est proscrit : l'Autriche, la Grèce, l'Italie, la Suisse, la Hongrie et la Pologne... Je parle de comédie mais malheureusement, il n'y a rien de comique ...

Les Logiciels Libres sur LCI ...

Je relaye une news de Tristan Nitot (President de Mozilla Europe) dont le Standblog fait parti de mes lectures quotidiennes ... pour l'aider à faire péter le compteur de téléchargement des podcasts sur LCI ...

Le magazine Plein Ecran passé ce week-end sur LCI avait pour sujet les logiciels libres. Les podcasts sont disponibles :
  • Sur le portail LCI
  • En téléchargement de fichier MPEG4 :
On y parle du dernier évènement sur Paris (Paris Capitale du Libre) avec un reportage à la clef. Ceci ne pourra que faire plaisir à, je l'espère, un de mes nouveaux et nombreux lecteurs (je l'espère en tout cas), appelé biologeek

Globalement, c'est l'aspect des logiciels libres pour le grand public qu'on retrouve et c'est assez intéressant ...

vendredi 15 juin 2007

Rencontres GWT 2007

Pour ceux qui ne connaissent pas GWT, il s'agit d'un framework pour développer des IHM Web "full Ajax" promu par Google. GWT signifie Google Web Toolkit. Les applications Web développées par Google utilise ce framework, Gmail par exemple.

Google a eu la bonne idée à la fin 2006 de rendre Open Source son framework. Il a dépassé récemment le millions de téléchargement et semble avoir un bel avenir.

Les sites de référence application-servers et dotnetguru s'associent avec TV4IT et developpez.com pour créer un nouvel évènement : Les rencontres GWT 2007

Je me suis inscrit et espère faire parti des "élus" chanceux car le nombre de place est limitée.

Rendez-vous donc le 4 juillet à La Défense

mercredi 13 juin 2007

Batch avec Hibernate ...

Voici une problématique à laquelle j'ai été récemment confronté. Mon problème était de faire un batch java
  • pour importer des données dans une base de reporting
  • pour consolider ces données pour préparer les rapports
Dans un premier temps, avec les mots clés Java et Base de données, je me suis naturellement tourné vers MySql (de base sur mon Ubuntu) et Hibernate.

Je fais ma petite recherche sur Internet et trouve plusieurs moyens de réaliser des batchs. Voici les pointeurs que j'ai retenu :
Au final, j'ai opté pour une solution simple, l'utilisation de l'objet ScrollableResults pour lire mes quelques 100000 lignes et l'ajout de l'option batch-size=30 dans mon fichier de mapping pour limiter le nombre de requêtes insert (hibernate faisant des insert par paquets de 30).

Au final, voici un bout de code réutilisable pour l'utilisation de l'objet
ScrollableResults :
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();

Query query = session.createQuery("from TableData t where ...");

ScrollableResults results = query.scroll();

while (results.next()){
// Récupération des données et exploitation
TableData tableData = TableData (results.get()[0]);
...
// Ajout de données consolidées
// => requêtes insert par paquet par Hibernate
...
session.saveOrUpdate(element);
...

}
results.close();

tx.commit();
session.close();

Si vous avez d'autres suggestions, n'hésitez pas à laisser un commentaire ...

mardi 5 juin 2007

La maison des negawatts

Maintenant que vous êtes au point sur les systèmes de chauffage et la production d'energie pour la maison (cf. billet précédent du livre Guide des énergies vertes pour la maison), il vous faut, pour vous guider sur vos actions de tous les jours, un livre qui illustre la démarche des négawatts : La Maison des [néga] watt, toujours aux éditions Terre vivante

Voici sa couverture :


lundi 4 juin 2007

Guides des énergies vertes pour la maison

Après la voiture et l'electro-ménager, vous pouvez vous intéresser aux énergies vertes ...

J'ai lu en décembre dernier un excellent ouvrage sur le sujet qui synthétise ce qu'il existe aujourd'hui comme source d'énergie renouvelable. Je vous le conseille vivement à la lecture. Ce livre est aux éditions terre vivante. Voici la couverture :

Guide Top Ten WWF-France / CLCV

Un premier billet spécial dédicace pour Alexis ;-)

A tout celui qui veut s'équiper en lave-linge, congélateur, frigo ou voiture. Un excellent point de départ est :

le Guide Top Ten : http://www.guide-topten.com/

Il s'agit d'un site qui fait un comparatif avec une vue écologique sur la consommation et les nuisances (pollution, bruits, ...).

vendredi 1 juin 2007

Et hop, un blog de plus dans la blogosphère !

Bonjour et ...

Bienvenue au lecteur itinérant qui lira mes news sur les sujets qui m'intéressent.
Coté professionnel, je suis architecte Java EE. Coté personnel, j'ai une certaine sensibilité pour l'écologie. Ces 2 sujets sont tellement présents chez moi que des collègues m'aurait volontiers acheter un T-shirt ayant comme inscription "Ecolo Geek" ... J'ai donc repris ces 2 termes dans le titre de ce blog comme un clin d'oeil à cette anecdote ...

Les sujets seront donc probablement :
  • L'informatique
    • avec des sujets assez techniques sur le monde Java EE
    • avec des news sur les logiciels libres que j'utilise quotidiennement
  • L'écologie en général
A bientôt dans mes prochaines news ...

Laurent