Share this page

# Set up OpenText Functional Testing integration

You can integrate with OpenText Functional Testing through your CI server. This enables you to reflect the tests from your source code management (SCM) repository as executable automated tests. You can then include and run these tests in test suites.

In this topic:

## Integration flow

After setting up the integration, the CI server and the SCM system are transparent and you can work with OpenText Functional Testing directly. This enables you to:

- Create and edit your tests and their data tables and save them in a Git or SVN repository.
- Run the tests and track their results.

The integration flow includes the following.

Action | Description
--- | ---
Set up | To set up the integration, create a CI server and a testing tool connection. This process is described in the sections below.
Test and data table discovery | Automated test entities are created to represent the GUI and API OpenText Functional Testing tests stored in your repository. The tests are periodically checked for changes in the repository.
Associate tests with entities | Associate the tests with your backlog and application modules. This helps you use the test run results to track your product and release quality.
Run tests | Include the tests in test suites to plan and run them. The test runs are triggered through the CI server. The tests run on OpenText Functional Testing machines configured as Jenkins execution nodes.
Analyze release and product quality | Track the test results as part of the overall data in the backlog, quality, and dashboard modules.

The image below summarizes the architecture of this integration with Jenkins. For details on supported CI servers, see CI integrations.

## Before you set up the integration

Set up OpenText Functional Testing to store tests and data tables in a Git or SVN repository. For details, see the OpenText Functional Testing Help Center.

For OpenText Software Delivery Management to locate the data tables in your repository, store them in an entirely separate folder from your tests.

## Set up the connection

In your CI server, set up the connection to OpenText Software Delivery Management.

CI server | Steps
--- | ---
Bamboo | Set up a Bamboo server configured with the App Delivery Management Bamboo CI Plugin. This enables Bamboo to integrate with OpenText Functional Testing. Install and configure the OpenText Software Delivery Management CI Plugin to integrate with Bamboo. In the Client ID and Client secret fields, enter the API access key and secret obtained from OpenText Software Delivery Management Settings. The access key must be assigned the CI/CD Integration role in all relevant workspaces. For details see CI server integration.
Jenkins | Set up a Jenkins server configured with an SCM plugin: Install a Jenkins server. You do not need to configure a full CI system for this integration. Configure only the area described below. For a list of plugins that must be installed on the Jenkins server to enable the integration, as well as the supported plugins, see Application Automation Tools wiki page. Install the Jenkins Git plugin (version 2.4.4 or later) or the Subversion plugin (version 2.5 or later) to create the Jenkins-SCM integration. Install the Application Automation Tools plugin. This plugin supports the Jenkins integration and enables Jenkins to run OpenText Functional Testing tests. If your tests are stored in Git, use version 5.2 or later of the plugin. If your tests are stored in SVN, use version 5.3.5 (beta) or later of the plugin. Configure the plugin. For details, see CI server integration. Tip: Before configuring the plugin, obtain an API access Client ID and Client secret from your space admin. For details, see API access. You do not need to create pipelines in OpenText Software Delivery Management or create any jobs in Jenkins. However, if you manually create a job to run tests, and tests are located outside of the job workspace, define a parameter UFT_CHECKOUT_FOLDER with the path to the repository root in the file system. This enables the test name to be displayed, rather than the full path to your test. This is supported with plugin version 6.7 and later.

## Add the CI server

This section describes how to add your CI server.

To add the server:

1. Open the global menu and select Administration > General Settings.
2. Select a workspace.

3. Select the DevOps > CI Server tab.

4. Add a CI server and select your CI server's URL.

For details, see Add CI/CD servers.

## Create a test runner

This section describes how to create an OpenText Functional Testing test runner.

Note: The test runner framework only supports external data tables on OpenText Functional Testing tests of GUI type (and not API type).

To create a test runner:

1. Open the global menu and select Administration > General Settings.
2. Select a workspace.

3. Select the DevOps > Test Runners tab.

