ExtentReports is a popular logger-style reporting library for automated tests. Since Rapise 8.2 there is a simple way of using it for custom reporting.
Many applications require users to enter one-time passwords to login. In this article we describe how to implement OTP generator in Rapise.
Most complex part in Mobile testing is connecting to a simulator or device. In this article we describe steps necessary to configure the testing environment.
Note: In brackets we specify versions of software components we used at the time of writing this article.
The recommended approach is to use SpiraTest and RapiseLauncher for automated test execution. However, in some cases, this may not be an option. This article describes how to run Rapise tests using Jenkins.
When testing mobile applications, you may need to draw graphics, such as a signature. This article provides a helper function that you can copy and customize for your tests.
BrowserStack enables you to test image capture and QR/Bar code scanning from BrowserStack’s mobile device camera. If your mobile app has features, such as check scanning, profile image capture, and QR/Bar code scanning, you can use this feature to automate the testing of such a feature in your app.
This is the second part of the iOS Testing Hints series. It describes how to configure real device testing if you dp not have a paid membership with Apple Developer.
Ionic is an open source UI toolkit for building performant, high-quality mobile apps using web technologies — HTML, CSS, and JavaScript. This means that being mobile, Ionic applications are web applications by nature. And it is much more convenient to test them via WebDriver rather than Appium. Requires Rapise 8.1+.
You may receive an .ipa file from a development team or download one published by a third-party vendor. In order to create and run automation scripts using a real iOS device you need to resign the .ipa file with your provisioning profile and development certificate. Learn how to do it from this article.
Rapise can export an execution report in HTML format, it even allows to choose from a few predefined templates. However you may want to create own template or customize existing one and export the report automatically at the end of test execution. Also you may want to convert generated HTML report to PDF format. Learn how from this article.
If your team has only one or two test automation engineers, the best option for storing files of a testing framework is within SpiraTest. This approach is straightforward to implement and does not require specific configuration of test sets. However, if your testing framework is expected to grow significantly and you have multiple automation engineers, it is recommended to incorporate Git into your set of tools. Using Git offers several important benefits:
Improved file loading speed: By integrating Git with RapiseLauncher, the process of loading files from a repository is significantly faster. This can save valuable time, especially when dealing with larger frameworks or complex test suites.
Comprehensive source control features: Git provides a wide range of source control capabilities, including branching and merging. These features are essential for managing changes and collaborating effectively when multiple team members are working on the same codebase. It allows for better organization, tracking, and merging of code changes, ensuring a streamlined development process.
Enhanced teamwork: Git simplifies collaboration in a team environment. It allows team members to work on different branches or even different features concurrently, while providing mechanisms to merge and synchronize their work seamlessly. This enables better coordination and reduces the risk of conflicts when integrating changes made by multiple developers.
By incorporating Git into your testing workflow, you can optimize file loading speed, leverage powerful source control features, and foster a more efficient and collaborative team environment.
When writing automated tests, it is often necessary to create shared modules that can be used by multiple test cases. These modules serve various purposes, such as handling authentication for applications with a login page, performing necessary actions after test case completion, or working with custom controls within the application, such as dropdown menus, form fields, or grid/table controls.
In Rapise 8.0, you have the ability to address all these requirements. Rapise supports two types of modules: RVL (Rapise Visual Language) and JavaScript-based modules. These modules provide a flexible and powerful approach to handle common functionalities across your test cases.
By using RVL modules, you can visually create reusable components that encapsulate specific actions or sequences of steps. For example, you can create an RVL module that handles the authentication process by entering credentials and clicking the login button. This module can then be easily reused across multiple test cases that require login functionality.
Alternatively, you can leverage JavaScript-based modules in Rapise 8.0. JavaScript is a versatile programming language that allows you to create custom functions and logic to handle complex scenarios. With JavaScript-based modules, you can implement specific interactions with custom controls or perform actions that are not easily achievable through the visual interface of Rapise.
Both RVL and JavaScript-based modules in Rapise provide a seamless way to organize and reuse common functionalities within your automated tests. They help improve maintainability, reduce duplication of code, and enhance overall test efficiency.
Sometimes mobile testing scenarios involve interactions with built-in applications installed on a device. For example you may need to open Messages, locate SMS with a one-time code and use it in your application.
The true strength of test automation lies in its capability to execute the same test cases with varying input parameters. In Rapise 8.0, you can achieve this by utilizing multiselect and datacolumn parameters. Let's now explore a specific example to illustrate this concept.
When working as part of a team of automation engineers, the principles mentioned in the Single User Mode still apply. However, there are additional considerations to keep in mind, particularly when using a SpiraTest-based file repository.
If you are the sole automation engineer working on test creation with Rapise, it is recommended to follow these basic principles when developing a test automation framework. These guidelines specifically apply to the new Framework mode introduced in Rapise 8.0.
There are various situations where duplicating a test automation framework and linking it with another product in SpiraTest becomes necessary. For instance, you may want to create a copy to test the next major version of your application or start fresh with a clean product in SpiraTest. Another common scenario is when you need to transfer the test repository from SpiraTest to Git.
Rapise 8.0 provides the simplified way of parameterizing test sets . With the ability to define parameters and create configurations, managing different test scenarios has never been easier. Each configuration automatically includes all the defined parameters, but you can override specific parameter values as needed. If a configuration does not explicitly assign a parameter value, the default value is utilized during test set execution.
The Framework mode was introduced in Rapise 8.0 to simplify test case and test set management, as well as the management of parameters, page objects/modules, object repositories, and shared code. The legacy Single Test mode required dealing with Sub-Tests and linking tests to SpiraTest on a per test case basis, whereas in the Framework mode, there is a single button labeled Sync with Spira that handles everything. When this button is pressed, test cases and test sets are automatically synchronized with SpiraTest, and files are uploaded/downloaded.
Framework
Sync with Spira
In the Framework mode, team collaboration is streamlined because changes made by team members are automatically merged. In addition, it is possible to view diffs and resolve conflicts in complex cases.
In test automation projects, it is often necessary to parameterize test cases for various purposes. For instance, this could involve specifying different URLs for running tests in different environments (development, staging, production), or providing user credentials for logging into the system. Additionally, there might be a need to quickly modify playback speed, error handling, and screenshot settings for multiple test cases. In the Rapise 8.0 Framework mode, managing parameters is made simple and convenient, allowing easy creation and management of parameters, including the ability to run the same test case with different input data, such as filling a form with various values to create multiple records in a system database.
Rapise 8.0 has introduced a new feature called the Framework mode. In this mode a new framework is created with the Common.js file which contains event handlers such as SeSOnTestInit and SeSOnTestFinish that get executed for every test case.
Common.js
SeSOnTestInit
SeSOnTestFinish
Bitbar is a browser and device farm that enables it's clients to run cross-browser and mobile tests remotely.
In your Customer Area on Inflectra website you have a list of Rapise activation codes. To find out which code is used on a specific machine follow these simple steps.
Some of the Web resources used for automated tests have a browser's push notifications active.However, push notifications creating unnecessary records in RVL table.
By default Rapise uploads all the screenshots to a test run in Spira but you may need to upload a specific file, e.g. text file or a spreadhseet.
Recommended way of running Rapise tests on regular basis is using SpiraTest and RapiseLauncher. Other options include Azure DevOps and Jenkins. But there is also a way of running Rapise tests via command line. If this is what you are looking for then read this article.
To enter characters one may use AndroidObject.DoSendKeys, but sometimes you need to send special characters like ENTER. Learn how from this article.
If you are running a web test on a mobile device via Appium then you have three options of how to accept a popup window alert.
In some cases a test may automatically determine that it's failure is definitely caused by a bug in software under test. In this case the test may create an incident in Spira using Spira.CreateIncident action. Requires Rapise 7.2+.
When you run a test with Spira (via RapiseLauncher) you may get a `Blocked` status for a test run. It is displayed in the Test Runs view and Test Sets view both in Spira and Spira Dashboard in Rapise.
If you are using a Microsoft Azure VM to run UI tests and do not want to keep the VM always running (to save budget) you may configure automatic start/stop and auto logon for the machine.
If a test is configured to capture screenshots during playback - Rapise puts then into Reports folder in the working directory of the test. If you want to copy screenshots to a different location or instruct Rapise to put images into a different folder - check out this article.
If you are new to Rapise or use it occasionally you may not know or remember all the cool objects and actions to use in your tests. With RVL Toolbox you can get access to required information by searching for it without leaving the RVL Editor.
If you are testing a native mobile application using SeeTest you have an option to switch to NATIVE_APP_INSTRUMENTED context and record/playback tests in it.
Learn how to query AWS Secret from Rapise.
Requires Rapise 6.7+
If you use Microsoft Defender Antivirus to protect your system then you may need to perform certain steps to use Rapise effectively.
If you use Avast Antivirus to protect your system then you may need to perform certain steps to install and use Rapise.
By default Rapise reports an error when REST service request fails. With the negative test the request should fail, so we want the reporting to behave differently.
It is a 3 step process:
1. SaveAs or Clone the test with a new name
2. Save it to Spira
3. Delete old test copy from Documents module in Spira (optional)
It is possible to use Free Apple Developer account for iOS testing. But it requires some knowledge and time to setup.
Connecting to the mobile devices hosted by SeeTest is easy. Learn how from this article. Requires Rapise 6.5+.
When a test is executed by RapiseLauncher it may access key properties of the test run, custom test set properties and test case parameters.
Requires Rapise 6.4.19.16+
Automatic screenshots on every test step may occupy too much space. Learn how to make a screenshot on failure only.
Since version 6.3 Rapise has support for local browser and mobile profiles. Using it you may package browser profiles along with tests. What if you want to reuse browser profiles between different projects? Or have sets of profiles for different situations? You may now set path to profile directory using a special global variable. Supported in Rapise 6.4+
Learn how to connect to a support session and how to enable Rapise Expert to remotely control your Rapise instance.
To compare images in JavaScript you may use Tester.AssertImage.
Windows may reboot because of various reasons. If you use a machine to run Rapise tests on regular basis than you want RapiseLauncher to be started automatically after system reboot.
Every test has a User.js file and it is a place to put custom code and functions. This code must follow a few rules.
When Rapise starts execution of a test, it sets working directory. If a test refers to a file using a relative path then the absolute path is calculated using the working directory.
There are different techniques one can use to close the application being tested from Rapise. The method to choose may depend on the application type.
In this article we describe how to write data to an external Excel spreadsheet during test playback. Both RVL and JavaScript examples are given.
Sometimes object location is unstable. The same object may be identified by different location path or XPath depending on application version or state.
If an object can not be found at playback and it is obvious that object location has changed because of application update (differs from the case when location is dynamic!) then the best way to fix the test is simply relearn the object.
Yes, in general, Rapise can automate most web applications using mobile Safari running on iOS (either on a real or simulated device). However there are some limitations.
This article is obsolete. The recommended way of testing Web applications is to record tests on a desktop browser via Selenium-based profile and then execute using Mobile profiles. See How to run a cross-browser test on a mobile device for more details.
We often get asked this question: "We have Rapise and want to automate a native iOS app that is available on the application store", can we do it?
Sometimes when you first install and open Rapise, the Start Page does not display correctly. This article explains the cause and solution to fix the issue.
When Appium installs an application at the beginning of a test session - Android may ask for permissions (e.g. access to media files, camera, etc.). Until such prompt is dismissed - Main activity is not launched. It prevents the test from proceeding. Learn how to configure the Mobile Profile to automatically grant required permissions on install.
In Mobile Spy of Rapise when switching from NATIVE_APP to WEBVIEW context you may see an error message:
Chrome version must be >= 55.0.2883.0
From this article you will learn how to fix this.
Sometimes when you are using Rapise, you have to use external ActiveX or .NET objects to perform specific actions. You can get Rapise to display intellisense for those objects.
Sometimes it makes sense to automate certain steps of a Manual Test. If you prefer to implement automatic steps in RVL then include the AUTO helper function into your test.
A test may contain a lot of objects. If you want to locate an object in the object tree you may use the filter box.
Many test automation scenarios require performing same steps with different data. For example, login into application with different user credentials, or enter several lines of a sales order into a table. This is data-driven testing. From this article you will learn how to do this in Rapise Visual Language (RVL) and JavaScript modes. You will also learn how to define data within a test and in external spreadsheet.
If you don't have some of the standard Window fonts installed (e.g. Courier New), when you try and launch Rapise, it will fail to open correctly. This article provides information on the problem and solution.
You have recorded some basic test scripts in Rapise, and now you want to easily extract the steps into a reusable function that can be called from the main test script. This article explains how you can do this for both RVL and JavaScript based tests.
Sometimes when you are using Rapise, you see an error on the screen, or something doesn't work as expected. In that case, our support team will need a copy of the log file that is likely to contain the error message. This article explains how to get that log file.
When you do UI test automation and create a big enough test coverage the probability of having certain portion of flaky tests increases. In many cases there is no reasonable way in terms of time and resources to mitigate all flakiness from the test coverage. In some cases even a flaky test may still be useful.
BrowserStack supports automated browser testing via Selenium and Appium on real iOS and Android devices. Learn how to configure Rapise to connect to Browserstack via Appium.
Sometimes when recording a test against a mobile responsive web site, it is useful to be able to record on the local browser (before playing it back against a cloud service such as SauceLabs, Browserstack, etc.). However you want to always record using a specific browser window size.
BrowserStack enables testing of your website for cross browser compatibility on real browsers. Instant access to multiple desktop and mobile browsers. Learn how to configure Selenium profiles in Rapise to enable connection to BrowserStack services.
Requires Rapise 5.3+
Sometimes when you try and install Rapise, you will see the error message "The Pipe is Being Closed", this article provides some solutions for this message.
This article contains of overview of object recognition by UI automation tools in general and its implementation in Rapise in particular.
From this article you will learn how to pass additional parameters to Selenium or Appium target, even if they can not be specified in a profile. This recipe can be also used to override parameters of a profile right from a test code.
Sauce Labs allows users to run tests in the cloud on different combinations of browser and OS versions as well as mobile devices and emulators. Learn how to configure Selenium and Mobile profiles in Rapise to enable connection to Sauce Labs services.
Let's assume you have a cross-browser test which was created on desktop and can be successfully executed on any desktop browser (Chrome, Firefox, Internet Explorer, Safari). You want to execute this test on your mobile devices or emulators. Learn how from this article.
Appium requires certain version of Chrome to work with. Even Android 7.0 is shipped with Chrome 51 and this is too old version. From this article you will learn how to upgrade Chrome on your Android emulator.
Rapise connects to mobile devices (iOS and Android) using the standard Appium mobile device testing API (similar to Selenium WebDriver for web browsers). This articles describes how you can use Rapise to connect to a mobile device farm using the Appium mobile device profiles inside Rapise. We use Kobiton as an example.
We often get requests for ways to slow down the playback speed of Rapise so that the application under test (AUT) has time to respond. This article describes the different ways and provides suggestions as to when you should use each one.
One of the most popular programming languages in the world is JavaScript. Initially conceived by Netscape as a web page scripting language, christened JavaScript to leverage the popularity of Java (which was fairly new and sexy at the time) and now used for servers (NodeJS), desktop apps (ReactNative) and for us at Inflectra, the core technology at the heart of our Rapise test automation system. This article provides some useful resources for those first learning the language.
A customer had a question - is there a way to suppress the DoSetText or DoSendkeys methods from sending their text to the logs. They didn't want users to see this text in the Rapise (and SpiraTest) logs because they contained sensitive information (e.g. passwords).
We have had a couple of questions about whether Rapise can test Adobe AIR based applications running on mobile devices using platforms such as Android. This article provides some background and also describes the support Rapise has.
[We have depreciated support for testing Adobe Flex/Flash applications in Rapise 5.0 and later, so this article is provided for use by existing customers]
When recording or playing back a test script on a new PC you may get an error message that Rapise cannot find the path to "AllLibraries.json".This article provides instructions on how to fix the issue.
If you receive the following error message when performing Mobile device testing with Rapise, this article provides the necessary solution:Method not found:'OpenQA.Selenium.RemoteCommandInfoRepositoryOpenQA.Selenium.RemoteCommandInfoRepository.get_Instance()'.
Note: related to Appium DLL version 1.3.0.1 and Selenium WebDriver v2.48.0.
One of the challenges using an automated testing tool is to organize things in a way that it is logical enough to find something quickly, structured enough to avoid duplication and simple enough to maintain and upgrade.
This statement is also true for Rapise objects. A common requirement is to deal with the same objects within a flow of different test cases. For instance, if an application has “Log In” functionality then many, many tests will require logging-in and logging-out. Each test will have this object in its own object tree. However this causes trouble if a change in the application affects the recognition of the Log In object. All of the test cases will need to be updated. In such situations it is much more convenient to have the “Log In” objects placed into their own file and re-used by other tests.
This article is obsolete. In Rapise 8.0 and above the recommended approach is to use Page Objects / Modules.
The most commonly used synchronization option to make Rapise wait until the application under test (AUT) is ready is the Global.DoSleep action. However having just a sleep may cause an unnecessary delay because we have to consider the maximum wait interval and it may be much less on average. Rapise includes some additional synchronization options for more fine grained control of the test case flow.
The Tester.EndTest() function in Rapise is described as: Marks end of a currently executed test. Calculates test results and performs finalization of test execution. We have found that some of our customers have been confused as what the purpose of this function is.
By default, the reports displayed within Rapise report back each test activity and assert statement as a line in the report with all of the activities and events being displayed in a single flat list regardless of whether they happen inside the main Test() function or a sub-function. This articles explains how you can extend the reporting.
When you use a DoX command in Rapise to perform a specific command (e.g. DoDOMChildrenCount() to get a number of object's DOM children), in the report an extra step -- assert -- is created during test execution. Sometimes you want to be able to call a function 'quietly' without it affecting the report.
The context menu control is not natively supported by Rapise, but one can use a simple workaround.