Installation Instructions

This section describes how to install PushToTest TestMaker, how to get started quickly, how PushToTest TestMaker enables black-box and grey-box testing, and how to configure TestMaker memory settings.

Installing PushToTest TestMaker

The PushToTest Company distributes a pre-built and ready-to-run binary of TestMaker under a commercial license found in license.txt. The commercial license is free and authorizes you to run up to 200 concurrent virtual users and 10 concurrently running service monitors. Additional virtual users and monitors are available for purchase from PushToTest. Click here for details. PushToTest TestMaker source code is free and distributed under a GPL v2 license.

The PushToTest TestMaker installer requires the Java 1.6 or higher runtime environment. Sun Microsystems makes the Java runtime environment available at http://www.java.com.

Please run the following installers. Normally you accomplish this by double-clicking or running the setup script that comes with one of the following downloads:

The installers prompt you for a directory where the TestMaker files should be installed. The TestMaker documentation refers to this directory as testmaker_home.

The testmaker_home directory contains these files:

PushToTest TestMaker comes with everything needed to build and run tests. PushToTest TestMaker requires a Java 1.6 or higher compliant virtual machine already installed.

To run PushToTest TestMaker:

From time-to-time we update PushToTest TestMaker to solve bugs and introduce new features. The PushToTest Web site home page shows the most recent version number. Downloads are available there too.

Answers to common installation problems are found on the Frequently Asked Questions page.

Windows Vista

Windows Vista users need to set the option to "Run As Administrator" when operating the TestMaker installers. See instructions in Vista for User Account Control for details.

Windows NT and 2000

The TestMaker.bat start-up script is incompatible with Windows NT and 2000 because of a problem in the Windows command-line program (cmd.exe.) 

When you run TestMaker_home/TestMaker.bat from the desktop you will see a command-line window flash and go away on the screen. Open a command window (Start - Run - cmd.exe) to see the error message. On Windows NT and 2000 you will see the error message was “The input line is too long”. Windows NT and 2000 have a maximum batch file line length of 2048 characters. 

The workaround solution is to use the Windows XP command-line program in Windows NT or 2000. Windows XP has a maximum batch file length of 8192. Copy the cmd.exe file from WinXP to c:\winnt\system32\ with the name cmd_XP.exe. Open a command window using cmd_XP.exe file (Start - Run - cmd_XP.exe) and run TestMaker.bat.

For your convenience (and until Microsoft learns about this,) click here to download the WinXP cmd.exe file from the PushToTest download site.

Thanks to Mike Collins for this simple workaround.


TestNetwork, TestNode, Monitor Installation

The PushToTest runtime is a distributed environment to operate tests. PushToTest TestMaker is built on the PushToTest TestNetwork foundation to enable tests to run on one or more TestNodes, the distributed TestMaker environment.

The PushToTest runtime provides a distributed test environment using TestNodes. A TestNode is the PushToTest runtime environment implemented in Java meaning it can run anywhere Java runs. The PushToTest console communicates with the TestNodes over SOAP protocols using port 80 meaning you typically don't have to make any changes to your firewall settings to distribute a set of TestNodes.

The TestNode environment works equally well for software developers, QA efforts, and IT operations. For instance, TestMaker users  install the TestNodes on a set of remote machines to see from a variety of different vantage points how well their application is serving their users. TestMaker users also install TestNodes on a rack of servers within a QA lab to generate very high levels of concurrent use of an application to do high level of scalability and performance testing. Lastly, TestMaker users install TestNodes on a series of different networks to identify whether one network service provider is providing you with better service than the others.

The PushToTest runtime also includes a monitor capability. The monitors watch for CPU, network, and memory utilization and are extensible to provide you with metrics about other facets of your application. TestMaker users install the monitor on Windows XP, Linux, and Mac OS X systems. The monitor technology is a base for PushToTest to provide extended functions, including SNMP agentless monitoring and interfacing with JMX-enabled management interfaces.

The PushToTest runtime offers a SOAP-based Web Service request using the PushToTest As A Service (PAAS) protocol. PushToTest executes the test and returns a Governance Statistics Results Set (GSRS) response document. Use PAAS and GSRS to integrate PushToTest test and monitor data with analysis tools. For instance, PushToTest integrates with the Software AG X-Registry to provide service governance through test automation and integrates with DBA InfoPower to provide insight and remediation of database bottlenecks.


Configuration Options

PushToTest TestMaker, TestNode, and Resource Monitor software is built in Java. Java features its own memory manager, classpath loader, and thread management. The PushToTest software comes with program launcher shell scripts. Use these scripts to set options for memory settings, additional software packages, and debug options.

Changing TestMaker Memory Settings

To change memory settings for TestMaker open the TestMaker_home/TestMaker.bat for Windows and TestMaker_home/TestMaker.sh for Unix, Linux, and Mac OS X. See the detailed instructions in these command shell scripts to change the memory settings for TestMaker.

Changing TestNode Memory Settings

To set the memory for an installed TestNode, change the contents of TestMaker_home/TestNetwork/TestNode/startup.bat for Windows and TestMaker_home/TestNetwork/TestNode/startup.sh for Unix, Linux, and Mac OS X. In these scripts you will see a command line as follows:

