Scripts for conveniently executing AcmeAir.
The default paths in these scripts and examples below assume you will be working in $HOME/acmeair. Adjust the values in the scripts to suit your environment.
- Get MongoDB v3, install locally.
- Edit
mongo_ramdisk.shand adjustMONGO_ROOTto the location of your Mongo install. - Adjust (or remove)
DB_AFFINITYas appropriate to suit your system. - Run
mongo_ramdisk.sh startwhich will create a ramdisk and start MongoDB with a blank database on it. (Note, this requiressudopermissions for creating the ramdisk)
Other commands for mongo_ramdisk.sh: stop the database with stop, check if it's running with status, or get a MongoDB shell with shell.
cd $HOME/acmeair
git clone https://github.com/acmeair/acmeair-nodejs.git
Edit acmeair-nodejs/settings.json and change:
mongoHost- hostname for your database serveruseDevLogger- set tofalseto disable verbose logging of requests
Edit acmeair-nodejs/loader/loader-settings.json and change:
MAX_DAYS_TO_SCHEDULE_FLIGHTSto 30
This is required to populate the database with enough flight data for the JMeter driver, which will issue queries for flights up to 30 days from today.
Run loaddb-nodejs.sh, which will start the Node.js implementation, then access the http://localhost:9080/rest/api/loader/load URL to populate the database.
Between runs, you can quickly reset the database back to a pristine state by running resetdb.sh, which will run mongo_ramdisk.sh stop, start and loaddb-nodejs.sh for you.
git clone https://github.com/djones6/acmeair-driver.git (my fork parameterizes the values in the AcmeAir.jmx driver script)
Follow the JMeter installation instructions: https://github.com/djones6/acmeair-driver/blob/master/acmeair-jmeter/README.md
Ensure you customize the user.properties file (in particular, give CONTEXT_ROOT an empty value and adjust the THREADS, RAMPUP, DURATION, DELAY etc for your needs).
You can get more frequent command-line throughput summaries by reducing the value of summariser.interval (the minimum interval supported by JMeter is 6 seconds).
runnode.sh (in one terminal)
runclient.sh (in another terminal)
- customize the runclient.sh script appropriately for your JMeter installation and the location of your properties files.