Java Load Testing
Load Testing Java Applications
Load test any Java system – whether it’s a fully client/server Java system, running only a Java client, or only a Java server.
On server side, WebLOAD supports:
- 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 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 further extend the built-in functionality to load test home grown applications and implement specific functionality needed. 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)
}
}