Operations 11 min read

Automating TDH Upgrade Tests with Docker, Jenkins, Selenium, and Guacamole

To address limited iteration cycles and complex upgrade testing, the article presents a comprehensive automated testing framework for Transwarp Data Hub (TDH) that integrates Docker, Jenkins, Selenium, VNC Server, Guacamole, and Python, enabling reliable, repeatable upgrades, detailed reporting, and real‑time monitoring.

StarRing Big Data Open Lab
StarRing Big Data Open Lab
StarRing Big Data Open Lab
Automating TDH Upgrade Tests with Docker, Jenkins, Selenium, and Guacamole

In limited project iteration cycles, lengthy manual upgrade testing is impractical; automation is required. This article uses the Transwarp Data Hub (TDH) automated upgrade testing architecture as an example to show how to select and integrate various technologies to achieve automated testing and deployment.

As product versions increase, many older versions on customer sites need upgrading. Before releasing a new version, testers must ensure it supports upgrades from older versions and that new features do not conflict with existing ones, highlighting the necessity of upgrade testing.

Automatic upgrade testing

Simulated user behavior

Stability assurance

Detailed test reports

Real‑time upgrade monitoring

To meet these requirements, a mixed technology stack of Docker + Jenkins combined with Selenium + VNC Server + Guacamole + Python is adopted.

Technical Details

Docker

Docker is an open‑source container engine that provides fast deployment, portability, and environment isolation. In this solution, the OS environment required for TDH upgrade—Remote WebDriver and VNC Server—is packaged into a Docker image used as a testbench. Deploying TDH into the testbench container enables execution of upgrade tests, while VNC Server offers remote desktop debugging.

Dockerfile Example

ROM  centos7_webtest:latest
MAINTAINER transwarp
#install jdk
RUN rpm -ivh jdk-7u71-linux-x64.rpm
#change yum repo
ADD change_yum.sh /root/
RUN sh /root/change_yum.sh && rm -f /root/change_yum.sh
#add html
ADD HTMLTestRunner.py /usr/lib/python2.7/site-packages/
...

Jenkins

Jenkins is a continuous integration tool. TDH upgrade tests are defined as parameterized Jenkins jobs. Jenkins schedules and triggers the upgrade workflow, allowing developers and testers to monitor the status of each upgrade stage.

Selenium

Selenium is a lightweight, cross‑platform web testing framework supporting Java, Python, and other languages. It drives the TDH front‑end operations such as starting/stopping services, adding configurations, and installing LDAP or Guardian components.

Selenium Login Example

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver = webdriver.Remote(command_executor='http://remoteIP:port/wd/hub',
                          desired_capabilities=DesiredCapabilities.CHROME)
driver.set_page_load_timeout(30)
driver.implicitly_wait(30)
driver.maximize_window()
driver.get("TRANSWARP-MANAGER-IP:8180")
driver.find_element_by_id("userid").clear().send_keys(USER)
driver.find_element_by_id("passwd").clear().send_keys(PASSWORD)
driver.find_element_by_id("sign-in-button").click()

VNC Server + Guacamole

VNC Server provides remote desktop sharing. Guacamole, an HTML5‑based VNC client, enables web access to the VNC Server, allowing developers to observe the TDH upgrade process remotely.

Python

Python modules PyCrypto and Paramiko handle secure remote authentication and command execution on target clusters during the upgrade. Custom HTMLTestRunner extensions generate detailed upgrade reports beyond unit‑test level.

Framework Workflow

The framework assigns specific tasks to each tool: Docker deploys the required OS and services; Jenkins schedules and orchestrates the tests; Selenium performs front‑end interactions; Guacamole connects to VNC for visual monitoring; Python drives Selenium scripts and remote shell commands.

Create a Jenkins job with parameters such as manager_ip, username, password, upgrade_tar_location, new_version, upgrade_mode, service_add, etc.

Trigger the Jenkins job to start the TDH upgrade.

Jenkins launches a Docker container that pulls the upgrade code from Git/SVN.

The container executes the upgrade script, sending HTTP requests to Selenium WebDriver to control the TDH management UI.

Selenium opens VNC Server via Guacamole to display the front‑end upgrade status.

Jenkins collects logs and generates a comprehensive upgrade report.

Example Upgrade: TDH 4.3.5 → 4.6

The article walks through the step‑by‑step execution of the above workflow, illustrating job configuration, container launch, Selenium‑driven UI actions, remote script execution, license updates, Guardian service installation, component addition, and final report generation.

Conclusion

Automating TDH upgrade testing eliminates extensive manual effort, improves reliability, and shortens the testing cycle from 2–3 days to under one day. Docker ensures environment consistency, while the integrated pipeline enables rapid feedback and supports parallel product releases.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

DockerPythonAutomated TestingDevOpsJenkinsSeleniumUpgrade Automation
StarRing Big Data Open Lab
Written by

StarRing Big Data Open Lab

Focused on big data technology research, exploring the Big Data era | [email protected]

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.