Nästa generations testsystem för WordPress

En del av vår premium webbhotellstjänst med drift och förvaltning för WordPress är tester och uppdatering av våra kunders webbplatser med avseende på fel och andra inskränkningar i funktionaliteten. Testningen görs med hjälp av vårt eget kommando wp-test som även är tillgängligt för våra kunder via SSH och som nyligen uppdaterats till att vara byggd på en ny generation av verktyg jämfört med tidigare.

Det gamla testintegrationssystemet wp-test som vi byggt har använts sedan 2015 och bygger på webbläsaren PhantomJS och Rubys Rspec-tester. Under det senaste året har testsystemet nått sin slutstation, eftersom PhantomJS webkit inte längre ingår i webbläsaren Google Chrome. Detta ledde till att testerna (i synnerhet JavaScript-funktionaliteten) kommit att avvika mer och mer från den faktiska användarupplevelsen, varför vi blivit tvungna att bygga om vårt provningssystem.

Vårt helt nya testintegrationssystem av nästa generation bygger på tekniken headless Chrome, vilket innebär att en riktig Chrome-webbläsare körs på servern. Detta görs givetvis utan att någon grafisk utmatning sker, eftersom våra servrar inte är kopplade till bildskärmar. Denna nya teknik gör att vårt provningssystem kan få en bild av hur webbplatsen ser ut, som är nästan identisk med vad en vanlig besökare ser när de öppnar webbplatsen i sin Chrome-webbläsare. Vi tackar alla våra kunder som har provat det nya verktyget ända sedan vi presenterade det i Seravos nyhetsbrev för utvecklare.

Samtidigt passade vi på att genomföra ganska stora förändringar i vårt system och hur det fungerar. Bland annat har vi tagit bort katalogen tests som fanns under sökvägen /data/wordpress/. Nu behövs den katalogen enbart för specialbyggda tester för just den specifika webbplatsen. Det innebär att vår centraliserade infrastruktur för provning inte längre på något sätt stör det versionskontrollerade innehållet för våra kunder, något som gör det enklare än någonsin för utvecklare att arbeta med webbplatserna i vår WordPress-miljö. Den enda testkoden som finns inom kundens git-projekt kommer från och med nu att vara webbplatsens unika testkodning, som utvecklats av kunden själv eller av Seravo som en del av våra konsulttjänster.

En annan viktig förändring är att testerna nu skrivs utan användning av det tidigare systemets Ruby-kod och utan biblioteken Rspec och Capybara. Vår erfarenhet visar att kunderna sällan använde dessa. Därför har vi ändrat till PHP och biblioteket Codeception i vårt nya provningssystem. Där ingår några ändringar som vi gjort här på Seravo för att göra dem enklare och effektivare för WordPress-webbplatser. På det stora hela tror vi att denna lösning är långt mer lockande för utvecklarna att använda. Codeception är ett bibliotek med öppen källkod som används för testning av webbplatser och programkod oftare än Capybara. Den mer spridda användningen innebär att det finns mer dokumentation, vägledning och support på nätet, något som utvecklare kommer att uppskatta.

Den nästa generationens testsystem har nu använts på prov under lång tid. Den omfattande provperioden behövdes, eftersom testerna teoretiskt skulle kunna ge ett unikt svar för varje webbplats på grund av någon skillnad i den underliggande koden.

Vill ni lära er mer om hur ni kan skriva egna tester så hittar ni mer information i vår utvecklar dokumentation. Och har ni ett äldre versionshanterat projekt som använder vårt gamla test system så kan ni ta bort detta utan problem, t.ex. kan ni se hur detgjordes i detta publika projektet Linux-tuki.fi på GitHub.

De av våra kunder som inte är utvecklare och inte vill befatta sig med sina testsystem behöver inte oroa sig, det krävs ingen ändring från er sida utan webbplatserna kommer fungera som tidigare.

Testning av WordPress-webbplatser är en del av vår uppdateringsprocess, och detta nya testsystem höjer prestandan rejält i vårt system för uppdateringar. Under den närmaste tiden kommer det fler förändringar i vårt system för uppdateringar. Håll kolla på våra sociala kanaler och blogg för att hålla er informerade om våra senaste nyheter och uppdateringar!