@"%JAVA_HOME%/bin/java" -Xmx128M -DSTOP.PORT=8079 -DSTOP.KEY=secret -jar start.jar @echo "TestNode? Started"


Adjust the memory settings using the -Xmx parameter.

 

Adding SSL Certificates

TestMaker supports HTTPS and Secure Socket Layer (SSL) protocols. These protocols use the Java Cryptography Architecture to work with SSL certificates. The TestMaker protocol handler will throw an SSLHandshakeException when connecting to a server over SSL protocols when the server-side SSL certificate is unknown:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Follow these steps to register the SSL certificate:
  1. Download the server-side SSL certificate to your local machine. Many browsers let you save the certificate. For instance, clicking the SSL icon in Microsoft Internet Explorer will display the certificate. In Mac OS X Safari, click the SSL (lock) icon and drag the certificate icon to a directory.

  2. With the Java Development Kit (JDK) installed, use the Java Keytool to import the SSL certificate into the Keystore. You can use the following command from the command shell or terminal window:

    keytool -keystore "TestMaker_home/pushtotest.keystore" -import -alias mycertificate -file "mydirectory/sslcertificate.cer"

  3. Tell TestMaker to use your Keystore by modifying the TestMaker_home/TestMaker.sh (for Unix, Linux, and Mac OS X users) and TestMaker_home/TestMaker.bat (for Windows users.) Add the following to the last line of the start-up script:

    java $maxqarg $lookarg $python $testnetwork -Djavax.net.ssl.trustStore=TestMaker_home/pushtotest.keystore -Dfrank=cohen -classpath $TMCP com.pushtotest.testmaker.Main "$@"

    Notice the -Djavax.net.ssl.trustStore added to the start-up script.

  4. Tell the TestNode on your local TestMaker instance to use your Keystore. Modify the TestMaker_home/TestNetwork/TestNode/startup.sh (for Unix, Linux, and Mac OS X users) and TestMaker_home/TestNetwork/TestNode/startup.bat (for Windows users) as follows:

    $JAVA_HOME/bin/java -DSTOP.PORT=8079 -DSTOP.KEY=secret -Djavax.net.ssl.trustStore=TestMaker_home/pushtotest.keystore -jar start.jar

  5. Tell your installed TestNodes to use your Keystore. Modify the TestNode_home/startup.sh (for Unix, Linux, and Mac OS X users) and TestNode_home/startup.bat (for Windows users) as follows:

    $JAVA_HOME/bin/java -DSTOP.PORT=8079 -DSTOP.KEY=secret -Djavax.net.ssl.trustStore=TestMaker_home/pushtotest.keystore -jar start.jar


Integration Options

We designed PushToTest to integrate into everyday software development environments.

Run From The Command Line

Operate a PushToTest TestScenario from the command line using the TestMaker_home/TestMaker.bat (for Windows, and TestMaker.sh for Linux, Unix, and Mac OS X) start-up script.

TestMaker_home/TestMaker.bat -t c:\mytests\myTestScenario.xml

The above example runs myTestScenario.xml from the command line. PushToTest sends operational messages to the command line shell as it operates the TestScenario. Results and standard output is also sent to the Results directory for this TestScenario.

Please note: PushToTest normally starts a local TestNode and a local PTTMonitor (to observe CPU, network, and memory utilitization) when you start the PushToTest application. When running TestMaker from the command-line you must start the TestNode, and optionally the PTTMonitor, from the command-line too.

TestMaker_home/TestNetwork/TestNode/startup.bat

(The above is for Windows, use .sh for Unix/Linux/Mac OS X)

Start the local Resource Monitor - PTTMonitor using:

TestMaker_home/PTTMonitor/startMonitor.cmd

Ant Integration

Operate PushToTest from within Ant build scripts. The following is an Ant example for Windows environments:

<target name="pushtotest-test">

    <exec dir="C:\\Program Files\\PushToTest_TestMaker\\TestMaker.bat" executable="cmd.exe">
        <arg line="
-t c:\mytests\myTestScenario.xml"/>
    </exec>
   
</target>


PushToTest requires many supporting class libraries. See the TestMaker_home/TestMaker.bat (or TestMaker.sh for Linux, Unix, Mac OS X) for a list of required libraries.

jUnit Integration

It is fairly easy to invoke PushToTest from your own JUnit-tests. Consider the following example:

public void testRunner() throws Exception
{
    com.pushtotest.testmaker.Main pushtotest =
         new 
com.pushtotest.testmaker.Main("-t","c:\mytests\myTestScenario.xml");
}

PushToTest requires many supporting class libraries. See the TestMaker_home/TestMaker.bat (or TestMaker.sh for Linux, Unix, Mac OS X) for a list of required libraries.

Logging To RDBMS

PushToTest optionally logs transaction result data to a Relational Database Management System (RDBMS.) Click here for details.


Maven Integration

PushToTest is compatible with Maven by running PushToTest as an Ant task. We are working on a Maven plug-in that will appear in PushToTest version 5.2. For latest details see:  http://bugs.pushtotest.com/ticket/207




Additional documentation, product downloads and updates are at www.PushToTest.com. While the PushToTest TestMaker software is distributed under an open-source license, the documentation remains (c) 2007 PushToTest. All rights reserved. PushToTest is a trademark of the PushToTest company.