Test::WWW::Mechanize::Runner est publié

Comme expliqué ici, Test::WWW::Mecanize::Runner est publié.

Tester des applications Web avec Perl

Après avoir fouillé un peu pour voir ce qui se fait en matière de tests fonctionnels pour les applications Web, je suis tombé sur la combo qui tue :

Il manquait à mon gout juste une chose : un wrapper qui vous permette d’écrire un scénario sans se soucier de l’agent à utiliser (WWW, Mozilla ou IE). En effet, ça serait vraiment dommage d’avoir à écrire autant de scénario qu’on a d’environnement à tester.

J’ai donc écrit un petit wrapper
pour écrire une suite de test qui joue un scénario avec l’agent que l’on souhaite.

Globalement ça marche comme ça :

  1. on écrit le scéario qui nous plait dans un module qui hérite de Test::WWW::Mechanize::Runner dans des “suites”
    package MonScenario;
    use Test::WWW::Mechanize::Runner;
    use base 'Test::WWW::Mechanize::Runner';
    
    suite load_google => sub {
        my ($agent) = @_;
    
        ok($agent->get('http://www.google.fr'),
            'GET http://www.google.fr');
    };
    
  2. le fichier de test ne comprend que 3 lignes et ressemble à ça (pour un jeu avec Mozilla::Mechanize) :
    use MonScenario;
    MonScenario->init('mozilla');
    MonScenario->run();
    

Bientôt sur le CPAN…

PS : bon, il y a un soucis de compilation pour Mozilla::DOM (une dépendance de Mozilla::Mechanize) sur Debian (il cherche à utiliser le xpcom de mozilla alors que debian oblige à passer par xulrunner) ; le patch est simple, je compte le soumettre dans le BTS du CPAN je l’ai soumis sur le BTS du module, et si je trouve une demi-heure quelque part, à packager libmozilla-mechanize-perl.

Posted in Main

Tags: , ,

Permalink 1 Comment

Extension Firefox pour Yoolink

Yoolink avance à grands pas, et ça fait bougrement plaisir. Aujoutd’hui, comme l’annonce le blog officiel, nous vous proposons une extension Firefox pour pouvoir sauvegarder vos favoris en un clic.

A vos bookmarks !

Sarkozy : Faîtes ce que je dis, pas ce que je fait

Le président Sarkozy, c’est un peu notre grand patriarche à tous, un guide éclairé, un chef à plumes, un gourou.

Nous sommes ses disciples dociles et travailleurs, et comme dans toute famille respectable, nous nous devons de respecter ce vieil adage : « Faîtes ce que je dis, pas ce que je fais ».

La preuve en images :

Posted in Uncategorized

Permalink Leave a comment

Ca se passe à Paris : lecture dans le métro

Un truc marrant qui m’est arrivé hier matin dans les couloirs du métro, pendant un changement à Auber : je suis en train de terminer le tome 2 de Millénium et en plein dans un passage captivant (après les 250 pages lourdingues du début du livre, ça fait du bien) ; donc je me cale sur la droite du tapis roulant et continue ma lecture. Evidemment, chaque personne commence à me doubler (à Paris, on a pas idée de se laisser porter par un tapis roulant, on est pressé !)

Parmi les gens qui me doublent, je distingue un homme qui se retrourne en me doublant et me regarde intesément. Son regard ne lache pas prise et se montre insistant. Perturbé, et intrigué – qu’est-ce que ça peut lui foutre que je lise à celui-là ? – j’arrête ma lecture pour soutenir son regard. J’immagine que je ne dois pas le regarder très gentillement (oui, le métro à ça aussi de magique, par défaut, vous êtes enervé, en toute circonstance).

Nos regards se croisent.

Les deux loups citatdins s’observent.

Il cherche a regarder mon livre, comme si me lecture lui importait (mais c’est qui ce barge ??!)

Son visage se détend soudain, sa main gauche fait un mouvement, un livre, oui il me montre un livre.
Il sourit.
Il me montre le tome 1 de Millénium. Je comprend. Il me regarde plein de sympathie en affichant fièrement son livre, le tome 1, son trophée. Pas un mot n’est échangé mais nos regards suffisent, voici deux inconnus dans les couloirs du métro parisien, un matin, qui lisent deux volumes d’une même série.

Je souris à mon tour, le mystère est résolu.

Il reprend son chemin, et s’en va.

Posted in Uncategorized

Permalink 3 Comments

Frameworks Web en Perl : Coat::MVC, Catalyst ?

Les frameworks de développement Web sont très populaires aujourd’hui pour réaliser des sites. Nombre sont ceux qui se tournent vers Ruby on Rails, sa populairté et sa facilité de prise en main jouant beacuoup en sa faveur.

Le pendant de Rails en Perl, Catalyst est assez peu reconnu en dehors de la communauté Perl (c’est du moins mon sentiment). Pourtant, la richesse de Catalyst est indéniable, il s’agit là d’un framework complet (641 modules dans le CPAN à ce jour), extensible et puissant. Alors pourquoi cette frilosité ambiante comparé à l’accueil que reçoit Rails ?

Je pense qu’un élément de réponse réside dans la différence de stratégies :

  • Rails vous impose un mode de fonctionnement, et est livré clef en main avec une base fonctionnelle
  • Catalyst vous laisse le choix ; fondamentalement. Vous n’avez rien tant que vous n’avez rien choisi

Vous pouvez donc faire bien plus avec Catalyst qu’avec Rails, mais vous devez vous approprier Catalyst un peu plus que Rails pour débuter.

Pour ma part, ayant eu affaire à Rails sur un projet, j’ai trouvé là un terrain de jeu for stimulant et me suis lancé dans l’écriture d’un erzatz de Rails en Perl. Oh il n’y rien de bien solide ici, juste un prototype, sorte de framework en carton-pâte pour qui veut jouer avec Perl et les concepts de Rails.

Ce projet m’amuse beaucoup, même s’il n’a rien de finalisé.
Je le publierai peut-être un jour, lorsque j’aurai trouvé le temps de faire la documentation et les scripts d’aide à la création d’une application. Pour l’instant il y a juste l’ORM qui est disponible sur le CPAN : Coat::Persistent.

Posted in Uncategorized

Permalink 1 Comment

Vidéos des conférences des journées Perl 2007

Les vidéos de toutes les présentations des journées Perl 2007 qui se sont tenues à Lyon les 16 et 17 novembre derniers sont en ligne (pensez à scroller la page ;-).

Nouvelle fonctionnalité pour Coat::Persistent : cache

Une nouvelle fonctionnalité va faire son apparition d’ici peu de temps dans Coat::Persistent : la possibilité de cacher les résultats des requêtes SQL exécutées.

Le cache est géré par l’excellent Cache::FastMmap. Coat::Persistent proposera une interface simple pour activer le cache :

Coat::Persistent->enable_cache(
    expire_time => '1h',
    cache_size  => '50m',
    share_file  => '/var/cache/apache/sites/www.monsite.cache',
);

Comme chaque option de configuration fournie par Coat::Persistent, le cache peut être activé ou non pour une classe donnée ou pour toutes les classes (ce qui veut dire qu’on peut même immaginer avoir des caches différents par classe).

Du coup, c’est Libellaris.fr qui a pris un speed.

A suivre sur le CPAN donc (c’est déjà dans le SVN).

Get Adobe Flash playerPlugin by wpburn.com wordpress themes