|
|
(64 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| == Software Requirements == | | = OX App Suite Load Tests = |
| * Java SE JDK6 or JDK7
| |
| * Git
| |
|
| |
|
| == Getting Performance Repository ==
| | We're providing load tests for various OX App Suite APIs and maintain simulations that correspond to specific client implementations. To use it, clone the following repository: |
| * Cloning Repository
| |
| <code>$ git clone https://git.open-xchange.com/git/wd/testing/performance</code>
| |
|
| |
|
| * Checkout a branch, for example ''develop''
| | <code> |
| <code>$ git checkout develop</code>
| | $ git clone https://gitlab.open-xchange.com/qa/performance.git |
| | </code> |
|
| |
|
| | Documentation can be found at <code>com.openexchange.test.performance.gatling/project/doc</code>. Please checkout the branch that corresponds to the version of OX App Suite to be tested. |
|
| |
|
| == Development Environment ==
| | [[Category: AppSuite]] [[Category: Testing]] |
| If you want to execute the tests via an IDE like Eclipse then you will also need to install the following software:
| |
| * [https://www.eclipse.org Eclipse 4.2] or later
| |
| * [http://scala-ide.org Scala IDE plugin]
| |
| * Maven integration from the default update site '''m2e'''
| |
| * [http://alchim31.free.fr/m2e-scala/update-site m2e-scala]
| |
| * [http://maven.apache.org/ Apache Maven]
| |
| | |
| === Importing Project into Eclipse ===
| |
| # Open Eclipse
| |
| # Click on File -> Import... -> Maven -> Existing Maven Project
| |
| # Select the gatling folder within the performance repository
| |
| | |
| == Configurable Parameters ==
| |
| ; protocol: Which protocol to use. ''Possible values are: '''"http"''' or '''"https"'''. Default value: '''"http"'''.''
| |
| | |
| ; host: Which host to use. ''Possible values are: '''"localhost"''', '''"10.0.0.1"''' or if you want to stress several groupware servers, to bypass a loadbalancer for example, then you can use comma-separated IPs or hostnames '''"10.0.0.1,10.0.0.2,localhost"'''. Default value: '''"localhost"'''.''
| |
| | |
| ; users: How many concurrent users to simulate. ''Default value: '''"5"'''.''
| |
| | |
| ; durationTime: Duration time of the simulation. ''Default value: '''"30"'''.''
| |
| | |
| ; durationUnit: The Unit of the durationTime. ''Possible values are: '''"SECONDS"''', '''"MINUTES"''', '''"HOURS"''' or '''"DAYS"'''. Default value: '''"SECONDS"'''.''
| |
| | |
| ; successpercent: Successful responses in percentage. ''Default value: '''"100"'''.''
| |
| | |
| ; reqpersec: Mean number of requests per second (lower bound). ''Default value: '''"0"'''.''
| |
| | |
| ; resptime: Mean response time (lower bound). ''Default value: '''"0"'''.''
| |
| | |
| ; csv_users: Name of the CSV-File for feeding the requests. ''Default value: '''"ox_user_credentials.csv"'''.''
| |
| | |
| ; syncmsgmax: How many objects to synchronize. ''Relevant only for '''QAPerfUSM'''. Default value: '''"50"'''.''
| |
| | |
| ; pimObjects: How many PIM Objects, for example contacts, should be created. ''Relevant only for PIM-Simulations like '''QAPerfContacts''' or '''QAPerfAppointments'''. Default value: '''"5"'''.''
| |
| | |
| === Snippet from the <properties>-section in the pom.xml ===
| |
| * List of all available System-Properties:
| |
| <properties>
| |
| <protocol>http</protocol>
| |
| <host>localhost</host>
| |
| <port>80</port>
| |
| <users>5</users>
| |
| <durationTime>30</durationTime>
| |
| <durationUnit>SECONDS</durationUnit>
| |
| <successpercent>100</successpercent>
| |
| <reqpersec>0</reqpersec>
| |
| <resptime>0</resptime>
| |
| <csv_users>ox_user_credentials.csv</csv_users>
| |
| <syncmsgmax>50</syncmsgmax>
| |
| <pimObjects>5</pimObjects>
| |
| </properties>
| |
| | |
| === Snippet from the <jvmArgs>-section in the pom.xml ===
| |
| <jvmArgs>
| |
| <jvmArg>-Dprotocol=${protocol}</jvmArg>
| |
| <jvmArg>-Dhost=${host}</jvmArg>
| |
| <jvmArg>-Dport=${port}</jvmArg>
| |
| <jvmArg>-Dcsv_users=${csv_users}</jvmArg>
| |
| <jvmArg>-Dusers=${users}</jvmArg>
| |
| <jvmArg>-DdurationTime=${durationTime}</jvmArg>
| |
| <jvmArg>-DdurationUnit=${durationUnit}</jvmArg>
| |
| <jvmArg>-Dsuccesspercent=${successpercent}</jvmArg>
| |
| <jvmArg>-Dreqpersec=${reqpersec}</jvmArg>
| |
| <jvmArg>-Dresptime=${resptime}</jvmArg>
| |
| <jvmArg>-Dsyncmsgmax=${syncmsgmax}</jvmArg>
| |
| <jvmArg>-DpimObjects=${pimObjects}}</jvmArg>
| |
| </jvmArgs>
| |
| | |
| == Test Execution ==
| |