Skip to content

Ranorex
Syndicate content
Updated: 1 hour 13 min ago

Ranorex-NeoLoad Webinar – Questions Answered

Thu, 11/17/2016 - 15:53

Our Ranorex-NeoLoad webinar was a great success and we were delighted to see how many of you are interested in the Ranorex-NeoLoad integration. In this webinar, we’ve showed you in detail why it makes sense to combine automated functional and load tests, how you can set up the Ranorex-NeoLoad integration, and what you can do with it. For those of you who’ve missed the webinar, we’ve recorded it and you can view it anytime here: Ranorex-NeoLoad webinar.

Thank you again for all the questions you’ve asked during this webinar. As there wasn’t enough time to answer all questions during the webinar, we’ve taken this opportunity to answer a few of them, that we believe are interesting to all of you, here:

Q1: Can I test my desktop app, which is connected to a server, with NeoLoad and Ranorex?

Yes, that’s possible. If the communication is based on the HTTP protocol, the NeoLoad recorder captures the traffic utilizing the HTTP transport layer. If the communication is not based on HTTP, you can use custom actions. Ranorex is then able to determine performance values of the desktop app and transmit these values back to NeoLoad.

Q2: I have already created Ranorex web tests. Can I transform functional test sequences from these tests into NeoLoad load tests?

Yes. Simply start a NeoLoad recording manually, and then start the Ranorex test. NeoLoad will record all steps that are being carried out by Ranorex, so that the Ranorex test sequence is available in NeoLoad. You can now put a load on your server with NeoLoad and see if your functional test sequence is still successful when under stress.

Q3: Where should I install Ranorex and NeoLoad? Can everything run on the same machine or should we use separate systems?

In theory, you can install the NeoLoad controller on the same machine as Ranorex is installed on, but that’s not recommended. Load generation can cause a high CPU usage and the controller needs a lot of memory. That’s why it makes sense to install both the NeoLoad controller as well as the load generator on a different machine than Ranorex is installed on. The modules, which are included in the Ranorex-NeoLoad  NuGet package, enable communication between Ranorex and Neoload regardless of where Ranorex and Neoload are installed. However, if NeoLoad triggers a Ranorex test, a NeoLoad load generator must be installed on the same machine as the Ranorex test runs on.

Q4: Are virtual users in NeoLoad carrying out the same actions as the Ranorex automated test?

This completely depends on your setup. The “test sequences” are not linked together in any way. You’re free to set up the same sequence or use a different one.

Q5: When should I start my Ranorex test with NeoLoad, and when does it make sense to start my NeoLoad test with Ranorex?

If you run a functional test session and want to make sure that individual functional test sequences still succeed when the system is under load, it makes sense to trigger and control the NeoLoad tests from Ranorex. The other way round, if you’re running load testing scenarios and want to know if key functional uses cases still work, it makes more sense to trigger the respective Ranorex tests from NeoLoad.

Q6: Is there a limit on virtual users, which Ranorex can add to a NeoLoad test?

The number of virtual users is not limited by Ranorex in any way. You can add as many users as your NeoLoad license provides.

Q7: Do we need a Ranorex Runtime License for each virtual user in NeoLoad?

No. You can add as many users as provided in your NeoLoad license with a single Ranorex Runtime License. The Ranorex license does not influence the NeoLoad license in any way and vice versa.

Q8: Is there a free version of Ranorex and NeoLoad so I can try the integration?

You can download a free Ranorex trial here: Free full-featured 30-day Ranorex trial.
A free version of NeoLoad can be downloaded using this link.

Q9: Is it possible to use Ranorex tests to create load instead of using NeoLoad?

You could also run multiple Ranorex tests in parallel on multiple virtual machines. However, Ranorex is only able to run a single test per machine, as it is a functional test automation tool that automates real mouse and keyboard events. That’s why it makes sense to use NeoLoad to create load.

Q10: What are the system requirements for Ranorex and NeoLoad to enable this integration?

You can find the system requirements for Ranorex here: Ranorex system requirements.
You can find the NeoLoad system requirements on this page: NeoLoad system requirements.

Q11: Can we trigger Ranorex and NeoLoad tests from build or CI systems like Jenkins, TeamCity, TFS, etc.?

Yes, that’s no problem at all. Ranorex creates standalone executable files, which carry out the test. These files have to get triggered by the CI system. You can find instructions on how to integrate Ranorex tests in your CI system in our blog “Integrate Automated Testing into Any Continuous Integration Process“. NeoLoad also offers command line execution of load tests. You simply have to start the ‘NeoLoadCmd.exe’ file, as described in detail on this page.

