Here's how I've stress tested ODK Aggregate in the past. If you have other ways to do stress-tests, please share!
-
In Aggregate, upload your sample form (
form.xml
). Make sure anonymousUser has Data Collector privileges.form.xml (601 Bytes)
-
Install Apache Bench on a machine where the phones will be (basically outside of your network). Apache Bench comes with Apache HTTP server.
- macOS: It's already installed
- Ubuntu:
sudo apt-get install apache2-utils
- Windows: Use Apache Friends
- macOS: It's already installed
-
Run the following command to upload a submission (
post-file.txt
). If you are using Windows, it'll be ab.exe not ab.post-file.txt (232 Bytes)
-
Upload a single submission to a local Tomcat server
ab -l -p post-file.txt -T "multipart/form-data; boundary=1234567890" http://your_server_ip:your_port/ODKAggregate/submission
-
Upload 100 submissions with 100 concurrent requests to an remote App Engine server
ab -n 100 -c 100 -l -p post-file.txt -T "multipart/form-data; boundary=1234567890" https://your_server.appspot.com/submission
-
-
In the results, look for Non-2xx responses (the number of failed submissions) and Requests per second (the throughput). You want few failures and lots of throughput!