InfoQ

News

WebLOAD: Commercial Load Testing Tool Recently Open Sourced

Posted by Floyd Marinescu on Jun 21, 2007 12:03 PM

Community
.NET,
Ruby,
Java
Topics
Debugging ,
Performance & Scalability
Tags
WebLoad ,
RadView
WebLOAD is a load testing tool from Radview software that tests for performance and scalability but also for verifiability (validating the correctness of return results). Test scripts are written in Javascript (with COM/Java object integration), and the tool supports multiple protocols for testing all tiers of an app such as web (REST/HTTP with Ajax support), SOAP/XML, and other protocols callable from within scripts such as FTP, SMTP, etc.   Radview claims over 1600 customers and 12 years of development experience producing WebLOAD, who released v8 of it's professional version in Feb.  This past April Radview released an open source community edition of WebLOAD under GPL, available at webload.org.

Chris McMahon commented that  "Open source load test tools have been kinda sorta OK for some time, but performance testing is the only case where commercial alternatives are pretty much universally acknowledged to be superior to open source tools. Building good performance test tools is hard. What RadView has done has instantly changed the whole scene."

The professional edition is built on the community edition, the most notable difference between the two being that load generation on the open source version is limited to what one server can generate (but without any concurrency limits). The professional version also supports more reporting and protocol options.

InfoQ spoke to Radview's Rami Goraly to find out more.  Describing how WebLOAD is typically used, Rami explained:
WebLOAD is usually used as a standalone tool by QA teams, in the validation/verification phase of the development life-cycle, to test the System under Test (SUT) in the staging/testing environment before going into production.

In some cases, WebLOAD is used also in the production environment, to perform application monitoring, as it can provide excellent statistics about the system’s health and even send email notifications the moment a problem occurs.

Less common is to use WebLOAD earlier in the development phase – but we’ve seen it done. Generally speaking, we – as well as other testing experts – believe performance testing should start as early as possible in the development life cycle. For example, WebLOAD could be used to write unit tests for Web Services, Java and COM objects and other interfaces of the SUT. Using its command line interface, WebLOAD can execute these tests as part of an automated build process.
WebLOAD also has a command line interface that allows executing in batch mode (not from its UI).  Rami explained that "a test script can be prepared in advance and then run using this command line interface from any ALM (automatic lifecycle management) or continuous integration tool, in a very similar manner to JUnit."

Rami positioning WebLOAD as being superior to the other two most commonly used open source load generation tools:
JMeter
  • JMeter only provides visual editing vs. Java Script editing that is available with WebLOAD, which provides much more flexibility in creating test script
  • JMeter is JAVA only and thus doesn’t support execution of COM objects from the test script
  • JMeter supports less server monitoring protocols than WebLOAD does.
  • JMeter doesn’t support recording of HTTPS web sites
  • WebLOAD’s analysis and reporting capabilities are superior to those of JMeter
OpenSTA
  • OpenSTA is not cross platform – it’s load engine can run only on windows
  • Functionality wise, the tools match, but OpenSTA is much harder to learn and use – its development environment is not intuitive and its scripting language is not standard and thus harder to learn
  • No new version of OpenSTA was released in the last 2 years. This project is practically dead.
An interesting feature of the professional edition is capacity planning testing features such as  "test until 80% utilization i reached", Rami explained how it worked:
WebLOAD goal-oriented testing, AKA Cruise Control is based on patented technology, developed by RadView. Basically, you need to define a set of goals to WebLOAD (these goals can be combined using logical and/or conditions). These goals are constantly checked and when they are reached, the user gets a notification. The user can decide beforehand whether to stop the test when the goals are reached or should it continue.
RadView has received VC funding, it's most recent round raising $3.5 million from Israeli institutional investors. Rami said "the funds will be used to enhance WebLOAD Open Source, expand the webload.org community and bring new features to market such as multimedia and Oracle Forms support."   In the future they also plan to replace the existing WebLOAD UI modules with Eclipse based modules, making the UI's also available as Eclipse plug-ins.
Limited & Open Source? by Geoffrey Wiseman Posted Jun 22, 2007 9:45 AM
Re: Limited & Open Source? by Bernie Velivis Posted Aug 28, 2007 7:36 AM
  1. Back to top

    Limited & Open Source?

    Jun 22, 2007 9:45 AM by Geoffrey Wiseman

    Out of curiosity, what, if anything prevents someone from adding multi-server support to the community edition of WebLOAD?

  2. Back to top

    Re: Limited & Open Source?

    Aug 28, 2007 7:36 AM by Bernie Velivis

    The documentation and marketing information on Webload "open source" is very misleading. According to Radview's user forum, the WebLOAD Open Source engine works with a proprietary unified script authoring environment for recording, editing and debugging. Part of the tool is offered free under a proprietary license and no source code is available. To answer Geoffrey's question, the thing that stops the user community from adding functionality appears to be; 1) Unlike other open source projects, Radview is not motivated to have a wide base of developers (outside their control) working to improve Webload open source. They offer a commercial version, and the fact that Webload Open Source could be modified to compete with it may be a contributing factor 2) The source code is changing so fast (bug fixes) that a fork of the code base at this point would not be practical. References: http://www.webload.org/community-resources/index.php , topic "Source code for proxinator"

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.