Japex plugin for Hudson
Kohsuke has recently blogged about Hudson plugins and also about the plugin that we have recently wrote for Japex. Here are some more details on how to get up to speed with performance tracking using Japex and Hudson.
The Japex trend report tool is now available in Hudson via a plugin. If you are interested in learning more about this tool please check my earlier blog. After installing the plugin in Hudson, you'll find a few more options that relate to Japex in a project's menu and configuration.
Performance tests are typically executed on a remote machine (i.e. not in the same machine where Hudson is running) which has been configured to have a single executor in Hudson to ensure that all tasks are carried out sequentially. In the example that follows, we use a Hudson shell script to log on a remote server and start a remote shell script. Once the remote script is completed, the local script resumes and copies the resulting Japex reports via NFS into Hudon's workspace area.
# Clean up Hudson workspace rm -rf . # Run the test b=./MicroBenchmarks/Jaxws/WSpex ssh -n -l myuser myhost $b/WSpex.hudson reports # Download reports mkdir reports || true cp -r /net/myhost/$b/reports/last reports
In order for Hudson to generate trend reports for your benchmark, you need to indicate the location of the reports in the local workspace. You can do that by editing the configuration of your project as shown below.
The end result can be seen when clicking on the Japex Trend Report menu option in your project.
As in a stand-alone Japex trend report, there is one chart per mean as well as a chart per test case, and a pull-down menu at the top can be used to navigate through the various charts. That's basically it. The main advantage of having this as part of Hudson is that you can easily control all the benchmarks from one location, scheduling builds periodically, on demand or by setting your project as a downstream of another project. Enjoy it and happy benchmarking!