CLE Load Test Framework

Test Framework is a project with a simple goal. Provide the community with an easy to use, deterministic load test framework that encourages regular CLE performance testing and early discovery of problem areas in the code. This framework will later support integration testing, in order to catch regressions early in the cycle.

Introduction

Test framework allows everyone to perform load tests without effort, in order to popularize its use to get as much feedback as possible to improve Sakai's performance.

See it in action

You could find all source code in Subversion Test Framework.

Releases

Checkout Test framework releases here.

  • testframework-1.3.x

Note: Versions prior to 1.2 has a completely different behavior, this site describes versions from 1.2+. 

Features:

  1. Ready to work with Sakai CLE.
  2. Create and remove test data to perform load tests.
  3. Load tests with random users, data file or as admin becoming random or data file user.
  4. Now test cases separate from test environment, we are able to share test cases with the community in a simple form.
  5. Maven archetype to generate new tests.
  6. Test fragments support, share your tests or only a part of it to allow other users to compose others with your fragments.
  7. Build in test edition.
  8. Simplified tree folder structure.
  9. Allow site deployment via War generation.
  10. Remote execution of tests.

1.3.3 Version:

  1. Now uses JMeter 2.9.
  2. Upgrade chronos plugin 1.1.0.

1.3.4 Version:

  1. Now uses JMeter 2.11.
  2. Random users with studentXXXX format as in any sakai demo server.
  3. New Samigo Test. Any user answer randomly every question of every test present.

1.3.5 Version:

  1. Allows you to control jmeter memory usage Xms,Xmx,...
  2. Fix bug in My WorkSpace Drop Down Menu request.
  3. Allows you to show Site Name or Not (all request of the same tool in different sites grouped).

Test Framework from scratch.

Requeriments.

  • Java 1.6 or higher.
  • Maven 2.x.

Install.

  1. Checkout the lastest tag.
  2. Populate database (Optional if you already have test users).
    1. Configure data size. (See below)
  3. Run tests.
    1. Configure test size. (See below)
  4. Generate final report.
  5. Clean before next run.

Configuration.

Test framework has predefined propertes with different settings but you could set all parameters defining your own properties.
There are different properties files:

  • configuration.properties: General properties for test environment.
  • global.properties: Contains common properties for all tests within a package.
  • test.properties: Placed in each test folder contains specific properties.
  • any-other: You could select with -Dtest-properties-file=name.

Clean results for next cycle.

To clean reports and history type:

mvn clean

History dir contains old executions and this command clean executions before days-offset property in configuration.properties.

To complete delete history type:

mvn clean -Dclean-target=reset-history

To complete delete downloaded test cases type:

mvn clean -Preset-test-cases

Note: If you change a test case, don't run it !!

Obtain results

To get the reports generated by the framework type:

mvn site -Preport

You could type site-deploy to deploy the complete reports into location indicated by publish-location property in configuration.properties.
To do this you need to add server entry in your maven settings.xml config file as:

<server>
  <id>sakai.site.deployments</id>
  <username>login-admin</username>
  <password>password-admin</password>
</server>

You can also generate a war and deploy manually:

mvn package -Pwar

Way to collaborate

If you are familiarized with maven, jmeter, etc... your help will be very useful.
If you manage any Sakai installation, consider to use this test framework to perform load tests and check your tests servers.

If you created JMeter tests and want to share with the community please contact !!