Further Resources:

Watch the Ranorex-NeoLoad Webinar

The post Ranorex-NeoLoad Webinar – Questions Answered appeared first on Ranorex Blog.

Categories: Companies

Ranorex User Voice – Make Your Ideas Count

Wed, 11/16/2016 - 15:31

A moment of sudden insight. An idea for a feature so amazing, it’d transform your testing task with Ranorex into a moment of enjoyable, reliable, automated testing bliss and save you a good few hours of work. As you’re not part of the Ranorex crew and simply won’t get to code this feature into our software yourself, your incredible idea will go to waste. At best, it’d make for a great morning coffee conversation with your colleague.

What if we told you that we found a place where ideas count, and counts turn into actual features on our product roadmap? At Ranorex, we refer to this magical place as Ranorex User Voice. Using this platform, you can be part of our journey to creating the best test automation software. After all, we share the same goal: Align Ranorex to your actual automated testing needs.

Ranorex User Voice – the right place for your ideas on Ranorex

We believe in providing a space where your ideas count. Let us know how we can make your test automation experience with Ranorex even better. Now, you can directly interact with our product management on the Ranorex User Voice platform by

  • submitting feature requests, and
  • voting to get ideas from other users prioritized. If you think an idea from another user is helpful to you, make sure to vote for it!
A few guidelines on how to use this platform:
  • Ranorex User Voice is not intended as a platform to report issues with Ranorex. If you find a bug or run into a problem with Ranorex, please use our Ranorex forum or contact our Support Team. We’ll be more than happy to help you.
  • Check if your idea isn’t already on our product roadmap, ready to be implemented soon.
  • Make sure your idea hasn’t already been suggested. Otherwise votes might be split between those two suggestions and they are both less likely to be implemented. Take this opportunity to vote for the other suggestion!
Do my ideas really matter?

They certainly do. We greatly appreciate your feedback. The more you contribute on this platform by submitting feature requests and voting for ideas, the more likely it is that your idea will make it on our product roadmap.

We’re looking forward to reading your feature requests soon!

Submit your first feature request Find out More about Ranorex User Voice

The post Ranorex User Voice – Make Your Ideas Count appeared first on Ranorex Blog.

Categories: Companies

Ranorex Automates Android 7 Nougat

Tue, 10/25/2016 - 16:00

Android Nougat is Google’s big refresh of its phone and tablet operating system – split-screen mode, quick reply to notifications, revamped settings and toggle menus all make your phone easier and more friendly to use. We are happy to announce that with the release Ranorex 6.1.1, we now support Android Nougat.

In addition to this update, some minor bugs have been fixed. Check out the release notes for more details about the changes in this release.

Download free trial Learn how to test your Android app

The post Ranorex Automates Android 7 Nougat appeared first on Ranorex Blog.

Categories: Companies

How to Combine Ranorex and NeoLoad Tests

Thu, 10/20/2016 - 15:43

Let's be honest: We rarely test the product functionality under load. But how can we be sure our end product works when our customers are using it? As we've described in our previous blog post "Combining Automated Functional and Load Testing", it often makes sense to combine functional and non-functional tests. A functional test, which works fine in idle conditions, might fail when the back-end server is under load. Just like simply stressing a back-end system may not reveal functional issues, which can only be found by an automated functional test. If we want to find those errors that only occur under load, we have to combine automated functional tests and automated load tests.

We're happy to announce that you can now combine Ranorex and NeoLoad tests!

In this blog, we want to show you how you can set up the Ranorex-NeoLoad integration and what you can do with it. But first, let's quickly cover the basics:

What is NeoLoad?

NeoLoad is an automated load and performance testing tool from Neotys.

NeoLoad offers a full-fledged REST API to either remote control the execution of a NeoLoad test or transmit timing values to NeoLoad. To enable integration with Ranorex, the REST API calls are wrapped with Ranorex functions and packaged into a NuGet package for easy deployment.

What do I need to enable the Ranorex-NeoLoad integration?

Now that you're all set, we want to show you in detail how you can:

  1. Set up the Ranorex-NeoLoad integration
  2. Use the load testing modules available with the integration
  3. Transmit navigation timing to a NeoLoad test
  4. Update meta-information in cross-browser tests
  5. Upgrade an existing Ranorex project with the Ranorex-NeoLoad NuGet package
Setting up the Ranorex - NeoLoad integration

