Today, we’ll be reviewing WebLOAD – a powerful yet easy to use Load testing tool. This is a quick review to evaluate the most important features and ease of use.
WebLOAD is a load testing tool that’s been around for quite a few years. It’s currently at version 10.3, which is a good time to take a closer look at what it has to offer.
This review covers:
- Its key features – from basic recording through support of web technologies.
- Reporting capabilities.
- Advanced features, such as integration with other tools and software processes.
What You Will Learn:
- Basic tool info
- Building a load test
- Enhancing the script via IDE configuration
- Automatic Correlation
- Selenium Integration
- Mobile load testing
- Enterprise apps & protocols
- Executing Tests and Generating Load
- Analysis and reporting
- Web Dashboard
- APM and Jenkins Integration
Basic tool info
WebLOAD is provided by RadView, a company which has been around for over 20 years and positions itself as an alternative to LoadRunner.
The name WebLOAD is somewhat misleading. While it provides extensive features for load testing web systems, it can also be used to test different enterprise systems (Oracle, SAP and others).
You can download a fully functional WebLOAD Free Edition with 50 virtual users here>> Download here.
Some Important features:
#1) Simple test creation: Create and view your load script quickly with record and playback options.
#3) Automatic correlation of dynamic values.
#4) Support of Selenium and Perfecto Mobile for measuring real-user experience.
#5) Load generation on premises and on the cloud using built-in AWS integration.
#6) Integration with APM tools for identifying the root cause of bottlenecks.
#7) Jenkins plugin for incorporating load testing into continuous delivery processes.
#8) Powerful analysis tools and customizable reports.
#9) Web dashboard for viewing test results in real time.
Building a load test
Installing WebLOAD took only 5 minutes, after which I was able to quickly record a simple test in the IDE, run it in the console with a few virtual clients and then view the results using its Analytics.
WebLOAD uses a proxy-based recorder so there was no need for any configuration. It recorded all my web activity – both HTTP and HTTPS. Notice that the recorder skips the web page resources (such as css, js, images, etc) since WebLOAD identifies these during the playback and brings them automatically. So, in case the page was changed, it saves you the pain of manually editing the script or having to re-record it to include the changed resources.
While web applications are the most common targets for load testing, I was also looking for TCP recorder, but could not find any.
(Note: Click on any image for enlarged view)
I used the script to login to the tomcat server (via standard Http get requests), then checked if Jenkins is installed (via the DOM). If it is installed, the script loops over the result and check if it is started. If it is not started it uses a Java component to send an SMS.
Notice that when creating a standard Java Object you should use the full packages path Prior to the class name – for example:
var myString = java.lang.String().
When you create your own java object, you should add “Packages.” before the full packages path to your class – for example:
var myVar = Packages.package1.package2.MyClass()
For WebLOAD to recognize your jar file, just put it in the C:\ProgramData\RadView\WebLOAD\extensions\java directory, and WebLOAD will automatically add the jar to the classpath. You do not need to update any classpath yourself.
Enhancing the script via IDE configuration
The IDE includes several other features for enhancing and adding logic to your script.
HTTP and client configuration: When switching to fine-tune and enhance my test script I found rich http configuration options for browsers, caching, cookies, connection speed, etc. I wondered why I need to configure these parameters twice: in the IDE and for the console before executing. It seems that during execution I can give different parameters to different Virtual users.
Parameterization and validation: WebLOAD offers enhanced parameterization feature with many algorithms to consume the parameters – for example, global, unique, random, sequential, as well as response validation (simply right-click an element and select ‘Response Validation’ to enter a validation point without scripting).
Building blocks: The part I probably liked the most was the ability to drag and drop building blocks such as an ftp call or an open/close transaction directly into the script, where a window opens with parameters to be filled in.
Correlation is an important phase for enabling a recorded script to be executed dynamically with many virtual clients. WebLOAD correlation is excellent, automatically prompting the relevant dynamic values. Once it was configured, I could continue to record and execute without the need to correlate again. Take into account that regardless of the tool you use, an automatic correlation will never be 100% accurate and will always require your intervention and editing.
Measuring the real user experience during load testing is an important additional feature to the protocols stress testing. By activating a real browser or a mobile device you can measure its behavior during the load testing and examine the real user experience while your system is under load.
WebLOAD does a pretty good job with its Selenium integration using a plug-in. You record a script in Selenium and then export it into WebLOAD.
During the execution phase, WebLOAD measures performance statistics that are collected by the browser. This helps you see side by side, for example the load size, the Hits per Second of the test and the real user experience on the same graph. I could also drill down into deeper browser statistics such as rendering time, server processing time, etc.
Mobile load testing
WebLOAD has a neat integration with PerfectoMobile, where it activates a real mobile device from PerfectoMobile’s cloud. A wizard helps you select the specific device and location that will be used during the test. During the load test execution, WebLOAD activates the mobile machine and then displays performance information directly from the device. The information included the mobile activity I did, and the machines resources information such as CPU, memory, and even battery usage.
Enterprise apps & protocols
WebLOAD seems to provide good support for a wide range of web-related protocols like HTTP/S, HTML5, WebServices, Rest API, AJAX, push technologies, as well as FTP, SMTP, TCP, DBs and others. For enterprise applications, there is built-in support for SAP, Oracle apps, Ellucian and a few more. And as mentioned before, you can also work with Java objects for testing any specific usage, such as a homegrown application.
Executing Tests and Generating Load
WebLOAD provides several interesting test execution features. First, you can generate load from both on-premises machines and from the cloud. You can use WebLOAD’s integration with Amazon EC2 or you can handle it yourself. WebLOAD starts and stops the machines for you using your Amazon’s credentials.
An interesting feature is ‘Goal Oriented Testing’. You can define your goal as, for example, to be a 2-second maximum response time. Instead of you having to gradually increase the load, WebLOAD will automatically increase the number of virtual users, till your 2-second response time goal is met, so you can learn when your system reach the response time limit you have set.
In load testing, your goal is not only to detect bottlenecks but also to identify their root cause. Typically, the problems you’ll detect will be related to the server side – be it a database issue, server CPU utilization, memory size or other.
To this effect, WebLOAD provides out of the box a Performance Measurement Manager that lets you grab statistics from web servers, application servers, DB servers, SNMP, etc.
Analysis and reporting
I liked the Analytics report templates, which you can use right away. The Analytics includes a rules engine that automatically marks the problematic area in a report so you know where you need to drill down.
In addition to using the rich number of built-in reports and graphs, I could also create my own reports starting from scratch.
Another feature is session comparison. This lets you overlay and compare several scenario runs side by side so that you can clearly compare system behavior under different conditions.
The Session Comparison report lets you view transaction response times of two different runs side by side
The Web Dashboard is a web server that provides web access to the tests results. Mostly, it lets you see tests results via a Web browser while tests are running. The Web Dashboard does not try to compete with HP Performance Center, but rather provides an important functionality at no extra charge.
The Web Dashboard is very flexible to customize your own view, and your own charts, add measurements etc. However, it took me some time to discover how to customize it exactly. A better job could be done with documentation/help. Team members can define their own view and views can be shared by a simple share link option. So, you can easily find an issue and send the specific view to your DBA, or to your boss so they easily see what you see.
Comparing tests was also easy. I just chose 2 tests and they both were presented on the same set of graphs. It took me some time to understand the Relative and absolute time on the upper options. If you want to see the same tests and easily compare them, use the relative time. Otherwise, the absolute time present them using the real time they were executed.
APM and Jenkins Integration
I was unable to check these more advanced features, but WebLOAD has built-in integrations with Application Performance Management (APM) tools such as Dynatrace, AppDynamics and NewRelic. According to the documentation, you can view a problem in your WebLOAD test results, and then instantly switch to the APM tool to drill down and find the root cause in the server-side events.
Another interesting feature is the Jenkins plug-in. This lets you add ‘WebLOAD’ steps to Jenkins so that you can run your load tests automatically from Jenkins workflow and then act upon the results of the tests.
WebLOAD tool (get it here) is definitely worth looking at – particularly if you need the power of scripting to handle more challenging load testing environments. It offers a breadth and depth of features and on the whole should be closely examined if looking for an alternative to LoadRunner.