Archive

Archive for the ‘OATS’ Category

Load Testing: What Tool to Choose?

May 10th, 2012 13 comments
Share

Classifying and evaluating load testing tools is not easy as they include different sets of functionality often crossing borders of whatever criteria are used. In most cases, any classification is either an oversimplification (which in some cases still may be useful) or a marketing trick to highlight advantages of specific tools. There are many criteria allowing to differentiate load testing tools and it is probably better to evaluate tools on each criterion separately.

First, there are three main approaches to workload generation and every tool may be evaluated on which of them it supports and how exactly.

Protocol-level recording and the list of supported protocols. Does the tool support protocol-level recording and, if it does, what protocols it supports. With quick Internet growth and popularity of browser-based clients, most products support HTTP only or a few Web-related protocols. According to my knowledge, only HP LoadRunner and Microfocus SilkPerformer try to keep up with support of all popular protocols. So if you need recording of a special protocol, you probably end up into looking at these two tools (unless you find a special niche tool supporting your specific protocol). That somewhat explains the popularity of LoadRunner at large corporations where you probably have almost all possible protocols used. The level of support of specific protocols differs significantly too. Some HTTP-based protocols are extremely difficult to correlate if there is no built-in support, so you may look for that kind of specific support. For example, Oracle Application Testing Suite may have better support of Oracle technologies.

UI-level recording. The option was available for a long time, but it is much more viable now. For example, there was a possibility to use Mercury/HP WinRunner or QuickTest Professional (QTP) scripts in load tests, but you needed a separate machine for each virtual user (or at least a separate terminal session). That limited the level of load you may achieve drastically. Other known options were, for example, Citrix and RDP (Remote Desktop Protocol) protocols in LoadRunner – which always were the last resort when nothing else was working, but were notoriously tricky to playback. New UI-level tools for browsers, such as Selenium, extended possibilities of the UI-level approach allowing to run multiple browser per machine (so scalability is limited by resources available to run browsers). Moreover, we got UI-less browsers, such as HtmlUnit, which require significantly less resources than real browsers. There are multiple tools supporting this approach now – such as PushToTest directly harnessing Selenium and HtmlUnit for load testing or LoadRunner TruClient protocol and SOASTA CloudTest using more proprietary solutions to achieve low-overhead playback. Still questions of supported technologies, scalability, and timing accuracy remain largely undocumented, so the approach requires evaluation in every specific non-trivial case.

Programming. There are cases when you can’t (or can, but it is more difficult) use recording at all. In such cases using API calls from the script may be an option. Other variations of this approach are web services scripting and using of unit testing scripts for load testing. And, of course, you may need to add some logic to your recorded script. You program the script using whatever way you have and use the tool to execute scripts, coordinate their executions, report and analyze results. To do this, the tool should have ability to add code to (or invoke code from) your script. And, of course, if tool’s language is different from the language of your API, you would need to figure out a way to plumb them. Tools, using standard languages such as C (e.g. LoadRunner) or Java (e.g. Oracle Application Testing Suite) may have an advantage here. However you should know all details of the communication between client and server that is often very challenging.

Other important criteria are related to the environment:

Deployment Model. There were a lot of discussions about different deployment models: lab vs. cloud vs. service. There are some advantages and disadvantage of each model. Depending on your goals and systems to test you may prefer one deployment model over another. But I still believe that for comprehensive performance testing you really need both lab testing (with reproducible results for performance optimization) and realistic outside testing from around the globe (to check real-life issues that you can’t simulate in the lab). Doing both would be expensive and makes sense when you really care about performance and have a global system – but it not rare and if you are not there yet, you can get there eventually. If there are such chances, it would be better to have a tool which supports different deployment models.

If it is lab or cloud, an important sub-question would be what kind of software / hardware / cloud the tool requires. Many tools use low-level system functionality, so is may be unpleasant surprises when the platform of your choice or your corporate browser standard is not supported.

Scaling. When you have a few users to simulate, it usually is not a problem. The more users you need to simulate, the more important it becomes. The tools differ drastically on how many resources they need per simulated user and how well they may handle large volumes of information. It may differ significantly even for specific tool depending on protocol used and specifics of your script. As soon as you get to thousands of users, it may become a major problem. For a very large number of users some automation, like automatic creation of a specified number of load generators across several clouds in SOASTA CloudTest, may be very handy.