4. Click + Test Runner.

5. Name the test runner entity to use to run the OpenText Functional Testing tests, and select the UFT framework.

6. Select your CI server.

   The list displays all servers that meet the following conditions:

   - The server has the Application Automation Tools plugin installed and configured to access your OpenText Software Delivery Management.

   - The API Access keys that the plugin is using are assigned the CI/CD Integration role in the current workspace.

7. Specify the type and URL of the SCM repository that contains your OpenText Functional Testing tests and data tables.

   You can create multiple test runners in a workspace, but each test runner must have a separate repository.

8. If required, provide the authentication details for your repository.

9. Click Test Connection to make sure the configuration is correct.

10. Click Save and Connect to complete the connection.

    CI server | Description
    --- | ---
    Bamboo | If you are integrating using Bamboo, two plans are created: UFT One test discovery that connects to the repository and discovers the OpenText Functional Testing tests and data tables. UFT One test executor that runs the tests.
    Jenkins | If you are integrating using Jenkins, a Jenkins job is created that connects to the repository and discovers the OpenText Functional Testing tests and data tables.

Tip: If necessary for troubleshooting, you can find this job on your CI server based on the connection ID.

To enable test runs, see Enable the CI server to trigger test runs.

The test scripts and the data table content are available in OpenText Functional Testing only.

### Tests tab

In the automated test entities, the following fields are set.

Field | Value
--- | ---
Testing tool type | OpenText Functional Testing
Test type | API or UI
Executable | Yes. These tests can be added to test suites and run from OpenText Software Delivery Management.

If you do not see all of the expected tests in the Tests tab, click the Refresh button to refresh the list of tests.

### Synchronizing changes

OpenText Software Delivery Management continues to periodically check the repository and updates its entities as follows.

Change | Impact
--- | ---
Add test | If you add a new test in OpenText Functional Testing or change an existing test, the changes are reflected in OpenText Software Delivery Management.
Delete test | If you delete a test from OpenText Functional Testing, the relevant test in OpenText Software Delivery Management is not deleted but is marked as not runnable. This way, the test and its history, runs, and reports remain available.
Rename test in Git | If you rename an OpenText Functional Testing test in GIT, the test is renamed in OpenText Software Delivery Management if using version 12.60.3 or later, and the test was committed without additional changes.
Rename test in SVN | If you rename an OpenText Functional Testing test in SVN, or if you rename it in GIT and do not fill the above conditions, a new test is created in OpenText Software Delivery Management and the original test is marked as not runnable.

## Run tests using GitLab and GitHub Actions

You can integrate with GitLab or GitHub Actions to run OpenText Functional Testing tests on demand.

### Supported versions:

- GitLab 14.3 and later, including GitLab Cloud.

- GitHub Actions using GitHub Actions OpenText SDP/SDM integration, version 25.2.0 or newer.

### For details on setting up the integration:

- GitLab: Running Functional Testing tests using testing framework

- GitHub: GitHub Actions integration readme

  Note: To run MBT tests consisting of OpenText Functional Testing units, use the MBT GitHub Action Integration.

## Run tests using Azure DevOps Services

Azure DevOps Services provides out-of-the-box support for running OpenText Functional Testing tests, discovering tests from source control, and injecting run results into OpenText Software Delivery Management.

### Pipeline flow

1. Add the test-runner-start-task at the beginning of the pipeline to create and synchronize the test runner context.

2. Run OpenText Functional Testing tests in a pipeline job by using FTToolsLauncher_net48.exe and a properties file that defines the tests to execute.

3. Add the end-task to inject test results into OpenText Software Delivery Management.

### Required variables and result format

- Define the required Azure pipeline variables, including executionId, suiteId, suiteRunId, and testsToRun.

- Configure queue-time variable permissions as described in Step 1: Create a job on the CI server.

- Inject UFT One results in JUnit format through the pipeline end task.

## Link to an automated test

