Industrialisez vos tests JavaScript avec TestSwarm – partie 2

Dans le billet précédent, nous avons vu comment installer TestSwarm. Nous allons maintenant apprendre à lancer nos premiers tests.

TestSwarm est compatible avec tous les frameworks de test les plus populaires :

  • QUnit
  • UnitTestJS
  • JSSpec
  • JSUnit
  • Selenium Core
  • Dojo Objective Harness
  • Screw.Unit

Création d'un test simple

Le test QUnit suivant est tout ce qu'il y a de plus simple : il vérifie que 1==1 est vrai.
Ce qui nous intéresse surtout ici, c'est l'inclusion du fichier inject.js de TestSwarm. Ce script indispensable envoie à la plate-forme les résultats une fois le test exécuté.

<!DOCTYPE html>
<html>
    <head>
        <title>Test simple</title>
        <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-git.css">
        <script type="text/javascript" src="http://code.jquery.com/qunit/qunit-git.js"></script>

        <!-- Remplacer par l'URL de TestSwarm -->
        <script type="text/javascript" src="http://localhost/testswarm/js/inject.js"></script>

        <script type="text/javascript">
			test("test égalité", function() {
				ok(1==1, "1 vaut 1" );
			});
		</script>
 
    </head>
    <body><div id="qunit"></div><div id="qunit-fixture"></body>
</html>

Gardez ce test à portée de main, nous l'utiliserons plus loin.

Création d'un projet dans TestSwarm

Dans TestSwarm, chaque projet correspond à un utilisateur. Pour créer un utilisateur, cliquez sur Signup sur la page d’accueil.

Une fois l'utilisateur créé, nous allons devoir récupérer sa clef d'authentification, qui nous sera nécessaire pour soumettre des tests. Malheureusement, cela n'est pas (pas encore?) faisable depuis l'interface web, et il faut la récupérer directement dans la table users de la base de données.

SELECT name, auth from `users`

testswarm3JPG.JPG

Soumission de notre premier job de test

L'interface web de TestSwarm ne permet pas directement de soumettre des jobs de tests. Heureusement, la soumission des jobs de tests se fait par une simple requête HTTP POST vers api.php?action=addjob. Il est donc aisé de créer votre propre script prenant en charge cette tâche.

Les paramètres HTTP sont les suivants :

  • authUsername : le nom d'utilisateur
  • authToken : la clef d'authentification
  • runMax : le nombre de tentatives maximum
  • jobName : le nom du job de test. Un job peut contenir plusieurs tests. On utilisera par exemple le numéro de révision SVN : rev1, rev2, rev3....
  • browserSets[] : les navigateurs à tester. Il est possible de passer plusieurs valeurs. Ici, on utilisera "default".
  • unUrls[] : les URLs des différents tests du projet
  • runNames[] : les noms des différents tests du projet

Voici un script Python très simple permettant de soumettre notre job de test :

# -*- coding: utf-8 -*-
import urllib, urllib2

url = 'http://localhost/testswarm/api.php?action=addjob'

data = urllib.urlencode( {
        'authUsername': 'projet1', 
        'authToken': '59aeb8b8154b9ceb56c3c5b2ac05f9f49f4a0d7c', 
        'runMax': '10',  
        'jobName': 'rev 1', 
        'browserSets[]': 'default',
        'runUrls[]': "http://localhost/tests/test-simple.html",
        'runNames[]': "test simple"
    })

request = urllib2.Request(url, data)
response = urllib2.urlopen(request)
print response.read()

Connecter des navigateurs

Avec le navigateur à connecter, rendez vous sur la page d'accueil de TestSwarm, entrez le username de votre choix, et cliquez sur "Join the swarm".
testswarm4.JPG
Le navigateur est maintenant contrôlé par TestSwarm et exécutera des tests au fur et à mesure de leur disponibilité: plus aucune intervention humaine n'est nécessaire.
testswarm5.JPG

Visualisation des résultats

Sur la page d'accueil de TestSwarm, cliquez sur "projects" pour visualiser les résultats des tests.
testswarm6.JPG
Dans la colonne de gauche, un clic sur l'un des jobs permet d'afficher le détails des tests exécutés.

Conclusion

Voila pour cette introduction à TestSwarm. Cette plate-forme, bien qu'un peu longue à mettre en place, s'avère très prometteuse. De plus, l'arrivée prochaine d'un plugin Hudson devrait simplifier encore plus son utilisation.

2 commentaires

  1. Je me permet de commenter ce vieux post pour dire qu’il y a bien une interface pour soumettre des jobs de test.

    En faite vous l’avez dans le lien avec lequel vous envoyez des requetes POST.

    ex : http://localhost/testswarm/addjob

    Je l’ai trouvé complètement par hasard alors que je voulais intégrer une page qui permettait justement de soumettre des jobs de tests ^^, et au lieu de tomber sur la mienne, je suis tomber la dessus. 🙂

    J’espere que cela pourra en aider plus d’un !

    Pour information j’utilise testswarm sur un serveur externe.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.