Two other important sets of functionality are monitoring of the environment and result analysis. While theoretically it is possible to do it using other tools, it significantly degrades productivity and may require building some plumbing infrastructure. So while these two areas may look optional, integrated and powerful monitoring and result analysis are very important. And the more complex system and tests, the more important they are.

Of course, non-technical criteria are important too:

Cost. There are commercial tools (and license costs differ drastically) and free tools. And there are some choices in between: for example SOASTA has the CouldTest Light edition free up to 100 users. There are many free tools (some, as JMeter, are mature enough and well-known) and many inexpensive tools, but most of them are very limited in functionality.

Skills. Considering a large number of tools and a relatively small number of people working in the area, there is a kind of labor market only for the most popular tools. Even for the second-tier tools there are few people around and few positions available. So if you don’t choose the market leaders, you can’t count that you find people with this tool experience. Of course, an experienced performance engineer will learn any tool – but it may take some time until productivity will get to the expected level.

Support. Recording and load generation has a lot of sophistication in the background and issues may happen in every area. Availability of good support may significantly improve productivity.

This is, of course, not a comprehensive list of criteria – rather a few starting points. Unfortunately, in most cases you can’t just rank tools on the better – worse scale. It may be that a simple tool will work quite well in your case. If your business is built around a single web site, it doesn’t use sophisticated technologies, and load is not extremely high – almost every tool will work for you. The further you are from this state, the more challenging it would be to pick up the right tool. And it even may be that you need several tools.

And while you may evaluate tools with above mentioned criteria, it is not guaranteed that a specific tool will work with your specific product (unless it uses a well-known and straightforward technology). That actually means that if you have a few system to test, you need to evaluate the tools you consider using your systems and see if the tools can handle them. If you have many, choosing a tool supporting multiple load generation options is probably a good idea (and, of course, check it with at least the most important systems).

Oracle Application Testing Suite 9.3

October 10th, 2011 No comments
Share

Oracle Application Testing Suite 9.3 was released some time ago. It is available for download (subject to OTN License Agreement). Some new features and updates in this release are described in the press release.

Oracle Application Testing Suite 9.20 was released

November 5th, 2010 2 comments
Share