You can create links to drill from your OpenText Functional Testing automated test, directly to the corresponding test in the SCM.

To enable SCM test links:

1. Create an OpenText Functional Testing test runner. For details, see Create a test runner.

2. Define a File in branch template that points to your SCM repository. For details, see Enable links to the Git or SVN viewer.

3. When an OpenText Functional Testing automated test is discovered by the test runner, the test details in it include an SCM test link field. Click the link to go to the OpenText Functional Testing in the repository, based on the template that you set in the File in branch template.

## Enable the CI server to trigger test runs

This section describes how to enable the CI server to trigger OpenText Functional Testing test runs for Bamboo and Jenkins.

### For Bamboo integration

Action | Steps
--- | ---
Enable Bamboo to run OpenText Functional Testing tests | In the Security and Permission options for the server, clear the Enable XSRF protection option before running tests on your Bamboo server. Enable the Agent as described in the Installation section of the plugin's User Guide. Note: The UFT One test executor plan in Bamboo contains the parameter testsToRun, which receives the list of tests that Bamboo will trigger. (This is created automatically by the integration.)
Make sure OpenText Functional Testing can run your tests | When OpenText Functional Testing opens, it must load all of the add-ins required for your tests. The OpenText Functional Testing machine must be able to access the application under test.

### For Jenkins integration

Action | Steps
--- | ---
Make sure OpenText Functional Testing can run your tests | When OpenText Functional Testing opens, it must load all of the add-ins required for your tests. The OpenText Functional Testing machine must be able to access the application under test.
Configure OpenText Functional Testing to enable running tests over a disconnected remote connection | This configuration is required if you are using execution nodes to run OpenText Functional Testing tests. Without this configuration, test runs triggered by OpenText Software Delivery Management remain Pending on Jenkins until someone logs in to the execution node either directly or with a remote desktop connection. To configure: In the OpenText Functional Testing Options dialog box, open the Run Sessions pane (Tools > Options > General tab > Run Sessions node). Select Allow UFT One to continue running GUI or business process tests after disconnection from an RDP computer. Enter a user name and password of a user who can log in to the OpenText Functional Testing machine.
Connect Jenkins to your OpenText Functional Testing machines | To connect Jenkins: On your Jenkins server, define your OpenText Functional Testing machines as execution nodes. Jenkins uses these nodes to run OpenText Functional Testing tests that OpenText Software Delivery Management triggers. Make sure that the names of your execution nodes include the string uft. On the OpenText Functional Testing machine, connect the execution node to the Jenkins server. Open the Jenkins server URL in a browser, go to Manage Jenkins > Manage Nodes. Select the node, click Launch to download an agent program from the server to the execution node, and then run that program on the OpenText Functional Testing machine. For details, see the section on execution nodes in the Application Automation Tools wiki page. Note: If your Jenkins server is installed on a Windows machine, you can install OpenText Functional Testing on the same machine instead of creating execution nodes.
Set up Jenkins to enable opening OpenText Functional Testing tests result from OpenText Software Delivery Management | By default, Jenkins' Content-Security-Policy header prevents viewing OpenText Functional Testing test results reports remotely. To enable opening OpenText Functional Testing reports using the Show in Jenkins button in an automated test, you must clear the CSP property. Implement one of the following workarounds: Clear the property temporarily, until the next time the Jenkins server restarts: In Jenkins, open Manage Jenkins > Script Console, and run: System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") Clear the property permanently: Run Jenkins with JAVA_OPTS option and add the following option: -Dhudson.model.DirectoryBrowserSupport.CSP=

## Next steps

- Run OpenText Functional Testing tests in a test suite
- Add automated tests
- Run automated tests
- Analyze automated test run results

https://admhelp.microfocus.com Software Delivery Management 8942
Tips to improve your search results... OpenText™ Software Delivery Management Help Center OpenText™ Software Delivery Management Help 26.3 All View Local Help Center View Online Help Center Version: