Du kan tro at webutviklere som bruker Windows som deres primære operativsystem, har det enkelt når de tester Internet Explorer. bare klikk på den blå "E" og gå til byen. Det kan være sant hvis de bare måtte bekymre seg for versjonen av IE på PCen, men vi vet alle at det ikke er tilfelle. Avhengig av prosjektets behov kan det hende du må sikre kompatibilitet fra IE6 til IE10, noe som sikkert utgjør noen utfordringer. Hvordan håndterer vi dette?
Nå, hvis du er på Windows, har du definitivt en bein fordi du i det minste kan teste en bestemt versjon av IE, men det er et helt annet ballspill hvis du er i en Mac eller Linux-boks.
Det jeg vil gjøre er å utforske de ulike måtene for å teste Internet Explorer på tvers av populære plattformer, og gi forslag til hvordan du senker friksjonen for testing for flere versjoner av nettleseren.
Vi vet alle at testing er vanskelig.
Internet Explorer har flere versjoner i bruk, hver med sitt eget nivå og funksjoner. Selv om det ville vært bra om vi bare måtte målrette mot IE10, har mange brukere og bedrifter i realiteten ikke oppgradert nettleserne eller operativsystemene sine. Dette betyr at, avhengig av hva du bygger, må testmatrisen inneholde opptil fem forskjellige versjoner av IE. Jeg kan høre stønnene nå.
Heldigvis har IE9 og IE10 sterk støtte for standarder, og IE6 begynner å gå veien for Dodo fuglen (om enn sakte). Faktisk har mange toppsider helt tapt støtten til IE6 og IE7 - et godt skritt fremover, spesielt i forhold til hvor vi var for bare to år siden. Og med Microsoft offentlig å si at IE10 kommer til Windows 7, håper jeg at IE10 + vil bidra til å minimere antall støttede versjoner i nær fremtid.
Med det sagt, utgjør disse versjonene fortsatt et testdilemma fordi du ikke kan kjøre flere versjoner av Internet Explorer på samme PC. Dette betyr at vi må se på alternative løsninger som:
Jeg kommer til å berøre hver enkelt av disse og diskutere mulige løsninger.
Når jeg må teste et nettsted i Internet Explorer, er mitt aller første verktøy F12 Developer Tools i IE10. Bygget inn i verktøysettet er muligheten til å bytte både nettleseren og dokumentmodusene for å etterligne IE7 gjennom IE10.
Det gir meg i utgangspunktet omfattende testdekning for de mest brukte versjonene av Internet Explorer i en enkelt nettleser. Det blir enkelt å velge nettlesermodus, så jeg kan jobbe med spesifikk funksjonstøtte og deretter velge gjengivelsesmodus for siden min.
Grunnen til at jeg sier at dette er min første testlinje, er fordi det hjelper meg med å finne mange vanlige problemer. Det er et flott verktøy for å identifisere og interaktivt teste problemer som manglende leverandørprefikser, eller hvis en side gjengir i quirks i stedet for standarder. Og jeg vil si at jeg har brukt dette i stor grad, det har hjulpet meg med å løse en rekke problemstillinger uten å måtte laste inn en virtuell maskin eller bruke en annen PC.
For å være klar, er det absolutt ikke en erstatning for testing i en faktisk versjon av Internet Explorer.
IE-ingeniørtjenesten gjør sitt beste for å tilbakelevere funksjonalitet, men det er en ganske stor innsats og ikke alltid idiotsikker. For å ha den mest pålitelige testopplevelsen, må du enten ha flere PCer (fysisk eller virtuell) som kjører forskjellige versjoner av Windows / IE. Med mindre du har penger som brenner et hull i lommen, tenker jeg at VM-ruten er sannsynligvis det beste valget.
Jeg liker virkelig å bruke virtuelle maskiner fordi det gir meg muligheten til å teste ikke bare nettlesere, men forskjellige operativsystemer fra min egen PC. Så mye som jeg vil gjerne ha massevis av enheter til å teste og leke med, tror jeg at min kone kanskje ikke er glad når den elektriske regningen kommer inn. Jeg har hatt VM på et tidspunkt for hver større versjon av Windows og Ubuntu . Det ville vært flott å kunne kjøre OSX, men min forståelse er at det er tekniske og lisensieringsproblemer ved å gjøre det.
Det er to måter å få Windows til en VM for testing. Den første er å kjøpe en lisens for hver versjon av Windows du vil teste. Jeg har faktisk lisensierte kopier av Windows XP, Windows 7 og Windows 8 som jeg kjøpte for min egen personlige testing. Den langsiktige kostnaden var liten, og jeg betraktet den som en profesjonell webutvikler. Dette tillater meg å installere operativsystemet og aktivere det uten å måtte bekymre seg for Microsofts beryktede tidsbombe. Jeg kan få alle oppdateringene, og det gir meg i utgangspunktet en ekte, fungerende versjon av Windows.
Jeg vet ikke alle tror på samme måte, og ikke alle vil ønske å gjøre investeringen.
For de av dere på den mer sparsomme siden, tilbyr Microsoft VPC-bilder av applikasjonskompatibilitet som gir en forhåndsinstallert versjon av Windows med en bestemt nettleserversjon. Disse bildene tillater deg å arbeide med Internet Explorer versjon 6 til 9 nesten uendelig, men med stor begrensning. Følgende oppsummerer det:
Mitt aller første verktøy er F12 Developer Tools i IE10.
Du kan aktivere opptil to "rearms" (skriv slmgr-rearm på kommandoprompten) som utvider forsøket i ytterligere 30 dager hver gang, eller bare slå av VPC-bildet og kaste bort endringene du har gjort fra å angre diskene for å nullstille bilde tilbake til sin opprinnelige tilstand. Ved å bruke en av disse metodene kan du teknisk sett ha et grunnbilde som aldri utløper, selv om du aldri vil kunne lagre endringer i lengre tid enn 90 dager.
Så du bør kunne bruke noen av VPC-bildene på ubestemt tid, men etter 90 dager vil eventuelle konfigurasjonsinnstillinger du har lagret i bildet bli slettet. Jeg ser på dette som en liten pris å betale for å ha et gratis bilde å bruke til testing. Jeg vet at når jeg har brukt dem, gjorde jeg eksplisitt det for å teste IE, så jeg hadde minimal, hvis noen, konfigurasjonsendringer mistet. Det eneste bildet som oppfører seg annerledes er WinXP / IE6-bildet; den avslutter helt på en bestemt dato. Som ved denne skrivingen, ville det være 14. februar 2013, så vær sikker på ikke å gi det som en gave til din spesielle person for Valentinsdag.
Hvis du bruker Windows 7, må du ta en kopi av Virtual PC, som lar deg lage VM og kjøre eksisterende VHDer. Windows 8 Pro inneholder Hyper-V virtuell maskinleder. Det er ikke slått på som standard, så du må gå inn i "Kontrollpanel-> Programmer-> Slå Windows-funksjoner av eller på" for å aktivere det:
Når du er installert, bør du kunne kjøre VPC-bildene du lastet ned fra Microsofts nettsted. Jeg lastet ned WinXP / IE6-bildet. Den kommer i form av en selvutpakkende .exe-fil som dumper ut .vhd-filen for deg å bruke. .Vhd-filen er din virtuelle harddisk.
Du logger deg på Virtual PC og velger "Create virtual machine", som dukker opp en dialog for å sparke ting:
Deretter angir du hvor mye minne du vil tildele til VM, og så viktigst, velg at du vil bruke en eksisterende virtuell harddisk, slik at du kan bruke VPC du lastet ned:
VM vil nå bli opprettet og vises i Virtual PC. Dobbeltklikk på den starter VM og gir deg tilgang til Windows XP. Du blir bedt om å aktivere den, men bare avbryte den forespørselen:
Hvis du ikke er i Windows, kan du fortsatt bruke VPC-bildene, men trinnene kommer til å bli litt mer involvert. På OSX bruker jeg VMWare Fusion. Jeg tror det er den beste VM-programvaren for den plattformen, og den har god brukerstøtte. Et eksempel er at de har et verktøy kalt VMWare vCenter Converter, som lar deg endre VM-formattyper til en kompatibel versjon med VMWares produkter. Fordi IE VPC-bildene ikke er kompatible, trengte jeg å konvertere dem, og vCenter Converter gjorde det utrolig smertefritt (selv om det bare er Windows). Trinnene var enkle. Jeg installerte appen:
En gang installert løp jeg det og startet konverteringsprosessen. Det første jeg trengte å gjøre var å spesifisere kildefilen som skal konverteres. Konverteren fant "Windows XP.vmc":
Deretter angav jeg destinasjonen hvor den ville opprette VMWare-kompatible filer:
Prosessen for å konvertere Microsoft VPC-bildet tok alle tre minutter. Jeg kopierte disse filene til en tommelstasjon og brakte dem over til min Mac. Jeg lanserte VMWare Fusion og opprettet en ny VM basert på et eksisterende bilde, peker det på bildet jeg nettopp har opprettet, og valgte å lage en lokal kopi av bildet på harddisken min:
Jeg ble deretter bedt om å oppgradere til det nyeste formatet. IKKE GJØR DET. Hvis du gjør det, vil din VM ikke fungere. Jeg vet ikke hvorfor, men jeg forteller deg dette fra erfaring.
VMWare Fusion kjører gjennom importprosessen og lar deg deretter konfigurere VM-innstillingene dine. Du må tilpasse innstillinger som minne og videoalternativer basert på maskinens muligheter. Jeg kjørte deretter VM og ble presentert med Windows XP login.
Ved å logge inn ble jeg møtt av standard sperren av nye maskinvare funnet meldinger. Bare ignorere de, sammen med aktiveringsprompten, og du bør kunne bruke operativsystemet:
Både Parallels og VirtualBox er gode VM-løsninger. VirtualBox er spesielt åpen programvare og tilgjengelig under en GPL lisens. Jeg har ikke brukt Parallels, så jeg har ingen skritt for deg å følge med at jeg vil føle meg bra til å anbefale. Hvis du tilfeldigvis bruker VirtualBox, har Jon Thorton gjort en god jobb med å gi en trinnvis forklaring på hvordan du bruker VPC-bildene med VirtualBox. Det er litt involvert, men det virker. Jeg har også hørt mange utviklere rave om ievms-skriptene; de lar deg laste ned VPC-bildene og konvertere dem til et format som VirtualBox aksepterer. Prosessen er ganske automatisert og synes å være et bedre alternativ.
Den nyeste metoden jeg har anbefalt, med mye spenning jeg kan legge til, er en nettleserbasert tjeneste, kalt BrowserStack. Det lar deg teste nettstedet ditt ved hjelp av virtuelle nettlesersøkter - alt i din favoritt nettleser. Det bruker Flash for å gi den virtualiserte økten, og du kan velge fra hvilket som helst antall operativsystem og nettleserversjoner. Hvis jeg for eksempel vil teste ut forskjellige nettlesere i Windows XP, er det like enkelt å velge det operativsystemet og velge målleseren:
Det viktigste er at det ikke er et skjermbilde av nettstedet ditt; Det er en fullt fungerende nettleser som du kan samhandle med.
Hvis du ser på bildet, har jeg klikket på rullegardinmenyen for kategorien "Sikkerhet" og i det følgende bildet bruker jeg utviklerverktøyene for Internet Explorer F12 til å feilsøke.
Dette er et veldig kraftig system fordi:
Det siste punktet er viktig fordi din utviklingskode vanligvis ikke kommer til å gå på en offentlig tilgjengelig webserver (med mindre du er en kodende cowboy og dev === produksjon). Den lokale tunnelen bruker Java for å etablere forbindelsen, og oppsettet er veldig enkelt. Teamet på BrowserStack har gjort en god jobb med å forklare hvordan du får ting oppsett.
Mens denne artikkelen handler om å teste IE, er det jeg elsker om BrowserStack bredden av nettleseren og OS-støtten de tilbyr, helt ned til utviklerverktøyene. Selv om nettleserne er virtualisert, betyr det ikke at de ikke inkluderer deres respektive utviklerverktøy.
Den nyeste metoden jeg har anbefalt, er en nettleserbasert tjeneste, kalt BrowserStack.
Vi vet alle at testing er vanskelig, og å måtte bekymre seg for flere versjoner av IE gjør det vanskeligere. Det ville være flott hvis vi kommer til det punktet der vi kun kan fokusere på den nyeste versjonen av IE, men for tiden krever kunde- og prosjektkravene å diktere hvilke IE-versjoner vi trenger for å støtte. Heldigvis har vi løsninger som kan tillate oss å teste med minimal kostnad, og i noen tilfeller, som BrowserStack, uten noen maskinvarepåvirkning i det hele tatt.
Testing IE er viktig. Det er en av de mest brukte nettleserne i verden, og de nyeste versjonene har utmerket støtte til stabile standarder. Men Oldie er fortsatt der ute, og det er viktig at brukerne har en god opplevelse.
Jeg håper at alternativene jeg presenterte, hjelper deg. For meg skal jeg bruke BrowserStack for de tilfellene der jeg trenger å gå tilbake i tid.