Performance Testing with Amakihi

Shortly after we started generalizing the Amakihi code, our boss asked if we could use Amakihi to gather some performance data on an internal application. We wanted to compare two different EJB server implementations to determine whether or not to migrate to a popular open source EJB server and open source database, or stick with the current server and database implementations.

Here's what we did:

  1. First, we wrote a six or seven scripts that implemented typical uses of the web application. We also came up with a "variable substitution" strategy so that we could, for example, use the same script, but logged in as a different user.
  2. Next, we used JUnit's ActiveTestSuite class to allow us to run scripts in several parallel threads. We implemented a "select a script at random" function, so that each thread would pick one of our scripts, and run it. We also decorated that with a RepeatedTest decorator so that we could run the scripts over and over again.
  3. Finally, we gathered the amakihi performance measure logs and processed the results. We collated the results into a big XML analysis file. Then we ran the XML analysis file through several XSLT stylesheets to prettify the results.

Here's a sample our results:

Back to the main page.