npm install -g serverless
npm install serverless-artillery
export AWS_PROFILE=<your-aws-credentials-profile>
# export HTTP_PROXY=<your-corporate-proxy>
slsart deploy
slsart invoke
# you just sent 10 request at http://aws.amazon.com. Hungry for more? Continue:
slsart script -e https://your.endpoint.com -d 60 -r 1000
# this specifies 1 minute of 1000 HTTP requests per second at your endpoint - see script.yml in the local directory and artillery.io for docs
slsart invoke
# 1K RPS will happen for a minute. Yea! What fun. Now, clean up after yourself
slsart remove
# Full README and details on GitHub (https://github.com/Nordstrom/serverless-artillery)
# We wanted to make distributed load testing so easy that it could happen automatically with every push. It's worked nicely. It scales fantastically. You don't have to think about how it does so. Global distribution across regions and POPs are thoughts for the future.
# If you like the tool, you'll want to eventually setup load result recording that can handle your volume. There is an Influx DB plugin for that. In fact, there's a whole workshop for that (see lesson 4).
# Workshop: https://github.com/Nordstrom/serverless-artillery-workshop
# This tool automatically splits the artillery script into Lambda-sized chunks to be executed in a coordinated, distributed manner without burdening you with any of the details of what it takes to do this.
# a more general form is to come.
# [INSERT LEGAL DISCLAIMER]