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