Il y a 12 ans -
Temps de lecture 6 minutes
Revue de Presse Xebia
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.
Le coin de la technique
Evénements de notre communauté en France et à l’étranger
- Java 7 sur la ligne d’arrivée
- Zenika et Xebia organisent une soirée fêtons Java 7 Jeudi 28 Juillet !
Le coin de la technique
Selenium 2.0
La version 2.0 du célèbre outil de tests fonctionnels Selenium est entrée en phase de release la semaine dernière.
Cette version majeure est due à l’inclusion de l’API Webdriver au sein de Selenium. Le socle précédent de Selenium, en Javascript, imposait quelques limitations à l’outil, comme par exemple :
- tester de manière simple des pages sur plusieurs domaines
- la gestion des formulaires HTML avec un target= »_blank »
De plus, il n’était pas simple de pouvoir lancer des tests sans client graphique (pratique pour les serveurs d’intégration continue).
Cette nouvelle version permet ainsi, sur la base de HtmlUnit, de créer rapidement des tests sans client graphique, ni même de navigateur d’installé sur la machine cible.
WebDriver se veut plus comme une abstraction des API déjà existantes au sein de chaque navigateur. Pour Firefox, par exemple, l’implémentation de WebDriver est vue comme une extension. Cette architecture permet de passer outre les normes de sécurité imposées par un noyau Javascript. Les actions utilisateurs simulées peuvent directement tirer parti des APIs natives de chaque navigateur, ainsi que des commandes de l’OS. De plus, l’arrivée de WebDriver nous affranchit de l’obligation de démarrer un serveur Selenium RC. Cela simplifie encore l’intégration des tests Selenium en intégration continue avec Maven par exemple.
L’arrivée de Selenium IDE, le générateur de code basé sur Firefox, devrait voir le jour cette semaine.
Webdriver est porté sur les langages :
- Python
- Ruby
- Java
- C#
Cela permet d’ajouter Chrome et Opera à la liste des navigateurs supportés par Selenium.
Un petit exemple en Java pour démarrer avec WebDriver (vous trouverez plus d’informations sur l’intégration avec Maven dans notre précédent billet).
1. Ajout de la dépendance dans votre pom.xml
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium</artifactId> <version>2.0rc2</version> <type>pom</type> <scope>test</scope> </dependency>
Voici le corps de l’exemple avec un test JUnit des plus simples.
package fr.xebia.demo.blog; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; /** * @author xbucchiotty * */ public class TestHomePageITCase { /** * Driver pour l'API 2.0 de Selenium */ private WebDriver driver; /** Initialise le driver pour Firefox */ @Before public void initDriver() throws Exception { driver = new FirefoxDriver(); } /**Libère les ressources*/ @After public void stopDriver()throws Exception{ driver.quit(); } /** * Teste la connection à la HomePage */ @Test public void testConnect() { // Connection à la page driver.get("http://blog.engineering.publicissapient.fr/"); // Récupération de l'élément recherché WebElement searchElement = driver.findElement(By.name("s")); // Simulation de saisie searchElement.sendKeys("USI 2011"); // Soumission de la recherce searchElement.submit(); //Recherche de l'élément dans la page de résultat WebElement victoriousPost = driver.findElement(By.id("post-8170")); // On vérifie le titre du billet Assert.assertTrue(victoriousPost.getText().contains( "L’équipe Xebia remporte le challenge USI 2011")); } }
Evénements de notre communauté en France et à l’étranger
Java 7 sur la ligne d’arrivée
En prévision de la prochaine mise en disponibilité générale (GA, General Availability) le 28 juillet prochain de Java 7, Mark Reinhold vient d’élever au rang de Release Candidate le récent build 147.
Et il était temps! Non seulement les délais devenaient dangereusement courts — à tel point que la date finale du 28 prochain a pendant un moment été remise en cause — mais surtout cette RC corrige certes peu de bugs, mais quels bugs! Parmi eux, on compte pas moins de 3 crashes de la JVM liés à l’instruction InvokeDynamic.
Alors que Java 5 fut en sont temps — et fort justement — considéré comme un mise à jour majeure, une révolution même, avec notamment l’introduction des génériques, Java 7, tout comme Java 6, s’inscrit plutôt dans la démarche d’une évolution, de l’aveu même de Mark Reinhold. Certains diront que cette septième version de Java n’est que l’ombre d’elle-même, dépouillée des fonctionnalités les plus controversées qui, elles, ont été reléguées à Java 8 — on pense notamment au projet Jigsaw ou encore aux expressions Lambda. Il n’empêche: sous réserve de nouveaux bugs, cette Release Candidate deviendra, le 28 juillet prochain, la première release officielle d’une nouvelle version de Java depuis 2006!
Bien entendu, la Revue de Presse Xebia ne boudera pas son plaisir et fêtera cet événement comme il se doit en vous recevant à une petite fête dont nous vous dévoilons les secrets dans le paragraphe suivant !
En attendant, et afin de vous donner l’eau à la bouche, voici un bref aperçu des nouveautés embarquées dans Java 7:
- l’amélioration des APIs d’entrée/sortie notamment avec l’introduction d’une nouvelle abstraction pour le système de fichiers (JSR 203 : NIO.2),
- de meilleures performances pour les langages dynamiques sur la JVM grâce à une nouvelle instruction du bytecode (JSR 292 : InvokeDynamic),
- de nombreuses petites améliorations du langage pour simplifier la vie du développeur : l’opérateur diamond, try-with-resources, multicatch, switch avec des strings .. (JSR 334 : Project Coin 1/2),
Sans oublier que, comme nous l’avions annoncé ici-même, OpenJDK sera désormais l’implémentation de référence de Java. La release se fera sous une double licence : la BCL (la licence classique de Sun, Binary Class License) pour les implémentations commerciales mais également GPLv2 pour les implémentations open source. Le choix d’une licence open source virale est toujours contesté par une partie de la communauté Java. Un des buts du projet Apache Harmony, on s’en souvient, était de proposer un JDK avec une licence open source business friendly (Apache License).
Et pour terminer, nous vous conseillons de regarder la vidéo du Web Cast diffusé jeudi dernier et qui réunissait sur le même plateau Adam Messinger, Mark Reinhold, John Rose et Joe Darcy autour des nouveautés de Java 7 (en anglais).
Zenika et Xebia organisent une soirée « Fêtons Java 7 » le jeudi 28 juillet !
Zenika et Xebia ont le plaisir d’organiser une soirée d’été pour fêter Java 7. Au programme, des présentations sur Fork and Join par Olivier Croisier et NIO.2 par Julien Buret et Seven le Mesle puis un buffet.
Pour la logistique, la soirée se déroulera à partir de 19h30 chez Xebia (156, boulevard Haussmann 75008 Paris).
Nous publierons un billet avec plus de détails dans la semaine.
Commentaire
6 réponses pour " Revue de Presse Xebia "
Published by Benoît Dissert , Il y a 12 ans
Où est-ce qu’on s’inscrit ? :-)
Published by Sam B. , Il y a 12 ans
Cool pour la soirée Java 7.
Published by François Ostyn , Il y a 12 ans
Excellente initiative !
Published by Cyrille Le Clerc , Il y a 12 ans
On s’inscrit ici pour la soirée Java 7 ! http://sortiejava7.eventbrite.com/
Désolé mais il a fallu quelques emails pour se synchroniser et il a fallu que j’apprenne EventBrite :-)
Cyrille
Published by Benoît Dissert , Il y a 12 ans
@Cyrille Le Clerc
Es-tu certain d’avoir positionné une limite sur le nombre de participants ?
Habituellement, sur Event Brite, on le voit, on nous dit « il reste tant de places ». Et la rien.
Benoît
Published by Cyrille Le Clerc , Il y a 12 ans
J’apprends, j’apprends :-)
J’avais caché le nombre restant de places parce que nous pensons tenir 60 personnes en poussant très fort les murs et en faisant deux tracks en parallèle mais que nous n’avons aucune idée de l’intérêt que suscitera une soirée fin Juillet.
J’ai aussi donné plus d’indications sur les horaires : les présentations dureront 45 minutes chacunes. Pour le buffet après, j’ai donné 23:30 comme heure indicative mais je crains que ca finisse aussi tard que les soirées du JUG :-)
Cyrille