mardi 3 avril 2012

Sortie de Selenium IDE version 1.7.2

Selenium IDE

Le 20 mars dernier est sortie la version 1.7.2 de Selenium IDE, l'outil d'enregistrement et de rejeu de tests Selenium sous Firefox. Cette version n'apporte qu'une correction d'une régression, tout comme la 1.7.1.

Vous pouvez la télécharger ici.

En détail, ce qui change:

  • 1.7.2
    • Correction d'une régression lors de la saisie dans les champs d'entrée de fichier (bug 3549)
  • 1.7.1
    • Correction d'une régression avec les variables stockées (bug 3520)

jeudi 22 mars 2012

JUnit 4 en 60 secondes

junit-logo.png

Comme l'actualité est calme, voici la traduction un peu enrichie d'un article d'introduction à JUnit 4 à consulter ici.

JUnit 4 apporte à JUnit la gestion des annotations pour les tests Java. Voyons-en quelques unes....

@Test

Permet de marquer vos tests. Vous n'avez alors plus besoin de préfixer vos cas de tests avec "test". De plus, votre classe n'a plus besoin d'hériter de la classe “TestCase”.

  @Test
  public void addition() {
     assertEquals(12, simpleMath.add(7, 5));
  }
  
  @Test
  public void subtraction() {
     assertEquals(9, simpleMath.substract(12, 3));
  }

@Before et @After

Utilisez respectivement les annotations @Before et @After pour les méthodes “setup” et “tearDown”. Ces méthodes sont exécutées respectivement avant et après chaque cas de test.

  @Before
  public void executerAvantChaqueTest() {
     simpleMath = new SimpleMath();
  }

Ici, on vient de préparer le "monde" du test.

  @After
  public void executerApresChaqueTest() {
     simpleMath = null;
  }

Et là, on nettoie une fois le test exécuté.



@BeforeClass et @AfterClass

Utiliser respectivement les annotations @BeforeClass et @AfterClass pour les méthodes “setup” et “tearDown” s'appliquant à la classe toute entière. Pnsez à ces méthodes comme étant à usage unique. Elles s'exécutent respectivement et une seule fois avant le premier cas de test et après le dernier cas de test.

  @BeforeClass
  public static void executeBeforeClass() {
     // s'exécute une unique fois 
     //avant le premier cas de tests
  }
  @AfterClass
  public static void executeAfterClass() {
     // s'exécute une unique fois pour toute
     //  après le dernier cas de tests
  }

Gestion des exceptions



Utilisez le paramètre “expected” avec l'annotation @Test pour indiquer que le cas de test s'attend à une exception. Donnez le nom de l'exception qui va être lancée.

  @Test(expected = ArithmeticException.class)
  public void divisionAvecException() {
     // division par zero
     simpleMath.divide(1, 0);
  }

@Ignore



Ajouter l'annotation @Ignore pour les cas de tests que vous voulez ignorer. Vous pouvez ajouter comme paramètre une chaîne de caractères qui indique la raison pour laquelle vous ignorez le test.

  @Ignore(“Pas prêt à fonctionner”)
  @Test
  public void multiplication() {
     assertEquals(15, simpleMath.multiply(3, 5));
  }

Timeout



Définit un délai d'expiration en millisecondes avec le paramètre “timeout”. Le test échouera si le délai est atteint.

  @Test(timeout = 1000)
  public void infinity() {
     while (true)
     ;
  }

Nouvelles affirmations

Ces nouvelles affirmations permettent de comparer des tableaux. Deux tableaux sont égaux seulement s'ils ont la même longueur et si chaque élément de l'un est égal à l'élément correspondant de l'autre.

  public static void assertEquals(Object expected, Object actual);
  public static void assertEquals(String message, Object expected, Object actual);
  @Test
  public void listEquality() {
     List expected = new ArrayList();
     expected.add(5);
     
     List actual = new ArrayList();
     actual.add(5);
     
     assertEquals(expected, actual);
  }

JUnit4Adapter

Permet d'exécuter vos tests JUnit 4 dans les lanceurs de tests JUnit 3 avec le JUnit4Adapter

  public static junit.framework.Test suite() {
     return new JUnit4TestAdapter(SimpleMathTest.class);
  }

jeudi 9 février 2012

Selenium Grid pour Selenium 1 et WebDriver

selenium-grid-logo.png

La grille Selenium permet

  • de répartir la charge en distribuant les tests sur plusieurs machines (exécution parallèle)
  • de gérer de multiples environnement depuis un point central en facilitant l'exécution de tests sur une grande variété de navigateurs et d'OS
  • de réduire le temps de maintenance de la grille en permettant d'implémenter des déclencheurs personnalisés pour mettre en place une infrastructure virtuelle par exemple

Démarrage rapide

L'exemple qui suit montre comment lancer le Hub Selenium 2 et d'y enregistrer à la fois un noeud WebDriver et un ancien noeud Remote Control Selenium 1. Sera également montrée la façon d'appeler la grille en Java. Le hub et les noeuds seront lancés sur la même machine mais il est bien sûr possible de copier le selenium-server-standalone sur plusieurs machines.

Lire la suite...

Sortie de Selenium 2.19.0 "Prancing Unicorn"

selenium-logo.png

Après un certain calme (le froid sans doute), voici du mouvement: Selenium 2.19.0 est sorti. Le changement majeur réside dans la possibilité d'utiliser le webdriver-backed avec tous les langages supportés. Ainsi, il est possible de passer de l'API Remote Control à l'API WebDriver sans réécriture de tous les tests. En python, par exemple:

  driver = RemoteWebDriver(desired_capabilities = DesiredCapabilities.FIREFOX)
  selenium = DefaultSelenium('localhost', 4444', '*webdriver', 'http://www.google.com')
  selenium.start(driver = driver)

Du moment que vous gardez une référence aux objets originels webdriver et selenium que vous avez créés, vous pouvez utiliser les 2 API de manière interchangeable. Tout se passe dans le nom de navigateur "webdriver" passé à l'instance Selenium que nous passons à l'instance webdriver en appelant start().

Lire la suite...

samedi 4 février 2012

Test d'une application Web avec Thucydides

Thucydides

L'objet de cet article, inspiré fortement par le guide utilisateur de Thucydides, et de mettre en place des tests de validation fonctionnelle sur une application Web à l'aide de Thucydides, donc, et de WebDriver/Selenium 2. Thucydides est une bibliothèques OpenSource destinée à faciliter ces tests de recette, en utilisant, soit JUnit, soit EasyB.

Lire la suite...

vendredi 27 janvier 2012

Selenium IDE

Selenium IDE

Selenium IDE est en environnement de développement intégré pour les scripts Selenium. Il est implémenté comme une extension de Firefox et permet d'enregistrer, de modifier et de corriger des tests fonctionnels. Selenium IDE intègre tout Selenium Core ce qui permet d'enregistrer et de rejouer rapidement des tests dans un environnement réel.

Selenium IDE n'est pas qu'un outil d'enregistrement. Il est possible d'utiliser ses capacités d'enregistrement mais aussi de modifier à la main les scripts. Via l'autocomplétion et la capacité de déplacer rapidement les commandes, Selenium IDE est l'environnement idéal pour créer des tests Selenium, quel que soit le style choisi.

Lire la suite...