Oracle Application Testing Suite 9.20 was released (former Empirix e-TEST Suite). It is available for download (subject to OTN License Agreement). New features and updates in this Release from Readme:

  • Oracle Database Testing Accelerator Option – Enables support for direct database testing using ATS. Users will be able to create synthetic automated test scripts for direct database/SQL testing in OpenScript and also use these scripts for load testing in Oracle Load Testing. Users can also import database transactions from Real Application Testing’s Database Replay capture to create test scripts or import from custom SQL Script.
  • Adobe Flex/AMF Load Testing Support – Enables support for automated load testing of Flex/Flash applications using AMF & HTTP protocols. AMF3/AMF0 is a binary protocol over HTTP used by Flex/Flash applications for server communication which ATS will now be able to support, in addition to HTTP, for load testing Flex applications.
  • Adobe Flex Functional Testing Support – Enables support for automated functional testing of Flex applications. Flex utilizes rich GUI components which ATS will now natively recognize for automation & validation of Flex application components. ATS is integrated with the Adobe Test Automation API’s which must be compiled with the Flex application in order to capture/replay Flex actions in ATS. ATS supports automated functional testing of Adobe Flex applications created with the Flex 3 SDK and utilizing Flex MX controls. Adobe Flex applications built using Flex 4 SDK and applications utilizing Flex Spark controls are not currently supported at this time.
  • Oracle Forms 11g Support – OpenScript now supports Oracle Forms 11g applications for both automated functional testing and load testing scripts. ATS supports testing of Web browser-deployed, custom Forms applications in addition to Oracle E-Business Suite Forms applications.
  • Oracle E-Business Suite 11i & R12 Test Starter Kits & Sample Scripts – New and updated test starter kits for EBS R12 (12.1.1, 12.1.2) and 11i (11.5.10.2). Provides sample functional test scripts and load test script for testing EBS applications.
  • Load Test Scripting Enhancements – New capture mode for Web load test script recording which results in more compact, intuitive load test scripts and require less manual session data correlation.
  • Databank Enhancements – New options for parameterizing script inputs including ability to select random record from a databank file and ability to select records from a database query through the OpenScript databanks user interface.
  • Oracle Load Testing Synchronization Points – Enables setting of Virtual User synchronization points within OpenScript load test scripts, to enable testers to synchronize Oracle Load Testing VUs at specific points in their script during a load test run.
  • Oracle Load Testing Reporting Enhancements – New, more interactive, flex-based load test graphs for viewing real-time and post-run load test results.
  • Oracle Load Testing Usage Auditing – New interface for Oracle Load Testing usage tracking and auditing.
  • Oracle Load Testing – Enterprise Manager Database Diagnostics Integration – Provides Oracle Load Testing users with access to database performance diagnostics during load tests for identifying database performance bottlenecks under load.
  • Oracle Test Manager Reporting Enhancements – New, more interactive, charts and graphs for viewing Oracle Test Manager reports. Support for including custom test run fields when generating custom reports.
  • Oracle Test Manager TMap Project Templates – New template for creating Oracle Test Manager projects based on CapGemini Sogeti’s TMap test methodology. Includes customized fields, reports and associated data.
  • I guess the following note from Readme is important for those who is using the product for a long time:

    The legacy Oracle Functional Testing, VB-based scripting platform and associated components (such as Job Scheduler) are no longer included with the ATS installer starting with version 9.2. Customers that still require this product should use ATS 9.1 or older versions supported under Oracle’s Lifetime Support Policy.

    New version of Oracle Application Testing Suite (former Emprix)

    April 29th, 2010 No comments
    Share

    New version of Oracle Application Testing Suite 9.10 (former Emprix – now part of Oracle Enterprise Manager) was released recently. It is available for download (subject to OTN License). A lot of additional materials available (including webinars, white papers, etc.).

    This version includes maintenance improvements to the existing features as well as new features outlined below (from readme):

    • Oracle Fusion/ADF Functional Testing Accelerator – Enables enhanced support for automated functional testing of Fusion/ADF applications. Extends ATS’s Web functional testing capabilities by adding native support for ADF GUI components for object identification, automation, and validation. Oracle ADF is a key technology in Fusion Applications and can be used to build custom applications.
    • Oracle Fusion/ADF Load Testing Accelerator – Enables enhanced support for automated load testing of Fusion/ADF applications. Extends ATS’s Web/HTTP load testing capabilities by adding a custom load testing correlation library and related scripting enhancements for Fusion/ADF load testing.
    • Script Assets Manager – Standardizes management of scripts and related assets like Data Bank files, Object Libraries, and Script Functions.
    • Enhanced Script Functions Support – Provides an easier way for users to create shared functions through the OpenScript user interface and call those functions from any test script to create more modular, reusable script components.
    • Oracle Real User Experience Insight (RUEI) Script Import – Allows users to generate Oracle Application Testing Suite load test scripts from the Oracle Real User Experience Insight product by first exporting real user session transaction data from RUEI and then importing it into OpenScript to generate a load test script.
    • Oracle E-Business Suite R12 Test Starter Kit / Sample Scripts – Provides a test starter kit with sample test scripts for Oracle EBS R12 applications based on the sample EBS “Vision” database.
    • OpenScript Tree View Debugger – Provides debugging capabilities from the OpenScript Tree View including the ability to set breakpoints, step through script nodes, step over, pause, and watch variables. Previously, script debugging was only available from OpenScript’s Java Code View.
    • Download Manager – Simplifies Oracle Application Testing Suite load test scripts by filtering out embedded HTTP URL requests for Web page resources (i.e. images, js, css, etc.) during script recording in OpenScript and then giving users the option of whether to automatically find and request those resources on playback in OpenScript and Oracle Load Testing.
    • Result Code Verification – Makes it easier to adjust the behavior of an OpenScript test script based on the outcome of script commands by providing a result code that can be queried after command executes.
    • Oracle Load Testing Reporting Enhancements – Provides drill-down capabilities that link OLT’s performance summary report to corresponding load test graphs for both real-time and post-run reporting.
    • Enterprise Manager J2EE Middleware Diagnostics Integration – Provides integration between Oracle Load Testing and Enterprise Manager that enables users to view J2EE middleware performance diagnostics during load tests for identifying bottlenecks under load.
    • Oracle Database ServerStats Profile – New Oracle Load Testing ServerStats monitoring profile for Oracle Database to capture key performance metrics during a load test.