Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The clustertest distributed testing framework

branch: master
README
This project contains the source code for the clustertest testing framework.

clustertest is a testing framework built to test the Slony-I replication system 
See http://www.slony.info for more information on Slony-I

Building It All
========================

This is a Java application, built using the "Ant" build tool, as follows:
% ant jar
Buildfile: /var/lib/postgresql/PostgreSQL/clustertest-framework/build.xml

compile-common:
    [mkdir] Created dir: /var/lib/postgresql/PostgreSQL/clustertest-framework/build/classes
    [javac] /var/lib/postgresql/PostgreSQL/clustertest-framework/build.xml:23: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

compile-testcoordinator:
    [javac] /var/lib/postgresql/PostgreSQL/clustertest-framework/build.xml:44: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 25 source files to /var/lib/postgresql/PostgreSQL/clustertest-framework/build/classes
    [javac] Note: /var/lib/postgresql/PostgreSQL/clustertest-framework/src/info/slony/clustertest/testcoordinator/script/ClientScript.java uses or overrides a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
     [copy] Copying 1 file to /var/lib/postgresql/PostgreSQL/clustertest-framework/build/classes/info/slony/clustertest/testcoordinator

jar-common:
    [mkdir] Created dir: /var/lib/postgresql/PostgreSQL/clustertest-framework/build/jar
      [jar] Building MANIFEST-only jar: /var/lib/postgresql/PostgreSQL/clustertest-framework/build/jar/clustertest-common.jar

compile-client:
    [javac] /var/lib/postgresql/PostgreSQL/clustertest-framework/build.xml:30: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to /var/lib/postgresql/PostgreSQL/clustertest-framework/build/classes
     [copy] Copying 2 files to /var/lib/postgresql/PostgreSQL/clustertest-framework/build/classes/info/slony/clustertest/client

jar-client:
      [jar] Building jar: /var/lib/postgresql/PostgreSQL/clustertest-framework/build/jar/clustertest-client.jar

jar-coordinator:
      [jar] Building jar: /var/lib/postgresql/PostgreSQL/clustertest-framework/build/jar/clustertest-coordinator.jar

jar:

BUILD SUCCESSFUL
Total time: 2 seconds



Clustertest is a distributed testing framework that is divided into the following 
major components


Coordinator
=========================

The test Coordinator is responsible for overseeing the testing run. 
It execute a set of javascript 'tests' that perform control the flow
of the test.  The test scripts that the test coordinator invokes will
do things like 
* Create and initialize the database
* Schedule 'client' test scripts (See below)
* Invoke slony replication programs 
* Cleanup the database after the test

The code for the test coordinator can be found in 
src/info/slony/clustertest/testcoordinator


Client
=====================

Test clients execute scripts written in JavaScript that put perform testing
actions such as applying load to the database.  Clients scripts are passed to
remote client worker programs that connect to the server (See client.server.port
in the configuration file) looking for client tasks.  The coordinator will pass
the javascript that the client should execute to the test client.

Client scripts should define a Javascript test class with a set of
test methods.  The client script should then create an instance of the ClientGroup
class, set the parameters and launch the transactions (by calling the proper method on
ClientGroup).

The  clustertest-client.jar file contains the test client program that will
connect to the test coordinator and wait for jobs to become available.  The
client instances can be launched as
java -jar clustertest-client.jar -server testcoordinator_server.com:11540

(servername:port where testcoordinator.com is the server to connect to and 11540
is the port on the server that the test coordinator is listening on)



Client                  Test Coordinator                  Postgresql
============connects==>                 

    <=====passes========== client script

=============jdbc connection=============================>
Something went wrong with that request. Please try again.