Why Selenium and NeoLoad?

Selenium is a favorite tool for implementing functional tests using real browsers for testing. It is so widely used that it has become practically a "must have" requirement for functional testing. Load testing for applications simulates user loads on applications and allows you to analyze both the user response times and your infrastructure's statistics (database, Web server, network components, etc.) to understand any performance bottlenecks better.

NeoLoad has an automation feature allows you to create a user path from an existing Selenium script written in Java. By instrumenting the code wherever the browser driver is instantiated, NeoLoad can group several actions into a single business transaction. You can then execute this script and pass an additional argument to call the NeoLoad Design API so that NeoLoad can start recording and capture the traffic between the browser and the server.

Selenium Proxy Driver (Java) for Automated Script Maintenance and End User Experience

The driver allows you to use a Selenium script to create or update NeoLoad User Paths and measure the end user experience on one or a few browsers or mobile devices and to send these measurements to NeoLoad using the Data Exchange API. The NeoLoad Selenium driver is available for both the Java and C# languages and is compatible with all Selenium-supported browsers, as well as a Perfecto driver.

In Neotys load testing platform, you can view user paths that were previously recorded by simply executing the Selenium script. After recording the script, NeoLoad can automatically apply the appropriate framework rules to handle dynamic parameters such as a UUID, then create a variable that represents some requests to make the user path more dynamic.

In today's app economy, applications are continually being updated for all sorts of reasons – for example, adding new regulatory compliance features or layering on new technology support. For example, think of adding EMV payment card or contactless NFC support to a retail banking app. Typically, this would mean changes to the load test design to reflect those updates in the application. But with NeoLoad, if the Selenium script is updated the new version of the script can be simply re-recorded since the user path is already defined and already exists in the project. NeoLoad will then update the original user path keeping variables extractors, think times, SLA validations, and any logical actions such as loops, conditions, or JavaScript. Thus, all the design work previously done is preserved, saving a ton of time on maintenance. The user path is automatically updated without any user interaction.

The way that NeoLoad does this is by calculating matches between old and new recording elements; all pre-existing properties configured will be retained in the new recording. New elements added in the initial recording are marked to highlight the changes and are automatically added. You can also customize the matching threshold. The higher the threshold is set, the more matches will be found, but at a higher risk that the element will be seen as a match with an old element, while in fact, they are new. The match percentage generated by NeoLoad gives testers insight into the discrepancy between the elements of the two user paths (old vs. new).

You can use NeoLoad to check the recorded content of your User Path to ensure that it complies with the application content. The Check User Path capability of NeoLoad helps you identify the number of changes between the recorded scenario and the checked one, and to pinpoint every change in the application with the Compare function, for example, changes in paths, in URL arguments, in AJAX calls, and so on.

The Update Recorded Content function makes it possible to merge the changes in the User Path and synchronize it with the latest version of the application. It is particularly useful for test script maintenance.

Test Automation

Some level of testing automation is needed to have any reasonable degree of consistency between tests - especially if applications are growing more complex over time. Test automation removes some of the variability of testing that can creep in through the application development lifecycle as complexity rises.

Figuring out which tests to automate can be problematic. However, the test success rate will be higher when the test has specific functional

characteristics, such as being API-based rather than command-line based. APIs will typically reduce the complexity of enacting a particular scenario.

Summary

If you are looking to do browser automation, you need a flexible framework like Selenium. API calls to the Selenium WebDriver enact the collection of language-specific bindings that will drive a browser. It uses a 'native' method for the browser and operating system, thus avoiding the restrictions of a sandboxed JavaScript environment where Selenium originated in 2004. This approach means that control of Selenium can now be done in multiple coding languages.

NeoLoad at a Glance

NeoLoad is one of the most innovative application performance testing platforms. It is engineered to automate test design, maintenance, and analysis to meet the new requirements of Agile and DevOps load testing. NeoLoad integrates with your continuous delivery pipeline to support continuous performance testing from component testing, API Testing, Pre-Production testing and full system-wide load tests. NeoLoad offers several advanced performance testing features, including:

  • Assisted and automated test design enables test creation and test maintenance up to 10 times faster than legacy solutions
  • Integration with CI servers like Jenkins, Bamboo, and TeamCity for automated test runtime
  • Collaboration capabilities allow sharing test scripts and reports, in real -time during tests and after test completion, through an on-premise or SaaS web interface
  • Hybrid on-premise and cloud load generation from over 70 global localizations

NeoLoad's integration with Selenium speeds testing to lower test maintenance costs, allows reuse functional scripts to create performance scripts, gives insight across the entire delivery chain up to the end-user browser or device.

These advanced capabilities of NeoLoad (Selenium script recording, user path validation, and automatic user path update) allows testers to save time with every maintenance cycle in the Software Development Life Cycle and lowers the overall cost of testing.

 

YOU MIGHT LIKE: