Melanion is a tool for configuring and running automated performance tests against Web applications. It uses HTTPerf to generate traffic, and saves all output (request rate, any errors, concurrent throughput, etc) in a database. Runs are tagged with the targeted code revision. The web interface then creates reports of various performance variables across revisions.
Test configurations for the same project are correlated together under a target. The settings here apply across different types of test, and include:
- Revision URL
- Melanion can automatically determine the revision number of the target via HTTP. This URL should return the revision number as plain text, and nothing else.
- DB instrumentation
- If database authentication is provided here, the tester will run a SHOW GLOBAL STATUS command before and after each test, and record the difference in queries, slow queries, and bytes in/out from the database.
Each target has multiple httperf configurations associated with it; each run of a configuration is stored as well. The target page correlates data from different runs of each configuration and displays a graph of various performance variables.
The core web app is implemented in Python with Pylons. Currently it uses SQLite for data storage, though that could be changed to MySQL. Source lives at http://svn.mozilla.org/projects/webtest/trunk/ ; dependencies and build instructions are in README.txt . Additionally, the machine hosting the app needs to have HTTPerf installed.