Testrapport 4 - Jensprog/CashTrack GitHub Wiki
Datum: 14 maj 2025
Gitlab-commit: ef827689
Referens till testplan: Se Testspecifikation dokument
Testmiljö
- Operativsystem: MacOS
- Webbläsare: Firefox 136.0.2
- Backend: Next.js 15.3.0 utvecklingsserver
- Databas: MySQL 3.14.0 via Docker-container
- API-testning: Postman
- Automatiserade tester Jest 29.7.0
- Databas stresstest Artillery 2.0.23
Automatiserade tester
Test-ID | Namn | Status | Kommentar |
---|---|---|---|
UT1 | getUserByEmail (valid email) | :white_check_mark: GODKÄNT | Verifierar att funktionen returnerar användare när giltig e-post anges |
UT2 | getUserByEmail (invalid email) | :white_check_mark: GODKÄNT | Verifierar att funktionen returnerar null när ogiltig e-post anges |
UT3 | createUser | :white_check_mark: GODKÄNT | Verifierar att funktionen skapar en ny användare med korrekt data |
UT4 | comparePassword | :white_check_mark: GODKÄNT | Verifierar att lösenordsjämförelse fungerar korrekt för både rätt och fel lösenord |
UT5 | generateToken | :white_check_mark: GODKÄNT | Verifierar att en JWT-token genereras med korrekt format och data |
UT6 | verifyToken | :white_check_mark: GODKÄNT | Verifierar att en token kan verifieras och returnerar korrekt data eller null för ogiltiga tokens |
UI1 | CategoryForm renderar utan att krascha | :white_check_mark: GODKÄNT | Verifierar att CategoryForm-komponenten renderas korrekt utan fel |
UI2 | CategoryForm visar 3 kategori knappar | :white_check_mark: GODKÄNT | Verifierar att alla tre kategoritypknappar (Inkomst, Sparande, Utgift) visas korrekt |
SRV1 | authMiddleware omdirigerar oautentiserade användaree | :white_check_mark: GODKÄNT | Verifierar att middleware skyddar routes från obehörig åtkomst |
SRV2 | csrfMiddleware validerar tokens | :white_check_mark: GODKÄNT | Verifierar att CSRF-middleware korrekt validerar tokens för POST-anrop |
CI/CD-pipeline
Test-ID | Namn | Status | Kommentar |
---|---|---|---|
CI1 | Automatiserade tester i pipeline | :white_check_mark: GODKÄNT | Konfigurerat GitLab CI/CD för att köra alla Jest-tester före driftsättning |
CI2 | JWT_SECRET-hantering i CI/CD | :white_check_mark: GODKÄNT | Säker hantering av JWT_SECRET i pipeline med maskerade variabler |
CI3 | Docker-optimeringar | :white_check_mark: GODKÄNT | Implementerat .dockerignore och förbättrat Docker-konfiguration för effektivare byggen |
Stresstester mot Databas (Artillery)
Stresstest 1: Inloggning och transaktionsskapande (ST1)
Test-ID | Testtyp | Belastningsparametrar | Tidsperiod | Status |
---|---|---|---|---|
ST1 | Inloggning och transaktionsskapande | 2-10 användare/s, 30s | 2025-05-14 | :white_check_mark: GODKÄNT |
Testresultat
- Total användare: 180
- Totala förfrågningar: 360
- Svarsfrekvens: 15 förfrågningar/sekund
- Svarstider:
- Minimum: 5ms
- Maximum: 958ms
- Medelvärde: 168.7ms
- Median: 159.2ms
- 95% percentil: 320.6ms
- 99% percentil: 415.8ms
- Fullbordade sessioner: 180
- Misslyckade sessioner: 0 (0% felfrekvens)
Förbättringspunkter
Refaktorering: Behövde göra lite åtgärder kring kategorisering, göra gränssnittet tydligare och göra om standardkategorier till något som varje användare som skapar konto får automatiskt. Tog bort mina gamla tester och gjorde dem till automatiserade tester med Jest istället.
Uppdaterade hanteringen av CSRF-token från sessionStorage till cookies istället då jag hade problem med att öppna fler flikar av min app, cookies löste problemet.
Analys
Veckan gick bra, men det blev inte lika mycket gjort som jag önskat då jag hade en omtenta att studera inför. Fick automatiska tester att fungera med jest som testramverk och react-testing-library för react komponenter. Det viktigaste dock var att flytta CSRF-tokens till cookies istället för sessionStorage.