Vandaag kondigen we met trots Chrome for Testing aan, een nieuwe Chrome-variant die specifiek gericht is op het testen van webapps en automatisering. Dit artikel legt uit waarom het Chrome-team dit nodig vond en geeft concrete voorbeelden van hoe Chrome for Testing jou als ontwikkelaar kan helpen.
Achtergrond
Browsertesten is een essentieel onderdeel van het creëren van een hoogwaardige webervaring, ongeacht of dit handmatig of automatisch gebeurt. Tegelijkertijd is het opzetten van een adequate browsertestomgeving notoir lastig, zozeer zelfs dat het consequent wordt genoemd als een van de grootste pijnpunten voor webontwikkelaars. Vandaag kondigen we een wijziging aan die hopelijk een deel van deze pijn verlicht.
Automatische update: geweldig voor gebruikers, lastig voor ontwikkelaars
Een van de meest opvallende kenmerken van Chrome is de mogelijkheid tot automatische updates. Gebruikers zijn blij te weten dat ze een up-to-date en veilige browserversie gebruiken, inclusief moderne webplatformfuncties, browserfuncties en bugfixes.
Als ontwikkelaar die een reeks end-to-end-tests uitvoert, heeft u echter mogelijk een heel ander perspectief:
- U wilt consistente, reproduceerbare resultaten bij herhaalde testuitvoeringen. Dit is echter mogelijk niet het geval als het uitvoerbare bestand of binaire bestand van de browser zichzelf tussen twee uitvoeringen door bijwerkt.
- U wilt een specifieke browserversie vastzetten en dat versienummer in uw broncoderepository controleren, zodat u oude commits en branches kunt uitchecken en de tests opnieuw kunt uitvoeren op de browserbinary vanaf dat moment.
Niets van dit alles is mogelijk met een automatisch updatende browserbinary. Daarom wilt u uw reguliere Chrome-installatie mogelijk niet gebruiken voor geautomatiseerd testen. Dit is de fundamentele discrepantie tussen wat goed is voor gewone browsergebruikers en wat goed is voor ontwikkelaars die geautomatiseerd testen.
Versiebeheerde browserbinaries
Afgezien van automatische updates vond je het misschien ook lastig om een Chrome-binary met een specifieke versie te vinden. Google maakt opzettelijk geen versiegebonden Chrome-downloads beschikbaar, omdat gebruikers zich geen zorgen hoeven te maken over versienummers – ze zouden altijd zo snel mogelijk naar de nieuwste versie moeten updaten. Dit is fijn voor gebruikers, maar vervelend voor ontwikkelaars die een bugrapport in een oudere Chrome-versie moeten reproduceren.
Een specifieker voorbeeld van dit probleem is wanneer u ChromeDriver wilt gebruiken voor browserautomatisering. U moet dan niet alleen een Chrome-binary downloaden, maar ook een ChromeDriver-binary met de bijbehorende versie om ervoor te zorgen dat de twee binaries compatibel zijn.
Omdat er geen goede manier is om deze problemen op te lossen, weten we dat veel ontwikkelaars in plaats daarvan Chromium-binaries (niet Chrome) downloaden, hoewel deze aanpak enkele tekortkomingen kent. Ten eerste zijn deze Chromium-binaries niet betrouwbaar beschikbaar op alle platforms. Ten tweede worden ze los van het Chrome-releaseproces gebouwd en gepubliceerd, waardoor het onmogelijk is om hun versies te koppelen aan echte Chrome-releases voor gebruikers. Ten derde verschilt Chromium van Chrome.
De oplossing: Chrome voor testen
Chrome for Testing is ontworpen om deze problemen op te lossen en is een speciale versie van Chrome die zich richt op de testtoepassing. Deze versie is niet automatisch bijgewerkt, geïntegreerd in het releaseproces van Chrome en beschikbaar voor elke Chrome-release. Een binair bestand met versienummer dat zo dicht mogelijk bij de standaardversie van Chrome staat, zonder de testtoepassing negatief te beïnvloeden.
Om Chrome geschikt te maken voor testen, hebben we wijzigingen aangebracht in de codebases van Chromium en Chrome en infrastructuur opgezet om deze binaire bestanden te bouwen en te uploaden naar een openbaar beschikbare bucket, gelijktijdig met het releaseproces van Chrome via alle kanalen (Stable, Beta, Dev en Canary).
De infrastructuur rond Chrome for Testing biedt interessante mogelijkheden die verder gaan dan Chrome zelf. Zo kunnen de eerder genoemde problemen rond het vinden van een overeenkomende Chrome- en ChromeDriver- binary volledig worden geëlimineerd door het ChromeDriver-releaseproces te integreren in de Chrome for Testing-infrastructuur . Dit lost niet alleen dit gebruikersprobleem op, maar stemt ook de ChromeDriver-releases af op die van Chrome en elimineert het handmatige ChromeDriver-releaseproces.
Hoe kan ik Chrome krijgen voor het testen van binaire bestanden?
De eenvoudigste manier om Chrome for Testing-binaries voor uw platform te downloaden, is met behulp van ons opdrachtregelprogramma @puppeteer/browsers , beschikbaar via npm . Hier zijn enkele voorbeelden:
# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable
# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0
# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary
# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0
Als u liever uw eigen geautomatiseerde scripts bouwt om deze binaire bestanden te downloaden, dan bent u bij ons aan het juiste adres. We bieden JSON API-eindpunten met de nieuwste versies per Chrome-releasekanaal (Stable, Beta, Dev, Canary). Raadpleeg het beschikbaarheidsdashboard van Chrome for Testing voor een snel overzicht van de laatste status.