First, we need to set up the integration:

  1. Add the NuGet package to the Ranorex project
  2. Extend the "app.config" file
Step 1: Add the NuGet package to the Ranorex project
  • Right-click on "References" in the Ranorex project view
  • Select "Manage Packages..."
  • Search for "Ranorex" and add the "Ranorex-NeoLoad integration" package

Manage Packages

 Add NeoLoad Integration Package

This will automatically add the necessary libraries to the Ranorex project. The following code modules will now appear in the module browser:

Added Modules in Module Browser

Step 2: Extending the "app.config" file

To ensure the Ranorex project is properly created, you need to extend the 'runtime' section in the 'app.config' file in the Ranorex project with the following information:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:bcl="urn:schemas-microsoft-com:bcl">
 <dependentAssembly bcl:name="System.Runtime">
 <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
 <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
 <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
 </dependentAssembly>
 <dependentAssembly>
 <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
 <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
 </dependentAssembly>
 </assemblyBinding>

Copy code to clipboard

Copy this code and enter it in the 'runtime' section in the 'app.config' file, right after the line <enforceFIPSPolicy enbaled="false" />:

App Config before

Your 'app.config' file should now look like this:

App Config after

You can now use the modules, which are included in the NuGet package, freely within the Ranorex test automation project.

Modules included in the Ranorex-NeoLoad NuGet package

The following modules, and their individual variables, are included in the Ranorex-NeoLoad NuGet package:

ConnectToRuntimeApi

This module establishes a connection to the NeoLoad runtime API. This API is used to remote control a running NeoLoad test. It must be initialized before using the following modules: Start/StopNeoLoadTest and Add/RemoveVirtualUsers.

Show the variables available for this module RuntimeApiUri: The Uniform Resource Identifier (URI) of the NeoLoad REST service.
ApiKey: Key stored in NeoLoad to avoid unauthorized access to the REST API. If no key is in use, this variable can be left blank.

Select Edit > Preference to access these variables in NeoLoad.

ConnectToRuntimeApi

ConnectToDataExchangeApi

This module establishes a connection to the NeoLoad data-exchange API. This API is used to transmit external data to a running NeoLoad test (it is not active if no test is running). This module must be initialized before the modules Start/StopNeoLoadTest and Add/RemoveVirtualUsers.

Show the variables available for this module The following three values provide meta information for a running test and can be used in the "filter" functionality within NeoLoad test results.
Location: The location, where the functional test is performed (e.g., Graz, London, Office XYZ, ...)
Hardware: The hardware used where the functional test is running (e.g., Intel i5-5200u). A string describing the utilized operating system is automatically appended to the string defined in "Hardware".
Software: The software, tested in the functional test. When testing a browser, it is recommended to hand over the browser name. When performing a cross-browser test, it is recommended to bind this variable to the column specifying the browsers.
DataExchangeApiUri: The URI of the NeoLoad REST service.
ApiKey: A key stored in NeoLoad to avoid unauthorized access to the REST API (if no key is in use, this variable can be left blank).

Select Edit > Preference to access the last two variables in NeoLoad.

ConnectToDataExchangeApi

StartNeoLoadTest

This module starts a NeoLoad test scenario. You need to define the scenario in NeoLoad before.

Show the variables available for this module Scenario: The scenario, as defined within the NeoLoad test, that should be started.
Timeout: The maximum amount of time (in hh:mm:ss) given to Ranorex to start a specific test (recommended value: 00:01:00).

Interval: The time interval (in hh:mm:ss) after which Ranorex retries to start a specific test (recommended value: 00:00:10).

Important: Please make sure to add a leading 0 before a single digit number when entering the timeout and interval values.

StopNeoLoadTest

This module stops the currently running NeoLoad test.

Show the variables available for this module Timeout: The maximum amount of time (in hh:mm:ss) given to Ranorex to start a specific test (recommended value: 00:01:00).
Interval: The time interval (in hh:mm:ss) after which Ranorex retries to start a specific test (recommended value: 00:00:10).

Important: Please make sure to add a leading 0 before a single digit number when entering the timeout and interval values.

AddVirtualUsers

This module adds virtual users to a population, defined in a NeoLoad test scenario. This module can only be used when a test is already running.

Show the variables available for this module Population: The population, as defined in the NeoLoad test scenario, virtual users will be added to.
Amount: The amount of virtual users that should be added to the given population.

RemoveVirtualUsers

This module removes virtual users from a population, which is defined in a NeoLoad test scenario. This module can only be used when a test is already running.

