Java Load Testing

Perform extensive Java load testing, whether you have a complete client/server Java system, only a Java client, or only a Java server.

Acting as a Java stress test tool, WebLOAD supports the following servers:

  • J2EE servers such  as Weblogic, Websphere, JBoss, Tomcat, JOnAS, GlassFish, etc.
  • Standard Java frameworks such as JSF, Spring , Struts, Stripes, Wicket, JBoss Seam, ZK Framework, etc.

Recording and correlation

WebLOAD automatically records all traffic between the client and the Java server, regardless on whether the server is a standard J2EE server, whether the client uses the standard web client technologies or an applet, or whether it’s a custom Java client application.

Built-in Java Correlation rules for the Java frameworks and servers lets WebLOAD automatically replace all recorded dynamic values to support multiple users running in parallel.

Analyzing Java server performance data

WebLOAD’s monitoring and analytics for J2EE servers let you identify and resolve bottlenecks rapidly. It monitors and extract performance data from Java servers out of the box, and in cases where a non-supported Java server is used, it can be monitored via the generic Java Management Extensions JMX connector.

Java serialization support

WebLOAD automatically decodes binary messages allowing you to view the serialized object as part of the HTTP Get/Post commands and easily modify values, define validation logic or implement custom serialization methods. The JavaScript code is readable in both directions so you can see the Java serialized object in a meaningful way.

Embedding Java code in test scripts

By embedding Java code within WebLOAD scripts you can extend the built-in functionality to load test home grown applications, implement specific functionality and overall extend your Java performance testing. You can:

  • Call any standard java class or owned private class
  • Pass and get parameters from your java code
  • Catch Java exceptions within JavaScript
  • Use any WebLOAD JavaScript method within the Java code, for example, to collect transaction, timers and counters for internal java activities.

Below is a simple example of interacting with the Java server from JavaScript via Java standard Socket class.

try {
  // Start WebLOAD Transaction
  BeginTransaction("Socket Activity")
  
  // Connect to a server through Java socket
  s = new java.net.Socket ("www.abc.abc",80)
  
  // Create Java I/O streams
  fromServer = new java.io.BufferedReader(new java.io.InputStreamReader(s.getInputStream()))
  toServer = new java.io.BufferedWriter(new java.io.OutputStreamWriter(s.getOutputStream()))
  
  // Write JavaScript string value to the Socket Output stream
  var msg = "Client and Round : " + ClientNum + "-" + RoundNum
  toServer.write (msg , 0 , msg.length)
  
  // Get answer from the server via the Socket Input stream
  answer = fromServer.readLine()
  InfoMessage("" + answer)
  
  // End WebLOAD Transaction
  EndTransaction("Socket Activity")
}
catch (e) {
  WarningMessage ("Error interacting with the socket : " + e)
}
finally {
  try {
    if (s != null) s.close();
  }
  catch(e) {
    WarningMessage ("Error disconnecting the socket : " + e)
  }
}