How performance test 100 or 1000 users for a meteor app?

How would you test the performance of a meteor app with 100 or 1000 users?

I want to simulate n users concurrently interacting with the meteor app. Any suggestions for a tool or a strategy how to do this?

I have used artillery.io for stress testing.

Refer to the docs for configuring scripts to test your endpoints. You can also use E2E scripts from Playwright as load tests with artillery rules, which is very beneficial for testing a Meteor app.

Consider that both Artillery and Playwright may require the latest Node LTS version. Meteor 2.x uses Node 14.x. To resolve this, you can proceed with any of these:

  • Use Volta or any node version manager to select the Node LTS version compatible with latest Artillery and Playwright. Since these tools are independent of your Meteor app development, running them with the required version will work. volta run --node <version> <tool-cmd> might help you.
  • Check for older versions of Artillery and Playwright compatible with Node 14.x, and ensure their APIs are compatible.
  • Migrate your Meteor 2.x app to Meteor 3.x to unify the latest Node version on your environment and ensure tool compatibility.
4 Likes

I’ve been using this: meteor-down - npm
Some things might look old, if you want to go this way I can extract some rewrites from some of my projects.
What I like about it, you can authenticate set concurrency and reoccurrence/frequency. I use Redux actions and I can log the user triggered actions in any route and use those methods to simulate user behavior with Meteor Down

3 Likes

I have used this https://locust.io/

Very simple and can run locally.

1 Like

Not sure how familiar you are with load testing so just a few tips when conducting your tests:

  • don’t run the tests on the same machine as the servers you are testing

  • make sure the tests are hitting all the pieces you want to measure. For example, if you aren’t using a CDN, the meteor server is also responsible for sending the initial js payload, which you may or may not want to include in your measurements

  • be kind to your web hosts and let them know ahead of time if you are going to do a large load test. Otherwise, it can resemble a DoS attack and you’ll get inaccurate results due to rate limiting

1 Like