XLT – FAQ

Environment

“Strange class not found” messages or similar messages come up

Your JDK might contain special jars from your project which conflict with the XLT jars. Please uncomment the line with java.endorsed.dirs in <XLT>/bin/agent.sh. This will prevent the agents from looking into the endorsed directory and using the libraries from there instead of using the XLT library set.

If you run your tests on Windows, you might have to edit agent.cmd. If you run your tests in a mixed environment, running the agents on Linux and the mastercontroller on Windows, the agent operating system defines what script to change.

“Too many open files” exception

Several limits can be in place on Linux machines to prevent programs from consuming too many resources at a time. To enable XLT to use more resources during a load test, especially when testing really short transactions or with a lot of users, set:

  1. Unrestrict ulimits
  2. Edit /etc/security/limits.conf and set
    1. soft nofile 128000
    2. hard nofile 128000

See also: Too many open files appears sometimes

Exceptions are not logged in Eclipse

Not all exception during test execution in Eclipse will turn up on the console. You have to watch the JUnit execution window, because all test failures and exceptions are shown there.

“Error: no 'server' JVM at...” when trying to create a report

When you try to create an XLT test report on Windows you might get an error like:


    Error: no 'server' JVM at 'C:\Programme\Java\jre6\bin\server\jvm.dll'.

The reason might be, that there is a JRE installed besides the JDK. When calling “java.exe”, the JRE is found instead of the JDK, so that the wrong java.exe is called. You can check this, if you have a “which” command installed on Windows:


    C:\xlt\bin>which java
    java -> C:\WINDOWS\system32\JAVA.EXE

Just rename or remove this java.exe file, so that it is not found any more. Also make sure that the SUN JDK “bin” directory is in your PATH. Now the right java.exe should be found and the reports can be created:


    C:\xlt\bin>which java
    java -> C:\Programme\Java\jdk1.6.0_13\bin\JAVA.EXE

License

Basic license is not sufficient but fewer than 5 users are configured

Check the file <install-dir>/config/mastercontroller.properties and its property com.xceptance.xlt.mastercontroller.agentfiles. Make sure that the correct path to the project is specified. If not, the default project will be picked up and this is the samples project.

More users are started than configured

Check the file <install-dir>/config/mastercontroller.properties and its property com.xceptance.xlt.mastercontroller.agentfiles. Make sure that the correct path to the project is specified. If not, the default project will be picked up and this is the samples project.

Runtime

My test cannot find its properties

Make sure that your base test class extends com.xceptance.xlt.api.tests.AbstractTestcase. This abstract class contains all utility methods to provide you with properties and logging.

Demo Application

When I start the demo application, a “java.net.BindException: Address already in use” is thrown

When you get an exception similar to the following, the demo application default port (8080) is already in use by an other process:


    ...
    2009-09-02 14:39:14.609::WARN:  failed SocketConnector@0.0.0.0:8080
    java.net.BindException: Address already in use: JVM_Bind
            at java.net.PlainSocketImpl.socketBind(Native Method)
            at java.net.PlainSocketImpl.bind(Unknown Source)
            at java.net.ServerSocket.bind(Unknown Source)
    ...

You need to configure a different HTTP port number for the demo application or for your other application.

How to change the HTTP port of the demo application

You need to carry out the following steps.

1) Change the HTTP listening port of the demo application from “8080”, for example, to “9090”.


    <xlt>/samples/app-server/config/jetty.xml:

    ...
          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
            <Set name="port"><SystemProperty name="jetty.port" default="9090"/></Set>
    ...
          <New class="org.mortbay.jetty.bio.SocketConnector">
            <Set name="port">9090</Set>
    ...

2) Change the configuration of the XLT example test suite.


    <xlt>/samples/testsuite-pebble/config/project.properties:

    ...
    blog-url = http://localhost:9090/pebble/
    ...

3) Start and reindex the demo application to remove old port numbers from URLs.

Start the demo application:


    cd <XLT>/samples/app-server/bin
    ./[start.sh|start.cmd]

Request the demo application home page:


    http://localhost:9090/pebble/

Log on:

Reindex:

After rebuilding the indexes you land on the home page. You can check the log entries that are written to the console output and to the file “pebble.log”.