Laissez R2D2 vérifier que tout va bien (il adore ça)

le 6 novembre 2008 à 16:50 par mrboo

Il existe des tonnes de raisons pour qu’un système aussi complexe qu’un site web se grippe.
Souvent c’est à la suite d’une mise à jour de notre part, mais parfois cela a lieu de manière beaucoup plus traitre: un espace de stockage qui sature, une table MySQL qui se bloque, etc.
Dans ce cas il peut être difficile de s’en rendre compte rapidement.

Il est simple de vérifier que son serveur fonctionne de manière automatique (cf des services comme Pingdom)
En revanche, cela ne vérifie pas que vos utilisateurs peuvent se connecter, que les nouveaux arrivants peuvent s’inscrire ou que le processus de commande se déroule sans encombre.

Vous pouvez mettre en place assez facilement des tests de bon fonctionnement de votre site.
Pour cela il vous faut :

  • un vieil ordinateur (on peut aussi imaginer l’installer sur un serveur à 10€/mois sans problème)
  • y installer Ubuntu (j’ai utilisé la dernière version en date: 8.10)
  • y installer PHP5 – Apache2 – Java JDK
  • lancer le serveur Selenium que vous aurez pris soin de télécharger à cette adresse
  • Préparer les scénarii de test dans votre fichier PHP (mon fichier de test)
  • Automatiser l’appel de la page de test via la contab et une commande wget

La démo en vidéo via le formulaire de connexion à Hellotipi :

Et voilà, quelques lignes de codes et les week-ends sont tout de suite plus sereins ;)

Tags: , ,

23 commentaires pour “Laissez R2D2 vérifier que tout va bien (il adore ça)”

