Agile Performance Testing - Testing Experience
Agile Performance Testing - Testing Experience
Agile Performance Testing - Testing Experience
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
init_server<br />
The init server job helps to clean up and restart the application<br />
server (websphere, weblogic, jboss, tomcat). It was not easy to get<br />
this one stable, as the ANT job that starts the server on the remote<br />
node got killed once the parent Hudson job returned to server.<br />
The solution here is to add an environment variable BUILD_<br />
ID=dontKillMe to this job, so that child jobs stays alive.<br />
The logic that defines which server needs to be started, and where<br />
the server is located, is actually not visible here, but hidden in our<br />
test framework. We just call the ANT target clean-start-server,<br />
and the rest will be handled locally on the node. In future, we<br />
want to integrate Cargo into our ANT task, as it allows for easy<br />
server start and deployments.<br />
Install<br />
The install job installs the software, compiles the updated test<br />
software, configures the client-server set-up and deploys the<br />
server part on the application server. All these tasks have been<br />
integrated into a single ANT job “ant testenvir”, so the Hudson job<br />
just needs to call this ANT target, with some additional environment<br />
specific ANT properties.<br />
Runtest<br />
Our runtest jobs do the real test execution. We use separate build<br />
Test report<br />
Image8: SVN repositories<br />
Image9: Generate report<br />
The result of the testing is sent by mail. The report shows failures<br />
and errors per test suite, for each individual environment.<br />
steps in one single job:<br />
• On Windows we call a Windows batch script to map network<br />
drives<br />
• We call ANT target “setup-minimal-audittrail” to set up our<br />
database<br />
• We call ANT target “runsuite” to start our test<br />
• We call ANT target “load-all” to load the results of the unit<br />
tests into a database. We have some Java jobs that parse the<br />
unit .xml files, store them into a database schema to facilitate<br />
good comparison and reporting afterwards.<br />
The ANT jobs above all require their own specific environment<br />
settings, which we supply as a parameter in the ANT properties.<br />
Each node will get its own environment setting.<br />
Report<br />
The Hudson job “report_reg_trunk” has a script execution build<br />
step, that starts a Python script. The script reads test results from<br />
the database, both for the current and for the previous version,<br />
and writes output to the console. The job also has an additional<br />
email configuration that creates a mail with the console output<br />
and sends it to the QA department.<br />
It also compares the results of this build against the results of<br />
the previous build. Analysis of the report still takes time, but the<br />
comparison helps.<br />
30 The Magazine for Professional Testers www.testingexperience.com