Default Out Rerouting
Every agent runs a set of JUnit tests and each test may write information to the default out. Because it is important that the tester or developer gets this information while the test is running, the default out is copied to the main local test suite's console. This process eliminates the need to go and look at each of the agent consoles in the test suite.
Pisces Pluggable Communication Layer
Communication between the agents and the main local test is a complex matter, and Pisces must be able to work in a range of different environments and network topologies. In order to accommodate this issue, Pisces has a pluggable communication layer. Each of these implementations solves the problems that occur in their specific network environments.
Two basic communication layers are provided by Pisces by default--a multicast implementation, which is easy to configure but works only in a LAN environment, and a JMS implementation, which requires the installation of Message-Oriented Middleware (MOM) but works in most environments.
Setting up and Running Pisces Tests
Configuring and Running Pisces Agents
As I mentioned before, the Pisces test suite is composed of several JUnit tests running on remote agents. Each agent is a Java application that, according to instructions it receives from the main test runner, runs the JUnit test and reports its result and the default out printouts back to the main test runner.
The easiest way to run an agent application is to configure and run the relevant executable script in the scripts folder provided in the Pisces build. Alternatively, you can also build your own script based on those already provided. The script allows users to configure general parameters for the agent, such as a unique identifier, and for the communication layer, a multicast IP and port.
For example, a script for running an agent with a multicast communication layer on Linux OS might look like this:
#!/bin/sh # the folder were the agent can find junit.jar export JUNIT_HOME=/opt/junit3.8.1 # the folders were the agent can find # the junit tests export JUNIT_TEST_CLASSPATH=../examples/ # the multicast port that the communication # layer uses export PISCES_MCP=6767 # the multicast IP that the communication # layer uses export PISCES_MCIP=18.104.22.168 # the unique name of the agent export AGENT_NAME=remote1 java -classpath "$JUNIT_HOME/junit.jar:../pisces.jar:$JUNIT_TEST_CLASSPATH" \ org.pisces.RemoteTestRunnerAgent \ -name $AGENT_NAME -com multicast \ -mcp $PISCES_MCP -mcip $PISCES_MCIP
ConnectionFactoryof your JMS provider.
Configuring and Running Pisces-Enabled Test Suites
After configuring and running all of the relevant agents, we still need to configure and run our Pisces-enabled test suite.
First, we have to add the communication layer configuration to the beginning of our
TestSuite, as shown below:
// create the multicast communication layer MulticastRemoteTestCommunicationLayer com = new MulticastRemoteTestCommunicationLayer( RemoteTestRunner.name ,"22.214.171.124",6767); // set the communication layer RemoteTestRunner.setCom(com);