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.
Sometimes you have to automate the uploading of files using an HTML file upload control. This article explains how to record and playback such a script.
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.
Recommended approach is to use SpiraTest and RapiseLauncher designed for this task. In some cases it is not an option and we need to execute a test directly.
Note: this manual is out of date. Please refer to the new one for Jenkins 2.440 instead.
When you use our SOAP or REST web service APIs you will often times want to retrieve a filtered list of data. This is done by using the RemoteFilter that lets you query the list of requirements, test cases, tasks, incidents, etc. and pass in the field to be filtered. This article includes the list of standard fields that you can use in the RemoteFilter.
This knowledge base article describes how to connect to the SpiraTest, SpiraPlan & SpiraTeam SOAP web services using .NET code written in C#. The code assumes that you're using Visual Studio 2008 or later and are using the newer .NET 3.0+ Windows Communication Foundation (WCF) "Add Service Reference" rather than the older .NET 2.0 ASMX web service client.
This knowledge base article describes how to connect to the SpiraTest, SpiraPlan & SpiraTeam 4.x SOAP web services using Java code. It assumes that you've generated the SOAP proxy classes using JAX-WS. If you need to download pre-compiled versions of the classes, they can be downloaded from this knowledge base article.
Note: We now recommend customers use our REST web service instead as Java has removed a lot of the JAX-WS classes from the newest versions of the JRE: https://api.inflectra.com/Spira/Services/v7_0/RestService.aspx
Sample code is here: GitHub JUnit Sample.
This article can be considered as obsolete, we now recommend customers use our REST web service instead as Java has removed a lot of the JAX-WS classes from the newest versions of the JRE: https://api.inflectra.com/Spira/Services/v7_0/RestService.aspx
This knowledge base article describes how to connect to the SpiraTest, SpiraPlan & SpiraTeam SOAP web services using Java code. It assumes that you've either generated the SOAP proxy classes using JAX-WS or are using the pre-compiled ones attached to this KB article.
This article is obsolete, we now recommend customers use our REST web service instead as Java has removed a lot of the JAX-WS classes from the newest versions of the JRE: https://api.inflectra.com/Spira/Services/v7_0/RestService.aspx
When connecting RemoteLaunch to an instance of SpiraTest or SpiraTeam that is externally hosted you may have an issue where RemoteLaunch does not know to use a local proxy server. This articles describes an easy solution to modify RemoteLaunch to use your current Internet Explorer (IE) proxy settings.
This article is now obsolete.The fix has been applied to resolve the proxy server information in newer versions of Remote Launch.
This knowledge base article describes how to connect to the SpiraTest, SpiraPlan & SpiraTeam SOAP web services using Java code. It assumes that you've generated the SOAP proxy classes using JAX-WS. If you need to download pre-compiled versions of the classes, they can be downloaded from our website at: JavaSoap30Classes.zip
One of the most common needs when using the Spira REST API is the ability to update an item in the system (e.g. test case, requirement, task, defect, etc.). This article explains how you can use the REST API to do this.
A customer asked us for some sample code that illustrated how you can retrieve a filtered list of test sets using the Spira API. This example includes sample code using the Spira v5.0 API.
We have had some customers looking to upload files to Spira using our REST API. This article provides some sample code.
In order for Rapise to be able to test a thick-client desktop application written using Qt, it needs to support Microsoft Active Accessibility (MSAA), as described in this article - http://doc.qt.io/qt-5/accessible-qwidget.html
This article demonstrates how to check your application to see if it supports MSAA.
In rare cases Rapise installation fails. There may be different reasons for this including AV software, security configuration or corrupted Windows system. To help Rapise team to find out the root cause you may zip and share Rapise installation logs.
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 execute Rapise tests via Rapise Launcher - test reports and logs are automatically uploaded to Spira. But verbose level is always set to Level 1 by Rapise Launcher. If you need more detailed log set verbose to 2 or 3 in test case properties.
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?
When doing mouse click from Rapise it is sometimes need to use offset coordinates. You will learn:
1. When explicit coordinates are needed
2. How to determine them
Sometimes test set requires a value passing through the sequence of test cases. Good example is User ID assigned during sign-in and then used in subsequent test cases.
Another use case is when test case requires some input value that should always be unique.
Sometimes you want to override certain Rapise settings (e.g. the Command Interval) from within SpiraTest. For example you might to run one test set more slowly than other test sets because the environment is slower. This article explains how you can easily pass settings values from SpiraTest to Rapise.
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.
When you try and do a substring on a value returned from a database, you may get an error about the object not supporting the property.
When you have a user defined function in Rapise, you sometimes want to jump to it.
In order for Rapise to be able to test a thick-client desktop application written using Delphi, it needs to support Microsoft Active Accessibility (MSAA), as described in this article - http://edn.embarcadero.com/article/33642
It is common to use UI tests with RDP connected to remote VM. By default this works only while RDP window is open and client is connected. On disconnect remote session gets locked and UI becomes unavailable for the test. This topic covers a workaround.
In some cases it is convenient to store tests in the same Git repository where source code of an application under test is located. For example, if you are using Visual Studio Team Services. From this article you will learn how to execute Rapise tests stored in a Git repository with SpiraTeam and leverage the power of SpiraTeam reporting and analysis features.
This article is obsolete. There is much simpler approach with use of RapiseLauncher Extension for Azure DevOps.
When performing web service testing using Rapise you may need to change the HTTP headers being sent with the request. This article provides suggestions on the different ways of doing this.
Sometimes you need to run a Windows batch file (.BAT) from Rapise. Unlike an executable, you cannot simply use Global.DoLaunch() to execute it since it's not actually an application. This article provides the code you need to use.
One of our users had a webpage with a form. When it was submitted partially filled, the page came back (after being processed on the backend) with some errors about incomplete form. If the user tried to navigate away from this page via a link (or close the page/browser tab) he was prompted with browser's standard "Are you sure you want to leave this page?" dialog. He needed a way for Rapise to handle this popup when recording and playing back the web test.
This topic describes how to read and write JSON data in Rapise.
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.
With the release of the new Rapise Visual Language (RVL), there have been some questions about how to use it to organize tests, subtests and multiple sheets. For example:
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.
It is a common situation that desktop applications written using Microsoft Windows Presentation Framework (WPF) will have complex layouts including tabs, splitters and panels having custom grids and tables inside. This article provides help in dealing with such situations, including how to dynamically find items.
Sometimes when testing local/desktop applications you need to access the Windows registry to verify that keys exist or that keys have specific values. For example you may be testing that a DLL was successfully registered. This article provides information on the 'UsingRegistry' sample that comes with Rapise.
We had some customers that were looking to record some tests against Microsoft Word 2010. When testing against MS-Word 2010 there are actually two parts to the application:
This article provides some strategies for dealing with both areas.
Sometimes when using Rapise to test REST web services, you want to be able to dynamically change the base URL of the web service yet still use the same URL template and method information. This article describes a process for achieving this.
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 have a multi-select list in a web application, you may need to check which items are selected, or to check whether or not a particular item is selected. This article illustrates how to do that.
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.
This article describes the process and provides an example for accessing the Spira v4.2 REST API to get a filtered list of test cases in a release.
By default Rapise records user actions with a line commented out for each action. This articles describes how you can disable this behavior if you just want the script lines recorded on their own.
A Flex application requires some instrumentation to be ready for testing. By default Flash player has security restrictions preventing Rapise from accessing the application contents. Please, check the this help topic to learn more about Adobe Flex testing.
This article is obsolete. Flex support was removed from Rapise.
When executing Rapise scripts from SpiraTest using RapiseLauncher there is a 10-minute inactivity timeout. If your scripts have periods of inactivity that last longer than 10 minutes, you may need to extend the default timeout. This article describes the steps for doing this.
This article is obsolete. Since Rapise 5 there is no default timeout anymore.
When using Rapise to record test scripts against Windows, Java, Flex, or other thick client applications that have windows or objects whose names may change in between test runs, you will usually need to make changes to either the test script or the learned objects so that they can match correctly. This article outlines some suggested techniques for recording/playing back scripts against such applications.
If you have your browser zoom set to a value that is not 100% when recording or playing back scripts it will affect the playback reliability. Specifically Rapise may click/move at/to false locations in the test browser. You need to set your browser zoom to 100% before doing any playback/recording activities.
We are in the process of adding a new testing server that we would like to be able to run automation scripts against.
I just wanted to see if there is a process documented for converting scripts and objects to point to a different web address?
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.
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+
This article describes the syntax for passing parameters from the Windows 32-bit command-line to a Rapise script. Note that you need to make sure that you're using the 32-bit command line on a 64-bit machine. I.e. follow the instructions in this KB article - https://www.inflectra.com/Support/KnowledgeBase/KB17.aspx
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 this article, we will demonstrate how to configure multi-browser execution of test cases in Rapise to ensure compatibility of a web application across major web browsers. This method is specifically designed for the Framework mode, which was introduced in Rapise 8.0.
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
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.
During the evaluation of Rapise 5.2 for Microsoft Dynamics AX testing, a customer collected the following tips and tricks from our support team (thanks Maxime!).
Sometimes we need to process data in groups or even in hierarchical way. Here we will show how to make it using plain table and loop in RVL.
For performance reasons, Atlassian has made breaking changes to the Jira Server API in version 9.0 (and later). This means that is you are using the Spira data synchronization plugin for Jira Server, you need to download the most recent version from our website. This also affects Jira Data Center.
Note: this does not affect Jira Cloud.
To create new manual test runs in SpiraPlan, SpiraTeam, or SpiraTest through the API, you need to make two connected API calls. The first creates the Pending Test Run, and the second finalizes and logs the test run. The Pending Test Run call allows for the manual API test run process to support key features users experience in the UI of the app itself. These include multiple test cases in one test run pending, linked test steps, and test parameters.
How to use these two API calls is explained below, using the v6 REST API as an example.
Sometimes when you are testing an application written in Angular 4, the text box will not accept a value that is correct during playback (e.g. zip code is not in the right format) when you use DoSetText to set the value.
We have had several requests for sample code illustrating how to access the Spira 6.0 REST API in C# code. You can of course use the SOAP API instead where Visual Studio auto-generates the C# code for you, but since we have a complete REST Unit Test framework in C#, we are sharing the sample code
Sometimes we need to get runtime property for the element. For example, we need to get a background color to know that element is highlighted for a user. You may do it with help of Navigator.ExecJs.
By default, when you want to use Rapise to record and playback web tests using either Chrome or Firefox, you simply go to the appropriate web browser "store" and install the extension directly from the store. However sometimes you are testing web applications on a machine with no Internet Connectivity.
Normally you can install the add-ons for Chrome and Firefox directly from the browser's app store (just search for Rapise). This is the easiest option, and avoids the need to run the browsers in developer mode.
It is tricky do deal with WPF calendar control. Here we introduce a number of supplementary functions to copy in your project and use to modify and read Calendar and DatePicker data.
When you are integrating Spira with Jira cloud (hosted by Atlassian) and Jira server (locally hosted) you need to to connect to Jira using a login and Jira API Key. Previously (prior to June 3rd, 2019) you could also use a Jira login and password, that is no longer allowed by Atlassian.
When using the API to do post a new artifact, for example, you may want to also set custom properties for that artifact. You need to pass in an object with an array of objects, one object for each custom property. For each object you need to specify two fields: the custom property id, and the new value.
We had a customer that was looking for a more automated way to remove test cases from a test set. The good news is that our REST API makes this easy.
Although we have comprehensive documentation published on our website regarding the Spira REST API, sometimes users need some additional examples. In this article we publish an example of how to record a new test run using our REST API.
A customer asked us why Rapise uses Pascal Case names for the various operations, functions and properties, as well as the reason why operations are prefixed with a "Do" action name.
If you are integrating Spira (SpiraTest, SpiraTeam, or SpiraPlan) with Atlassian Jira, you may get this error message if you have not updated the integration for a while:
Basic auth with password is not allowed on this instance
When you are self-hosting Spira on your own Windows Server using the IIS web server, it will generate standard URL locations for the Web Service Definition Language (WSDL) files used to consume SOAP services. This article explains how you can override the URL to use a different one.
This topic covers more detailed description on how to pass map from one Sheet to another in RVL
In version 6.2.1 of SpiraPlan, SpiraTeam and SpiraTest we have added a new reporting API that lets you access the reporting capabilities of Spira programatically.
With our Rapise cloud edition, you can take your automated software testing to the cloud. With Rapise cloud edition you can start testing immediately, no hardware or test lab needed, just sign up for Amazon Web Services (AWS) and rent our Rapise cloud AMIs on-demand, with no minimum usage and no annoying monthly or annual fees, just pay for what you use.
If you try and run a Rapise script from the command-line on a 64-bit machine you may get an error message. Learn how to fix it from the article.
Rapise supports testing of Java applications. In the case that application is launched using Java Web Start (JWS) additional steps are needed to successfully test an application.
This article is for those who test a desktop application via UI Automation library. Since desktop applications are frequently built using UI controls from different vendors and the number of such controls available on the market is pretty big (> 1k) - Rapise may not have out-of-the-box support for some controls in your application. For such cases Rapise offers a low level API to navigate UI Automation tree of elements inside an application and read/write element properties. In this tutorial we'll show how to use this API and quickly add minimal support for a custom control.
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.
Of the unique needs of a requirements and test management system when working in the Defense industry, specifically when designing, building, and testing mission systems, is the ability to link individual test steps to the requirements. Since v5 of SpiraTest, this has been possible inside the Spira user interface, however many customers have been looking for a way to map test steps to requirements in bulk using Excel.
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.
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.
An automated test case stores its test script as a standard document inside of the SpiraTest/Team/Plan application. To GET the current script using our REST API you need to make 2 calls: 1 to get the document ID and the other to retrieve the script itself.
Sometimes you want to have multiple nested loops to test a set of test data (for example loop over a list of users, and for each user, loop over a list of browsers). In JavaScript you can use standard nested loops, this article explains how you can do the same using RVL.
When using Spira's REST API, there are a number of calls that let you create powerful filters to query for only the specific information you want. These use a POST request with the filter in the body as either JSON or XML. Here's how to correctly formulate JSON to get only artifacts that fall between two dates.
Unfortunately, Windows10 has a nasty habit of frequently updating itself and then breaking existing applications. We found that the February 14th, 2018 Windows10 update corrupted the Excel device driver that Rapise uses to access the RVL test script spreadsheet during playback.
Sometimes it is required to have list of files from some folder. Here we demonstrate how to get this list and how to iterate through it in RVL.
We show how to do data generation for test scenario using RVL Variable loop in Rapise. This sample shows how to produce a sequence of filenames: FILE1.txt, FILE2.txt, FILE3.txt and so on.
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.
Sometimes we need to disable screenshots for a while (during some long loop) or when doing some specific operations. Here we show how to do it.
Example of adding support for Java UI control in Rapise.
SpiraTeam lets you send data for POST requests in our REST API using either JSON or XML. To ensure that data is saved correctly, when using XML all fields must be in alphabetical order.
Sometimes it is convenient to store function names in strings and use those strings to call actual functions. The article describes two ways of how you can do this in Rapise.
This article enumerates the different skills you need to be self-certified at the training course: Rapise iRP-100 fundamentals. The article includes the list of skills in a readable format as well as a downloadable spreadsheet that you can fill out.
If you try and record a test script in Rapise using just the 'Infragistics' library you will get the following error message:
C:\Program Files (x86)\Inflectra\Rapise\Engine\Recorder.js(285, 3) Microsoft JScript runtime error: 'ManagedObjectSelectableBehavior_OnMouseEvent' is undefined