Hello world, but with 1 000 simultaneous calls for 10 minutes straight

Prev Next

Goal

We want to test the scalability of an Hello World Application hosted on Poja by sending 1 000 simultaneous calls for 10 minutes straight using the Artillery Testing Tool.

How-to in 3 steps

Step 1: Install Artillery

Run the following command to install Artillery using NPM:

npm install -g artillery@latest

Step 2: Write the test file

Create a YAML file named artillery.yml with the following content to create 1000 Virtual Users (VUs) who will send parallel requests to the /hello endpoint of the application for 600 seconds or 10 minutes.

config:
  target: "https://YOUR_ACTIVE_DEPLOYMENT_URI"
  phases:
    - duration: 600
    - arrivalRate: 1000
scenarios:
  - flow:
    - get:
        url: "/hello"

Steps 3: Execute the test

Run the following command to execute the test :

artillery run artillery.yml

Voilà! The testing tool will create the VUs and send the requests for the specified duration.

Test with a minimal conf application hosted on Poja

We tried launching an Artillery test on a minimal application (with default configuration) hosted on Poja by sending 6000 simultaneous calls for 60 seconds, resulting with a 34ms p95 which means 95% of requests have a response time of less than 34ms:

http.codes.200: ................................................................ 6000
http.request_rate: ............................................................. 100/sec
http.requests: ................................................................. 6000
http.response_time:
  min: ......................................................................... 18
  max: ......................................................................... 806
  median: ...................................................................... 24.8
  p95: ......................................................................... 34.1
  p99: ......................................................................... 415.8