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
sudo apt-get install apache2-utils
- Windows: Use Apache Friends
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!