Je ne sais pas pour vous, mais moi Windows j’ai dit bye-bye en 2008 pour prendre un Mac. Alors on peut dire ce que l’on veut d’Apple, râler très fort en disant que c’est cher, mais il y a un truc qui échappe encore au monde de Windows : ça marche.
En même temps on a un vrai métier « dans la vraie vie » comme disent les gens. Or dans ma vraie vie de développeur indépendant, je code des sites Internet avec Play! Framework pour des clients. Et les sites de mes clients doivent fonctionner sur le navigateur de Microsoft, à savoir Microsoft Internet Explorer. La question aujourd’hui, cher public, c’est comment tester facilement que le fruit de votre travail fonctionne sur IE7, IE8 et IE9 ? Et bien voici la réponse : Virtual Box et des VMs, un script intelligent et quelques heures de patience.
Je commence par la fin, pour montrer à la salle qu’il n’y a aucuns trucages :
Le site Artstechnica montre dans cet article que pour la première fois, Internet Explorer est passé sous la barre des 50% des navigateurs utilisés dans le monde, en octobre 2011. Bref si IE6 est presque mort, il faut bien voir qu’IE8 est actuellement le navigateur le plus utilisé dans le monde.
Alors voyons comment configurer des machines virtuelles rapidement avec IE7, IE8 et IE9. Pour IE7 nous allons utiliser Windows Vista. Et pour IE8/IE9 nous prendrons Windows 7 Ultimate Edition. Ce qui suit fonctionne pour Mac OS X et pour Linux.
Virtual Box
Commencez par installer Virtualbox, une machine virtuelle gratuite et géniale, développée par SUN Microsystems et qui appartient maintenant à Oracle. Sur Mac OS X avec un processeur Intel, ceci vous permet d’avoir un Windows fonctionnel et qui tourne parfaitement.
Les machines virtuelles Microsoft
Microsoft propose des machines virtuelles pour les développeurs Webs, afin de tester leurs sites webs facilement sur les différents navigateurs depuis août dernier. Ces images sont même patchées avec les dernières corrections de sécurité. Cependant vous ne pourrez pas activer l’image virtuelle. Ce ne sera donc pas une installation de Windows sur laquelle vous pourrez installer d’autres logiciels. Tous les 30 jours il faudra revenir à l’image de départ, mais je vais vous expliquer cela plus loin.
In order to help web designers and web developers test their websites in older versions of Internet Explorer, we’ve provided the following VHD with Windows set up with the specified version of Internet Explorer. The images are patched with the latest security updates and are otherwise clean installs of the operating system with very few modifications.
This download page contains different VPC images, depending on what you want to test. These images are specifically designed to run on Microsoft Virtual PC, and may or may not work in other hosting environments.
Due to the size of the Windows 7 and Windows Vista VHDs, it is split across several files, you’ll need to download all files for that version of the Internet Explorer and uncompress them to the same directory to unpack the VHD file.
The password to login to all of these images is Password1 and the username will be present when you first login.
*Note: You may be required to activate the OS as the product key has been deactivated. This is the expected behavior. The VHDs will not pass genuine validation. Immediately after you start the Windows 7 or Windows Vista images they will request to be activated. You can cancel the request and it will login to the desktop. You can activate up to two “rearms” (type slmgr –rearm at the command prompt) which will extend the trial for another 30 days each time OR simply shutdown the VPC image and discard the changes you’ve made from undo disks to reset the image back to its initial state. By doing either of these methods, you can technically have a base image which never expires although you will never be able to permanently save any changes on these images for longer than 90 days.
Le nom d’utilisateur sera Admin et le mot de passe par défaut est Password1.
Je veux un script
Je ne sais pas pour vous, mais moi je ne me vois pas télécharger chacune des VMs et ensuite configurer pas à pas les installations. En cherchant un peu sur Github, j’ai trouvé un script développé par Greg Thornton qui marche super bien sur Mac OS X Lion. Allez voir https://github.com/xdissent/ievms.
Pour lancer le téléchargement et l’installation des VMs, pour peu que Virtual Box soit déjà installé, comptez 3 à 4 heures avec la commande suivante :
<pre>
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | bash
</pre>
Voilà, vous aurez ensuite 3 VMs sur VirtualBox configurées avec IE7, IE8 et IE9.
Oui mais le numéro de série ?
Pas besoin de numéro de série. Il suffit de ne pas activer la version de Windows, et de reprendre à chaque fois l’image de base sans sauvegarder sur VirtualBox. Une autre possibilité plus compliquée est expliquée sur le site de Microsoft.
Au final, cela vous donne un moyen simple et rapide de tester avec IE7, IE8 et IE9 votre site Internet.
D’autres manières de tester
Via Twitter (@nmartignole) j’ai eu d’autres suggestions d’outils et de liens intéressants. Voici ce que j’ai reçu :
– http://www.browserstack.com est une solution dans le cloud qui permet aussi de tester un site en local sur votre machine, via une Applet Java. Vous pouvez tester le service gratuitement 60mn, sinon c’est payant. Outil proposé par @alanzirek.
– SauceOnDemand permet de tester un site via des VMs hostées dans le Cloud. Intéressant, il est possible de faire tourner des tests Selenium afin de vous notifier lorsqu’une des versions pour un navigateur donné est cassée. Merci @fcamblor du BordeauxJUG pour l’info.
[Update]
Après plusieurs essais, la solution la plus pratique est Browserstack. Cet outil vous permet de tester via votre navigateur puis des machines virtuelles, l’ensemble des navigateurs du marché. A découvrir d’urgence.
Il y a aussi SauceLabs (http://saucelabs.com/) qui host une ferme de VMs dans le cloud.
Les VMs sont toutes configurées en « mode développeur » (tout ce qui sert au debug web est installé sur les navigateurs : firebug, web developpeur toolbar etc..).
L’offre Scout permet de lancer une VM depuis votre navigateur, et de la piloter « en temps réel » (bon ok, ça lag un peu… mais ça reste utilisable pour du bugfix ponctuel).
Mais l’offre que je trouve la plus bluffante, c’est OnDemand qui permet d’exécuter des tests selenium sur l’ensemble des VMs disponibles. Pour chaque test passé, le display de la VM est enregistré sous la forme d’une vidéo, si bien que lorsque votre test ne passe pas, vous pouvez aller voir la vidéo du pb (des screenshots sont également générés à chaque étape du test).
Du coup, une fois le pb identifié dans un navigateur donné, vous reproduisez dans Scout, vous trouvez un workaround, et vous commitez le fix 🙂
SauceLabs vont même jusqu’à faire un enregistreur de scénario Selenium en full web (là où, pour le moment, il n’existait que le SeleniumIDE disponible uniquement sour firefox).
NB: Je n’ai pas d’actions SauceLabs, mais je trouve le service vraiment intéressant …
Et cerise sur le gateau : le support de VMs Mac / Mobiles devrait arriver d’ici peu ! 🙂
NB2: L’intégration SauceLabs est proposé depuis un bon moment sur l’offre Cloudbees. C’est grâce à eux que j’ai découvert ce service dans le cloud (merci à eux donc ;))
Cool, merci pour le topo. Hier dans la même rubrique, je suis tombé sur http://testling.com . Alors pas testé, ni même entendu parlé mais le truc apparemment, c’est que les VM sont déjà chez eux, ce qui fait gagner 3 à 4h si je comprends bien, il y a tous les navigateurs et non pas seulement IE. De fait, le service est payant (mais ça m’a l’air assez raisonnable).
Si certains ont déjà utilisé ce type de service, je serai curieux d’avoir un feedback.
Intéressant, je n’avais pas vu l’information concernant ces nouvelles VMs.
Travaillant sur un poste fixe Linux et ayant la même problématique, j’ai découvert une solution simple pour répondre au besoin de tester les développements web sous IE : il s’agit de « Play On Linux » (http://www.playonlinux.com/). Le principe de fonctionnement est le même que Puppet/Chef : le logiciel interprète des recettes d’installation de logiciels Windows avec Wine.
Or, il connaît les recettes d’installation de IE6 et IE7, et se charge automatiquement de l’ensemble de la procédure (en téléchargeant au passage ce dont il a besoin).
L’avantage étant que cela rend les IE disponibles sans avoir à lancer de VM (économie de RAM non négligeable) et sans limite de temps !
Sur le même principe, il existe « Play On MAC » (http://www.playonmac.com/) mais je n’ai pas testé.
Un seul mot : MERCI !!!!
N’était-ce pas possible d’utiliser une seule VM avec le récent des OS et de profiter du mode de compatibilité proposé par IE9 ?
Celui qui est disponible dans la fenêtre d’aide au développement (F12).
Sur le site de Microsoft (lien que tu as donné pour télécharger les VM), il est précisé « Expires: This image will shutdown and become completely unusable on November 17, 2011. ». Je pense que dans 15 jours cette solution ne fonctionnera plus (sauf si vous avez des licences légales sous la main).
Il existe aussi Spoon qui permet de tester avec les autres navigateurs. Malheureusement IE ne fait pas parti de la liste, mais il est intéressant de le signaler quand même…
franLero : Franchement, personnellement, je n’ai aucune confiance dans les modes de compatibilité d’IE.
Je n’ai aucun argument à avancer pour étayer cela, mais j’ai de gros aprioris sur la capacité de MS a reproduire exactement le moteur des précédentes version d’IE.
Quand bien même, il me semble qu’il n’existe pas de mode compatibilité pour IE 6.
Il n’était pas question d’IE6 dans l’article, mais effectivement, ce mode n’existe pas. Par contre nous utilisons ce mode de compatibilité au quotidien dans une équipe de 6 développeurs, et il me semble plutôt fiable.
Je ne suis pas non plus fan de M$, mais quand ils font des efforts, c’est bon de le signaler 😉
Je ne sais pas ou ça en est mais il y a quelques temps j’utilisais Multiple IE qui fonctionnait très bien :
http://tredosoft.com/Multiple_IE
Donc 1 seule VM et 1 soft en plus … et ça s’installe en quelques minutes 🙂
Yann
@FabienPau : en effet les VMs expirent car il s’agit de VM spéciales, patchées par Microsoft et mises à jour régulièrement. Donc on peut télécharger, pas de soucis.
+1 pour Multiple IE le temps qu’on ne cible pas un bug précis. Parfois certains bugs ne peuvent pas être reproduits dans un émulateur, donc passage forcé par la VM de crosoft.
A mentionner aussi IE Tab pour Chrome, qui permet de tester dans Chrome avec le moteur de rendu de IE (avec la possibilité de choisir le mode de compatibilité en fonction de la version installée). Réservé à Windows bien sûr. Fausse joie pour ceux qui y croyaient : impossible d’utiliser les devtools 🙂 Mais n’oubliez pas Firebug Lite en bookmark, ça sauve la vie!
Ah, et note au passage…j’ai perdu beaucoup de temps avant de m’apercevoir que la VM Microsoft se lançait en QWERTY, et que le mot de passe était donc « Pqsszord1 » 🙂
Edit : Multiple IE n’étant plus maintenu, il faut se tourner vers IECollection
Smashing Magazine en parlait également la semaine dernière ici : Useful Coding Tools and JavaScript Libraries For Web Developers 😉
IEs4Linux
http://www.tatanka.com.br/ies4linux/page/Main_Page