Aller au dernier commentaire | retourner à la racine du blog
  1. 1mrboo dit :

    Retrouvez une partie des commandes disponibles en PHP à cette adresse: http://tinyurl.com/5skshy

  2. 2Julien dit :

    C’est fort en chocolat comme qui dirait
    Superbe !!!
    Que dire sinon merci :)

  3. 3Cédric dit :

    A tester effectivement…

    Tu utilises quoi pour coder sur ton mac ?

    Bbedit, Coda ou ?

  4. 4mrboo dit :

    skedit

  5. 5jcfrog dit :

    « la force est très puissante dans ta famille, maître! » :)

  6. 6Ben dit :

    ah oui selenium c’est top … et en cas d’erreur, l’envoi d’un sms sur ton portable ? ;-)

  7. 7mrboo dit :

    Ben> en effet je reçois un sms avec l’intitulé de l’erreur.

  8. 8Tuxyroots dit :

    Très intéressant, je découvre et j’ajoute ça dans ma todolist.
    Par quelle gateway SMS passes-tu ? Les moins chères que j’ai pu trouver se situent pour la plupart en Angleterre, mais si tu as un bon filon, je suis preneur ;)

  9. 9Raphaël dit :

    Selenium est à mon avis une composante d’un bon process de test mais il faut lui coupler au minimum des tests unitaires et des tests fonctionnels pour s’assurer du bon fonctionnement d’une application et surtout, pour éviter des régressions lors de modifications !

    A noter : on peut aussi enregistrer ses scripts de test selenium grâce à un plugin Firefox et surtout, on peut lancer selenium sur de nombreux environnement et navigateur pour faire des tests de rendus ou de compatibilité javascript par exemple !

  10. 10Cédric dit :

    « skedit » je connais pas celui-la… Des trucs en plus que bbedit, un truc de dingue ?
    C’est la killer app du futur ?
    Bref pourquoi skedit ?

  11. 11mrboo dit :

    Tuxyroots> pour les sms j’utilise http://www.tm4b.com ça coute ~9ct / sms (je crois me souvenir car ça fait un certain temps que j’ai créditer le compte)

    Raphaël> Déjà si on peut s’assurer du bon fonctionnement des principaux outils de la plateforme (Inscription, création de site, ajout d’un commentaire, d’une photo etc.) cela me va.
    Après, dans l’idéal, il faut effectivement appliquer les méthodes agiles / extrem programing.
    Mais je dois avouer que je n’utilise pas de tests unitaires.

    Tu as raison de préciser qu’on peut créer et lancer des scénarii Selenium depuis une simple extension Firefox (par contre on a pas le coté surveillance automatisée)

    Cédric> je ne code pas sur mac (le clavier est vraiment trop mal foutu pour ça) mais disons que ce soft fonctionne très bien pour me dépanner de temps en temps.

  12. 12Tuxyroots dit :

    mrboo> Merci de ta réponse, c’est également auprès de tm4b que j’achète mes SMS. C’est de l’ordre de 7,5 cts actuellement pour la plus petite quantité. Il parait que les passerelles indiennes sont intéressantes. Si j’ai plus d’infos à l’occasion et si ça t’intéresse je t’en ferais part.

  13. 13jrome dit :

    Et si tout ne va pas aussi bien que prévu, D2R2 est puni!

    http://tinyurl.com/57lzuz

    Non mais! ;)

  14. 14Brindavoine dit :

    Intéressant. Mais je ne comprends pas l’utilité de cette machine à gaz comparé à un petit script PHP sur crontab qui viens vérifier via curl le process de login…

    Il prend son sens quand il y a de l’ajax, OK, mais pour du test de réponse serveur (apache et test mysql) est on vraiment obligé de passer par cette solution ?

    En tout cas bonne continuation sur hellotipi, c’est toujours un plaisir de te lire :)

    Brindavoine

  15. 15mrboo dit :

    Tuxyroots> toujours partant pour ce genre d’infos

    Jrome> la grande class :D

    Brindavoine> Selenium-RC est beaucoup plus complet et permet par exemple d’industrialiser les tests de compatibilité Javascript sur différents navigateurs (quand on voit la misère que cela peut-être de tout vérifier à chaque fois sur chaque navigateur…)
    Et à partir du moment où l’on est sur un « vrai » desktop on peut imaginer des trucs sympa comme: envoyer une capture d’écran au moment où le test bloque.

    Content que ma prose te plaise :)

  16. 16Raphaël dit :

    mrboo > je suis pas un intégriste des tests je te rassure ;) Le problème en se contentant de sélénium c’est le manque de couverture de tes tests. Imagine le nombre de scripts sélénium pour tester tous les cas d’erreur d’un process de paiement ?

    Les tests enregistres avec le plugin FF peuvent être exportes en scripts dans le langage de ton choix ;-)

  17. 17Oanisha dit :

    D’après mon expérience, quand un site plante, c’est soit un problème général qui affecte la totalité du site (connectivité, serveur, serveur web, serveur d’application ou base de données) et dans ce cas un test simple est suffisant (une page qui fait appel au serveur d’application et à la base et qui renvoie un texte défini), soit un bug qui se produit dans un cas spécifique et là le test en condition « normael » ne verra rien.

    Autant je suis convaincu de l’intéret de Selenium pour des tests de non régression ou des tests unitaire (c’est fait pour), autant pour de la surveillance de site, ça ne me parait pas forcément pertinent et efficace.

  18. 18jrome dit :

    je suis assez pas mal beaucoup d’accord avec Oanisha

  19. 19Le Tribulateur dit :

    Punaise, ça discute barbu ici. Sont tous sortis de leur pré-hibernation on dirait… ;)

  20. 20Oanisha dit :

    Tribulateur > il y a eu une légère période de redoux avant les grands froids, c’est pour ça ;-)

  21. 21Daniel dit :

    une autre solution est de prendre un abonnement chez IP label mais c’est bien plus cher

    je me tate donc à reduire les presta chez eux et faire ça à la maison…

  22. 22Oanisha dit :

    Daniel > IP label est effectivement un bon service … en gratuit il y a woozweb.com. C’est simple, ça n’envoie pas de SMS, mais ça marche.

  23. 23Patrice dit :

    Note que tu peux toujours utiliser l’alerte email et donner comme adresse une passerelle mail-sms. Sur woozweb.com ce qui est le plus intéressant à part le monitoring, c’est toutes les analyses. Surtout le benchmarking de ton site par rapport aux autres.

Vu sur Twitter

Voici quelques tweets qu'il me semble intéressant de relayer ici.