Show the variables available for this module Population: The population, as defined in the NeoLoad test, virtual users will be removed from.
Amount: The amount of virtual users specified that will be removed from the given population.

Transmit navigation timing data from any browser to NeoLoad

Opening a website is related to a certain latency. This latency depends on various factors, such as the network connection or the browser used. It can be measured with the "Navigation Timing" API, which is offered by all browsers. If you evaluate these timing values, especially when the website is under load, you can localize potential bottlenecks. Eliminating the identified bottlenecks will ultimately improve the user experience.

The NuGet package offers a mechanism to calculate these timing values and transmit the results to NeoLoad. You can find a more detailed description of the navigation timing here. The timing values are calculated by the Ranorex/NeoLoad Nuget package:

Calculated Timing Values

Highlighted in green, you can see the timing values that are calculated by Ranorex and submitted to NeoLoad.

To transmit the timing values, you need to drag and drop the repository root element, which represents the DOM of the website under test, into the action table in Ranorex Studio. Once the NuGet package is added to the Ranorex project, the additional entry "SendNeoLoadTimingValues" will appear in the "Dynamic Actions" list.

Please note: This entry only appears if the root element was created after the NuGet package was added to the Ranorex project. You can find a description of how to enable the NeoLoad "capability" in an existing repository here.

Add Neoload Action

The "SendNeoLoadTimingValues" action accepts a "transaction name" as an argument. We recommend using the current page as a transaction name in the Ranorex action table. As soon as NeoLoad receives the timing values of this transaction, a tree with the root node containing the Ranorex test suite is automatically created. Another subfolder is automatically created for the respective transaction name. This folder contains the timing values transmitted from Ranorex.

Add SendNeoLoadTimingValues Action

Resulting Neoload Graphs

Important:  Please make sure to initialize the module "ConnectToDataExchangeApi" before you use the module "SendNeoLoadTimingValues". Otherwise, an error is thrown. 

You can drag the data series into the graph board in NeoLoad to visualize it. If you've provided meta-information, such as "Hardware", "Software" or "Location" in the "ConnectToDataExchangeApi", you can now use this information to filter timing values transmitted from Ranorex.

Update meta-information in cross-browser tests

If you execute the test in multiple browsers, you have to update the filter options in NeoLoad by calling the "ConnectToDataExchangeApi" module again. To do so, bind the data column, which specifies the browsers, with the "Software" argument from the "ConnectToDataExchangeApi" module. You can now compare timing values from different browsers.

Timing Values of Different Browser

Exemplary Ranorex project structure

In the screenshot below you can see an example of how you can use the modules provided in the NuGet package within a Ranorex test project:

Ranorex Testsuite Project Structure

As you can see, a connection to the runtime API is established in the global setup section. The login information take the form of global parameters.
At the very beginning, "StartNeoLoadTest" starts the NeoLoad test scenario. The following test case is data driven and provides the number of virtual users that will be added to the test. These values are provided in "AddVirtualUsers". The inner loop is a cross-browser loop. It defines the browsers in which the test will be executed.

Please note: The module "ConnectToDataExchangeApi" can be called multiple times to update the current browser with the filter feature in NeoLoad.

Upgrade an existing Ranorex project with the Ranorex/NeoLoad NuGet package

If you add the NuGet package to an existing Ranorex project, which already contains a Ranorex Object Repository with repository elements, the modules provided by the NuGet package are automatically available in the module browser. In this case, the "SendNeoLoadTimingValues" option won't be available in the "Dynamic Actions" list for the already existing repository items. Perform the following steps to enable this option:

1. Open the RanoreXPath editor

RanoreXPath Editor

2. Switch to "Browser & Results"

Switch to Browse and Results in Spy

3. Drag and drop the root element from the Ranorex Spy to the matching root element in the Ranorex Object Repository.

Drag and Drop to Repository

Now, the "SendNeoLoadTimingValues" will be available in the Dynamic Actions list for the repository root element that describes the website DOM.

Conclusion

In this blog, you've learned how you can combine Ranorex and NeoLoad tests. You've seen the modules and variables that are available with this integration and how you can transmit timing values to a NeoLoad performance tests. Now, you will be able to validate critical business cases under load conditions to ensure system stability under real usage conditions and identify potential bottle-necks across technology borders.

Further Resources

Watch the Ranorex-NeoLoad Webinar

The post How to Combine Ranorex and NeoLoad Tests appeared first on Ranorex Blog.

Categories: Companies