Gå direkt till sidans huvudinnehåll

Webperf Core – testa en webbplats från din egen dator (eller moln)

En sen julklapp som till råga på allt är illa inslagen (ganska mycket fulkod för närvarande), men här kommer lite öppen kod för dig som vill köra tester mot valfri webbplats.


Notera: Denna text har många år på nacken. En lite mer aktuell variant finns för dig som kan tänka dig att köra en virtuell server och sedan den här bloggposten skrevs har communityt ordnat en fin dokumentation på Github – oavsett om du vill köra med Docker, Github Actions eller lokalt.


Det är inget märkvärdigt med det paket med tester som nu släpps som open source. Alla drar nytta av webbtjänster, som från Google, Dataskydd.net och webbstandardorganisationen W3C.

De tester som ingår i första versionen är:

  • Google Pagespeed Insights API
  • Test av 404-sida
  • Validerar HTML-koden enligt W3C
  • Validerar CSS-koden enligt W3C
  • Integritetstest med Webbkoll, av Dataskydd.net

Kom igång med webperf_core

Här får du lite tips på hur du kommer igång med testerna på din dator. Egentligen är det ännu enklare att köra testerna på en färdig miljö som PythonAnywhere - 50 kr/månad - och då är den tekniska miljön klar för att lägga upp filerna.

Själva koden laddar du ner från GitHub – webperf_core och placerar på en bra plats på datorn.

Förbered källkoden

Det är två filer som du behöver justera:

  • SAMPLE-config.py behöver döpas om config.py
  • I mappen dbase ska filen SAMPLE-dbase.sqlite döpas om till dbase.sqlite

Anledningen till detta är för att om du laddar ner en ny version av koden ska inte dina inställningar eller data försvinna.

Ännu en sak du behöver göra är att öppna filen config.py och ändra en sak. Raden som ser ut som nedan är ofullständig:

googlePageSpeedApiKey = “”

Mellan citationstecknen ska din API-nyckel för Google Pagespeed API in. Se nedan rubrik om API-nyckel för hur du gör detta.

API-nyckel för Google Pagespeed API

Du kan välja att strunta i Google Pagespeed API. I så fall sätter du en brädgård # framför följande rad i default.py:

testsites(test_type=0)

Så den ser ut så här:

#testsites(test_type=0)

Google Pagespeed kräver en API-nyckel. Den kan du komma över så här:

  1. Gå till Google Cloud Platform.
  2. Sök efter Pagespeed Insights API.
  3. Klicka in på Credentials (eventuellt måste du skapa ett projekt först, om du inte redan har ett).
  4. Klicka på + Create Credentials, sedan API key
  5. I dialogrutan kommer det under Your API key, den kan se ut så här AIzaXyCjEXTvAq7zAURVvA7slvDO9p1weRfgW

Koden där under är alltså din API-nyckel som du ska stoppa in i filen config.py i källkoden, mellan citationstecknen på raden där du hittar googlePageSpeedApiKey.

Provkör koden

Följande moment behöver du gå igenom för att starta koden:

  1. Om du inte har Python installerat måste du börja med det – Download Python (vilket du kan strunta i om du kör på PythonAnywhere).
  2. Öppna Terminalen (Macos & Linux) eller Kommandoprompten (Windows).
  3. Navigera till där du laddat ner (i en uppackad version) källkoden. Om du inte vet hur man navigerar i Terminal/CMD, läs guide för Windows eller under Step 5 för Mac/Linux.
  4. Skriv följande kommando och tryck Enter: pip install -r requirements.txt – då kommer några Python-tillägg att installeras.
  5. Starta programmet med följande kommando och tryck Enter: python default.py

Nu kommer den påbörja tester.

Justera databasen

Om du inte ändrat något i din databas är det webperf.se som kommer att testas. För att ändra i databasen kan du ladda ner DB Browser for SQLite. Verkar dock inte finnas till Linux.

Du kan lägga till ett gäng webbplatser. Öppna databasen, gå till tabellen sites, lägg till en ny rad/record med adress och titel. Testresultaten läggs i tabellen sitetests.

Bra att veta om databasen:

  • En webbplats identitet heter id i sites-tabellen, vilket refererar till site_id i testresultaten i sitetests.
  • most_recent i sitetests är ett filter för att få fram de senaste testerna av respektive webbplats.

Om du inte kan frågespråket SQL för databaser finns en bra introduktion på W3Schools. Det är med SQL du kan hämta ut resultat från databasen, räkna ut genomsnitt och mycket mer.

Får du felmeddelanden?

Det är ofta lönt att googla på de felmeddelanden man får. Om du ger upp letandet så kan du alltid kolla om någon på vår Slack-kanal har tid att hjälpa dig, men glöm inte att klistra in ditt felmeddelande direkt i första inlägget.

Om du tror att felet du råkar ut för är generellt kan du alltid starta en issue på Github.

Vad du får lov att göra med denna kod/repo

Licensen som används är MIT-licensen. Det innebär att man får göra vad man vill med källkoden, inklusive att använda den i kommersiella mjukvaror och sammanhang. Dock ingår det inga garantier eller ansvarstagande för koden.

Vill du bidra?

Det är inte konstigare än att du ger dig in i projektet på Github.

Mer om Webperf Core