Docs
Bumblebee
Setup Guide

Bumblebee Integration Platform

Bumblebee Server works with ALM version 15 onwards and works the same on ALM on-premise or SAAS.

Bumblebee server is a cross platform application and can be run on both Windows and Linux

What is Bumblebee

Bumblebee is a set of tools and SDK for integrating CI applications, testing tools and frameworks with ALM.

Bumblebee CI Integration: Bumblebee can be used for

  • Jenkins: Integrate Jenkins pipelines for any testing framework such as Selenium, Playwright, etc. with ALM
  • TeamCity: Integrate TeamCity pipelines for any testing framework such as Selenium, Playwright, etc. with ALM

Bumblebee Testing Framework and Tools Integration: Bumblebee can be used for

  • Selenium: Write web tests in Selenium WebDriver and map them to tests and requirements in ALM
  • Playwright: Write web tests in Playwright and map them to tests and requirements in ALM
  • Appium: Write mobile tests in Appium and map them to tests and requirements in ALM
  • JUnit: Write unit or integration using Selenium, REST Assured, etc and map them to tests and requirements in ALM
  • TestNG: Write unit or integration using Selenium, REST Assured, etc and map them to tests and requirements in ALM

Bumblebee has two components

  • Bumblebee Server: The server runs within your network and is responsible for orchestrating all communication with ALM.
  • Bumblebee Integrations: These are the set of tools and SDKs for CI and Testing frameworks. They send information to the Bumblebee Server.

Install

Windows Installation

Download and run the Bumblebee Windows Installer (opens in a new tab)

bumblebee installer

Specify installation directory

bumblebee directory

Specify some available port

bumblebee port

bumblebee progress

bumblebee console

The Bumblebee URL takes you to the admin page, where you can configure ALM custom properties, view logs, view and update license, and view your encrypted password

Linux Installation

Bumblebee requires JRE to be installed and added to the PATH PATH environment variable. To check if it's set run the following command in terminal java -version.

Download and unpack the Bumblebee Linux Installer (opens in a new tab) to some directory like /opt

Run sudo startup.sh command from bumblebee folder.

To change the default port number, use -port <number> command line option. Example: sudo startup.sh -port 9999

License Activation

Bumblebee can be activated by providing either a license file or a license key.

Navigate to the license tab. By default the option to activate via a license file is selected.

bumblebee license file

Click the Choose File button and select the license file. Then click on Upload to upload the selected license file and to activate.

To activate using a license key instead, select the Update license key radio button.

bumblebee license file

Enter the license key in the License text box and click the Update button to activate.

ALM Credentials in Server

Some security senstive users may not want to expose ALM credentials in the project configuration. Bumblebee allows users to specify ALM credentials within the Bumblebee Server in the alm-mappings.xml configuraiton section.

When specifying ALM credentials on the Bumblebee server side, they can be specified at project, domain or URL level as shown in the following examples.

Server side ALM credentials at project level can be specified as follows:

<?xml version="1.0" encoding="UTF-8"?>
 
<mappings>
    <url url="http://server_name:port/qcbin">
        <domain name="DEFAULT">
            <project name="annotations_demo">
                <credentials username="qcuser" encrypted_password="fd4OMOXLJjkMR6e64RJh3Q==" />
            </project>
        </domain>
    </url>
</mappings>

Server side ALM credentials at domain level can be specified as follows:

<?xml version="1.0" encoding="UTF-8"?>
 
<mappings>
    <url url="http://server_name:port/qcbin">
        <domain name="DEFAULT">
			<credentials username="qcuser" encrypted_password="fd4OMOXLJjkMR6e64RJh3Q==" />
            <project name="annotations_demo">
            </project>
        </domain>
    </url>
</mappings>

Server side ALM credentials at URL level can be specified as follows:

<?xml version="1.0" encoding="UTF-8"?>
 
<mappings>
    <url url="http://server_name:port/qcbin">
		<credentials username="qcuser" encrypted_password="fd4OMOXLJjkMR6e64RJh3Q==" />
        <domain name="DEFAULT">
            <project name="annotations_demo">
            </project>
        </domain>
    </url>
</mappings>

When ALM credentials are configured on the Bumblebee server side, the alm_user and alm_encrypted_pass attributes are not required on the client side bumblebee_config.xml file. However you may still specify these attributes, which will override the server side configuration.

Security

To manage users, navigate to Accounts tab and create additional account or change passwords

Login

To setup secure connection to Bumblebee Server, use services like Lets Encrypt (opens in a new tab) or generate a self-signed certificate. Place the keystore file in the Bumblebee installation directory and create a application.yml with this configuraiton.

server:
  port: 8443
  ssl:
    key-store: keystoreFile.pfx
    key-store-password: your_key_store_password
    keyStoreType: PKCS12

Once configured, restart the Bumblebee service

  • Windows: Restart BumbleBee HP ALM Integration Service
  • Linux: Navigate to Bumblebee Server installation directory and run sudo ./shutdown.sh and sudo ./startup.sh

Web Portal

The default user name/password: admin/admin

After installation is complete, navigate to the Bumblebee portal to setup ALM custom fields, update license, view logs, etc.

bumblebee web

bumblebee web

ALM Field Mapping

Most ALM project contain custom fields that can be optional or mandatory. Bumblebee web portal provides an simply way to configure these fields on the Bumblebee server so that they can be passed from the Bumblebee integration clients.

Required ALM fields must be specified in the XML configuration. ALM will reject any API calls missing required fields in the API payload.

alm user fields

ALM custom field and values can be viewed by navigating to: Project Entities → [entity type] → User Fields

alm user config

To configure custom fields, navigate to Mappings menu in the Bumblebee portal and modify the XML configuration by specifying the ALM project's custom fileds and mappings.

bumblebee config

<!-- Mappings file. -->
<mappings>
    <!-- URL of your ALM server -->
    <url url="https://alm.acme.com:8080/qcbin">
        <!-- ALM domain name -->
        <domain name="DEFAULT">
            <!-- ALM project name -->
            <project name="test_project">
                <!-- mappings for Test -->
                <!-- alm_field - actual name of field in ALM -->
                <!-- label - name of HTTP request query param which value should be mapped into alm_field -->
                <!-- default_value - default value will be used if no HTTP request query parameter was passed.-->
                <!-- Delete it if no default value is needed -->
                <mapping alm_field="TS_USER_01" default_value="value" label="test user 1"/>
                <!-- mappings for TestSet -->
                <mapping alm_field="CY_USER_01" default_value="" label="test set user 1"/>
                <!-- mappings for Run -->
                <mapping alm_field="RN_USER_01" label="run user 1"/>
            </project>
        </domain>
    </url>
</mappings>

If multiple ALM projects share some custom fields, the custom field element <mapping> can be specified at the base, url, domain, or project level.

<mappings>
    <url url="https://alm.acme.com:8080/qcbin">
        <domain name="DEFAULT">
         <!-- This field will be inherited by all the projects within this domain -->   
        <mapping alm_field="TS_USER_01" default_value="value" label="foo-1"/>         
            <project name="project-1">
                <mapping alm_field="CY_USER_01" default_value="" label="bar"/>
                <mapping alm_field="RN_USER_01" label="run1"/>
            </project>
            <project name="project-2">
                <mapping alm_field="CY_USER_01" default_value="" label="bar"/>
                <mapping alm_field="RN_USER_01" label="run1"/>
            </project>            
        </domain>
    </url>
</mappings>