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.sh
and adjustMONGO_ROOT
to the location of your Mongo install. - Adjust (or remove)
DB_AFFINITY
as appropriate to suit your system. - Run
mongo_ramdisk.sh start
which will create a ramdisk and start MongoDB with a blank database on it. (Note, this requiressudo
permissions 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 tofalse
to disable verbose logging of requests
Edit acmeair-nodejs/loader/loader-settings.json
and change:
MAX_DAYS_TO_SCHEDULE_FLIGHTS
to 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.