Haaga-Helia University of Applied Sciences · Software Development · SWD4TN023
GitHubWikiAPI Docs

REST API Performance Testing
Across European Cloud Providers

A course project for SWD4TN023 at Haaga-Helia UAS. We built an automated testing harness that continuously sends HTTP requests to sample REST APIs hosted on different cloud regions and measures response time, error rate, and throughput. The test runner is deployed on a VPS in Frankfurt to get a central European baseline.

Haaga-Helia UAS 2025-2026
SWD4TN023 Backend Development
Node.js / Express / k6
VPS: Frankfurt, DE
Test runner status
Runner● Running
Requests today14,832
Avg response112 ms
Error rate0.4%
Last run2 min ago
VPS regionFrankfurt

Project Description

The goal of this project is to evaluate how different REST API design patterns (REST, GraphQL-over-HTTP, chunked streaming responses) affect client-perceived latency under realistic network conditions. We deliberately test both short-lived request/response cycles and long-polling / streaming endpoints to understand how servers behave under sustained connections.

Our test runner sends scheduled HTTPS requests every few seconds from our Frankfurt node to a list of target APIs. Some tests use persistent connections with keep-alive, others deliberately close and re-open TCP sessions to measure handshake overhead. All traffic is HTTPS on port 443.

Tested Endpoint Types

Team

VK
Viktor K.
Backend / test runner / DevOps
MH
Mikael H.
API design / documentation
AL
Aino L.
Data analysis / reporting
Tech stack
Node.js Express k6 Grafana Linux VPS Let's Encrypt

Project Timeline

  • Sep 2025Project kick-off, requirements done
  • Oct 2025VPS setup, initial endpoints done
  • Dec 2025Test harness v1 deployed done
  • Feb 2026Data collection phase done
  • Apr 2026Analysis and final report in progress

Test Runner

Automated k6 scripts run on a cron schedule, sending HTTPS requests every 10-30 seconds. Persistent and non-persistent connections tested alternately.

host: webframe-eu.space
runner: k6 v0.49.0
schedule: */30 * * * * *

Traffic Pattern

Tests generate mixed traffic: short GET requests, large POST bodies, and long-lived streaming connections on port 443. Traffic is continuous 24/7 during data collection.

port: 443 (HTTPS)
conn: keep-alive + new
volume: ~600 req/hr

Ethics and Scope

All tests target our own endpoints or public APIs that explicitly allow automated testing. No scraping of third-party services. Approved by course supervisor.

scope: own infra + public APIs
supervisor: approved
data: anonymised logs