Usage of the multi-browser-suite with load testing


#1

Hi there,

I want to use the multi-browser-suite project (https://github.com/Xceptance/multi-browser-suite) to try out the load testing features of your software. After configuring and starting the mastercontroller following logs are generated:

Exception in thread "TMyTest-0" java.lang.NoClassDefFoundError: xltutil/AbstractAnnotatedWebDriverScriptTestCase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.xceptance.xlt.agent.LoadTestRunner.run(LoadTestRunner.java:112) Caused by: java.lang.ClassNotFoundException: xltutil.AbstractAnnotatedWebDriverScriptTestCase at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 15 more Exception in thread "TMyTest-2" java.lang.NoClassDefFoundError: xltutil/AbstractAnnotatedWebDriverScriptTestCase [...]

Am I missing something here?

Kind Regards
Michael


#2

I solved it myself by downloading xlt-multi-browser-1.1.1.jar and putting it into the lib folder. Also realized that there is another project which integrates the xltutil classes (https://github.com/Xceptance/xlt-multi-browser).


#3

In contrast to XLT, which is already present at your load agent machines, any 3rd-party library (and xlt-multi-browser as well) must be made available locally in your test suite before uploading the test suite to the load agents. The recommended way is to run

mvn dependency:copy-dependencies

which would copy all needed libraries to <testsuite>/target/dependency where XLT will find them.

However, currently there is a small glitch in xlt-multi-browser. It does not mark its dependency xlt as provided, hence running the above command will copy also all XLT libraries into your test suite. This does not really hurt, but may slow down the upload of your test suite to the load agents.

So, your workaround is perfectly okay!


#4

Thanks for the reply!