PerfCake / PerfRepo

Other
14 stars 15 forks source link

Meet PerfRepo

Performance result repository (PerfRepo) is a web application tool that intends to make it easy to capture and archive performance test results and simplify comparison of performance run results and detect a performance regression from one build to the next in an automated fashion.

Get involved by entering bugs, feature requests etc into our JIRA: https://issues.jboss.org/browse/PERFREPO/

Features

More detailed Wiki page on PerfRepo features is coming soon.

Try it out

Here we describe process how to set up your own PerfRepo instance.

Prerequisites

List of suggested components to be able to run PerfRepo easily. Possibly other application servers or databases can be used, but this combination is used and tested.

Configure Maven

Configure Maven to use JBoss Nexus repository. Follow the steps at https://developer.jboss.org/wiki/MavenGettingStarted-Users in section "Configuring Maven to use the JBoss Repository".

Set up the database

  1. Create a database (e.g. named perfrepo)
  2. Script db_schema_creation.sql in model/src/main/sql creates all necessary tables and structures

Set up the application server

Following text assumes PostgreSQL installed on localhost and WildFly's standalone/configuration/standalone.xml.

Running tests

Integration tests uses Arquillian WildFly remote container, which means you have to have WidlFly running on your test machine and listening on default ports. Also you have to add test datasource PerfRepoTestDSinto the WildFly, ideally pointing to test DB, e.g.

                <datasource jndi-name="java:jboss/datasources/PerfRepoTestDS" pool-name="PerfRepoTestDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:postgresql://localhost:5432/perfrepotest</connection-url>
                    <driver-class>org.postgresql.Driver</driver-class>
                    <driver>postgresql</driver>
                    <security>
                        <user-name>perfrepo</user-name>
                        <password>perfrepo</password>
                    </security>
                </datasource>

For testing session bean, authentication is require and thus you have to also add appropriate security domain:

                <security-domain name="Arquillian-Testing" cache-type="default">
                    <authentication>
                        <login-module code="UsersRoles" flag="required">
                            <module-option name="usersProperties" value="users.properties"/>
                            <module-option name="rolesProperties" value="roles.properties"/>
                        </login-module>
                    </authentication>
                </security-domain>