Rapise Mobile

Articles
iOS Testing Hints (March 2024 version)

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.

Testing mobile applications built with Ionic framework

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+.

How to resign a third-party .ipa file to run it on a real iOS device

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.

How to generate an HTML report using own template and convert it to PDF

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. 

Rapise 8.0: how to use Rapise with Git and Spira

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.

Rapise 8.0: how to use Page Objects/Modules

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.

How to switch between applications in a Mobile test

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.

Rapise 8.0: using multiselect and datacolumn parameters for comprehensive testing

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.

Rapise 8.0: development flow for Test Automation Framework in Team Mode

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.

Rapise 8.0: development flow for Test Automation Framework in Single User Mode

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.

Rapise 8.0: how to make a copy of a test automation framework

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: how to define and use test set configurations

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.

Rapise 8.0: what are the benefits of using the new Framework mode?

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.

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.

Rapise 8.0: how to define and use parameters in test 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: recommended way of executing code before and after each test case

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.

Run Rapise tests on Bitbar

Bitbar is a browser and device farm that enables it's clients to run cross-browser and mobile tests remotely.

How to find Rapise activation code that is used on a machine

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. 

How to disable browser notifications for Selenium Chrome

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.

How to attach a file to a test run in Spira

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.

Running Rapise test sets without third-party tools

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.

How to press special keys on Android keyboard

To enter characters one may use AndroidObject.DoSendKeys, but sometimes you need to send special characters like ENTER. Learn how from this article.

Dismiss Safari popup on a Mobile device

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.

Create an incident in Spira from Rapise test

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+.

What Blocked status means for a Test Run

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.

Auto start/stop Azure VM to run UI tests

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.

Change the default Screenshot folder

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.

RVL Toolbox to boost productivity in writing tests

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.

Using SeeTest Instrumented Mode

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.

How to get AWS Secret from Rapise

Learn how to query AWS Secret from Rapise.

 

Requires Rapise 6.7+

Rapise and Microsoft Defender Antivirus

If you use Microsoft Defender Antivirus to protect your system then you may need to perform certain steps to use Rapise effectively.

Rapise and Avast Antivirus

If you use Avast Antivirus to protect your system then you may need to perform certain steps to install and use Rapise.

Making Negative API Tests

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.

How to rename a Rapise test linked to a Spira Test Case

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)

Using Free Apple Development account to test on mobile devices

It is possible to use Free Apple Developer account for iOS testing. But it requires some knowledge and time to setup.

Mobile testing with Experitest SeeTest

Connecting to the mobile devices hosted by SeeTest is easy. Learn how from this article. Requires Rapise 6.5+.

Values passed from RapiseLauncher to Rapise

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+

Make screenshots on failure only

Automatic screenshots on every test step may occupy too much space. Learn how to make  a screenshot on failure only.

How to set path for local browser and mobile profiles

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+

Using Zoom/GoToMeeting for Support Session

Learn how to connect to a support session and how to enable Rapise Expert to remotely control your Rapise instance.

Compare Images in JavaScript

To compare images in JavaScript you may use Tester.AssertImage.

How to start Rapise Launcher on Windows Boot

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.

How to organize custom code in User.js

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.

Working Directory of a Test and Relative Paths

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.

Closing application under test from Rapise

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.

Writing data to an Excel spreadsheet

In this article we describe how to write data to an external Excel spreadsheet during test playback. Both RVL and JavaScript examples are given.

Multiple Object Locators

Sometimes object location is unstable. The same object may be identified by different location path or XPath depending on application version or state.

How to relearn an object

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.

Is it Possible to Automate an iOS Web App using Rapise?

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.

Is it Possible to Automate an iOS App Store App using Rapise?

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?

Rapise Start Page Layout Does Not Display Correctly

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.

How to configure Mobile Profile to automatically grant Android application permissions on install

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.

How to use specific version of Chromedriver with Appium

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.

Display Intellisense for ActiveX and .NET Objects

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.

Android Testing Hints

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.

iOS Testing Hints

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.

How to insert an RVL step into Manual Test

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.

How to find an object in the object tree

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.

Data-driven testing with spreadsheets and RVL

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.

Rapise Doesn't Launch Because of Missing Windows Fonts

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.

Converting Recorded Steps into Functions/Scenarios

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.

Where does Rapise log errors?

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.

Ways to deal with flaky tests

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.

Using Rapise Mobile with Browserstack

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.

How to launch a web browser in Rapise with a specific size

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.

How to run cross-browser tests on BrowserStack

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+

Troubleshooting the "The Pipe is being Closed" Error during Rapise Installation

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.

How Object Recognition Works in Rapise

This article contains of overview of object recognition by UI automation tools in general and its implementation in Rapise in particular.

How to specify Selenium or Appium capabilities which are not available through Rapise UI?

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.

Requires Rapise 5.3+

How to run cross-browser and mobile tests on Sauce Labs?

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.

Requires Rapise 5.3+

How to run a cross-browser test on a mobile device?

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.

Requires Rapise 5.3+

How to upgrade Chrome browser on Android emulator

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.

Using Rapise Mobile with a Cloud Device Farm

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.

Different Ways of Slowing Down Rapise to Handle Slow Applications

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.

Resources for Learning JavaScript

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.

Suppressing Text in Rapise Logs for Sensitive Data

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).

Where do I get the Microsoft Script Debugger
When you install Rapise onto a computer that does not have Visual Studio or the Microsoft Script Debugger installed you will get a message to install the debugger. This article provides the download link to the necessary debugger.
Testing Adobe AIR Applications on Mobile Devices

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]

Rapise - Cannot Find AllLibraries.json file during Recording/Playback

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.

Fixing the 'Method Not Found' error when using Appium for Mobile Testing in Rapise

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.RemoteCommandInfoRepository
OpenQA.Selenium.RemoteCommandInfoRepository.get_Instance()'.

Note: related to Appium DLL version  1.3.0.1 and  Selenium WebDriver v2.48.0.

Error attaching to Excel spreadsheet when using Rapise 4.0 with MS-Excel 64-bit
When you are using the global Rapise Spreadsheet object on a system running the 64-bit version of MS-Office, you may get an error attaching to the spreadsheet. This article describes the cause of the issue and provides a solution and workaround.
Using Global.DoLoadObjects to Use Rapise Objects from External File

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.

Global.DoWaitFor vs Global.DoWaitForProperty

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.

What is the purpose of the Tester.EndTest() Function?

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.

Using Rapise to populate data in an Excel Spreadsheet
The built-in Spreadsheet object in Rapise makes it easy to read data from an MS-Excel spreadsheet. What happens if you want to write data back to the Excel sheet?
Customizing the Rapise Reports

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.

Calling Rapise DoX functions without reporting result

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.

Working with Right-Click Context Menus

The context menu control is not natively supported by Rapise, but one can use a simple workaround.