JsonApiDotNetCore Performance Tests

Build status

Head to the issues to see the latest test results.

What is this?

This repository provides tooling for running load tests against a JsonApiDotNetCore application. It uses vegeta to run tests against a sample application (located under ./app). If you want to see the details of the tests, take a look at ./load-test/test.sh

The App

ASP.Net Core → JsonApiDotNetCore → Entity Framework Core → Npgsql → PostgreSQL

Execution Environment

The app and database run inside separate docker containers using docker-compose for orchestration. The test can be executed locally or on a Digital Ocean VM. docker-machine is used to create the VM on demand using the token specified in variables.env.

Running The Test

Pre-Requisites

  • Docker
  • Docker Compose
  • Docker Machine

Running Locally

  • Set configuration in variables.env and source them into your shell
cp ./variables.env.sample ./variables.env
open ./variables.env
# edit the config, GH and DO values are not required for local testing
  • Run the test
./run-local.sh
  • The test results will be dumped to ./load-test/results

Running On Digital Ocean Droplet

  • Set configuration in variables.env
  • Run the test
./run-on-droplet.sh
  • Delete the droplet when done
./remove-droplet.sh

Uploading Results to GitHub

  • Ensure UPLOAD_RESULTS is set to true in variables.env file