= Performance Testing module = || '''Date''' || 2012/09/14 || || '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Jeichar Jesse Eichar] || || '''Last edited''' || || || '''Status''' || Committed || || '''Assigned to release''' || 2.9.x || || '''Resources''' || Funding Swisstopo || || '''Code''' || https://github.com/jesseeichar/core-geonetwork/commits/feature/jmeter || == Overview == Add a jmeter module that, when requested, will run various performance tests against a geonetwork instance and provide a report of the results. === Proposal Type === * '''Type''': Security * '''App''': !GeoNetwork * '''Module''': === Links === * '''Email discussions''': * '''IRC discussions''': * '''Related work''': * http://jmeter.apache.org/ * http://mojo.codehaus.org/chronos === Voting History === * None as yet ---- == Proposal == In order to more easily track and detect performance problems a jmeter module will be created which will have a some jmeter tests defined and can be very easily ran and reports viewed. The details are as follows: In project add a new jmeter maven module with the [chronos|http://mojo.codehaus.org/chronos] plugin for running jmeter tests and creating reports. The default behaviour will be to use jetty to run Geonetwork and then run the jmeter tests against that instance. The tests can be ran either standalone (just from the jmeter directory) or as part of a full build. The history is tracked an therefore be used to track performance metrics overtime. In additional to being able to being ran against a Geonetwork ran in an embedded Jetty instance, it is possible to run the tests against an arbitrary Geonetwork instances by passing certain properties to the maven command. See Properties below. == Commands == || Command || Directory || Description || || mvn install || jmeter || Start Geonetwork in embedded jetty and run jmeter tests against instance || || mvn site:run || jmeter || Run the maven site jetty on port 9000. The performance reports are under the Reports section || || mvn install -P jmeter || root directory || Build geonetwork and run jmeter tests || || mvn install -P -jmeterjetty install || jmeter || Run jmeter tests but do not start embedded jetty || || mvn install -P -jmeterjetty -Dtestserver.host=otherserver.com -Dtestserver.port=80 install || jmeter || Run jmeter tests (no jetty) against http://otherserver.com:80/geonetwork|| == Properties == || Property || Default || Description || || testserver.host || localhost || the server to test || || testserver.port || 9234 || the port to use in http requests || || testserver.protocol || http || the protocol to use when making requests || || admin.username || admin || the user name to use for loading sample data and editing metadata || || admin.password || admin || the password for admin.username || || base.url || /geonetwork || the base url to use when making requests. If changed base.loc.url will also have to be changed || || base.loc.url || /geonetwork/srv/eng || the base url to use when making service requests || === Backwards Compatibility Issues === No issues == Risks == == Participants == * As above