Automation Testing

OpenTest Automation Framework Preview

By Test Guild
  • Share:
Join the Guild for FREE

I recently spoke with Adrian Theodorescu, and he told me about an open-source framework that I had never heard of before: OpenTest.

Being a test-tooling nerd, I had to learn more.

This is what I discovered.

First, frequent readers of my articles know that I generally recommend that you use an existing framework before creating your own.

So the first question I asked Adrian was, why did he feel the need to create yet another automation framework?

The short answer was that his team couldn't find an open- source tool with the features they needed. For example:

  • A tool that can be used by people of all skill levels
  • A tool that can do seamless, distributed testing that can run test steps between multiple applications and machines
  • A tool that works with source control
  • Something with a robust, extensible design

Design Goals for Creating OpenTest

The creators of OpenTest made it very easy to extend, and it can be done without the need to change anything in the core test framework or tool.

It's merely a matter of creating a Java class that derives from some base class that OpenTest provides. You can then override one method with whatever you want. Because of this, it's effortless to extend.

The example Adrian gave me is that they have a hard-to- automate, point-of-sale desktop application (POC) with custom controls and was able, using OpenTest, to create a test scenario against it.

As we talked about reuse rather than starting from scratch, he also mentioned that his team looked to the market for libraries, and in particular open-source libraries, before creating new functionality.

Because Selenium and Appium are two libraries that are proven, reliable, and are the undisputed leaders in their segments, so they used them in OpenTest.

For API testing, because Java already has quite a few libraries that handle Web service tests, they went with the Apache HTTP client library.

Why Use Java Over, Say, Python?

One other important decision that Adrian had to make at the start of the project was which programming language they should use.

They ultimately chose to go with Java because it's a mature language; it's basically the “language of test automation.”

He went on to say that he knows different people have different opinions on that, but if you take a look on StackOverflow, I think you’ll find it's much easier to find answers and help if you're using the Java Language.

This is why they chose to go with Java. (For the record, I like Python. ☺)

Cross-Platform Automation Support

Another criterion for their framework was that it needed to be cross-platform and support as many devices and scenarios as possible.

If you look at the architecture of OpenTest, you'll find that there are very few test automation scenarios that are not supported. As long as a device can run Java, that device can be used as part of your distributed test—and that happens seamlessly.

This is why it's very straightforward to write a distributed test with OpenTest. And it’s just one of the unique features that set this tool apart from some other frameworks.

No Coding Skills

One of the claims of OpenTest is that it requires no coding skills.

This is achieved using a combination of actions (keywords) written in English and stored in a YAML file. This approach is similar to say, Gauge, by ThoughtWorks.

Here is an example of what an OpenTest script would look like:

Open Test Yaml

What the OpenTest Framework Supports

If you've read this far, you’d probably like to know what else OpenTest supports. This is the list that appears on their website:

  • Web testing leveraging Selenium WebDriver.
  • Mobile testing leveraging Appium
  • API testing with Apache HttpClient
  • Keyword driven testing
  • Parallel Testing
  • Distributed Testing
  • Data-driven testing
  • Extensible
  • Source control friendly
  • Cross-platform support

Getting Started with OpenTest

Currently, OpenTest has 130 stars on GitHub.

To get a feel for it, let’s see what it takes to get started running tests.

During installation, you get three main directories: The server, actor and a test-repo.

  • The server is used for the web interface where you can run and view test results:

OpenTest Server

  • The actor is a Java application used for running the test and communicating results to the server:

OpenTest Actor Command

OpenTest Actor In Server

  • The test-repo is a directory with some test example to get you started:

Open Test Test Repo

Once the server and actor are running you can begin your test session.

  • In the OpenTest server click on the Session> Create Session from Template.
  • Click on the Quick start tests option
  • Click the Create Session button
  • The test should run and pass.
  • Click on Quick start tests to view results

Open Test Start Tests Result

This should be enough to help you start experimenting.

Final Thoughts

If you have lots of tests that require executing across multiple machines, networks, and technologies, OpenTest might be worth checking out.

A bearded man with blue glasses and a black-and-white jacket smiles at a microphone in a studio setting.

About Joe Colantonio

Joe Colantonio is the founder of TestGuild, an industry-leading platform for automation testing and software testing tools. With over 25 years of hands-on experience, he has worked with top enterprise companies, helped develop early test automation tools and frameworks, and runs the largest online automation testing conference, Automation Guild.

Joe is also the author of Automation Awesomeness: 260 Actionable Affirmations To Improve Your QA & Automation Testing Skills and the host of the TestGuild podcast, which he has released weekly since 2014, making it the longest-running podcast dedicated to automation testing. Over the years, he has interviewed top thought leaders in DevOps, AI-driven test automation, and software quality, shaping the conversation in the industry.

With a reach of over 400,000 across his YouTube channel, LinkedIn, email list, and other social channels, Joe’s insights impact thousands of testers and engineers worldwide.

He has worked with some of the top companies in software testing and automation, including Tricentis, Keysight, Applitools, and BrowserStack, as sponsors and partners, helping them connect with the right audience in the automation testing space.

Follow him on LinkedIn or check out more at TestGuild.com.

  1. This is amazing Joe, loved it. There are lot of innovation happening in test automation space and this is the clear indication that companies prefer quality over speed if not both.

Comments are closed.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Exploring the Value of AI in Test Case Creation (Pros and Cons)

Posted on 03/10/2025

As testers, we're used to balancing test coverage with tight project deadlines. Right? ...

Solving the Top 6 Mobile Automation Challenges Fast (DevAssure Guide)

Posted on 02/27/2025

Are you tired of struggling with the mobile test automation setups? Does managing ...

Top Software Testing Conferences (2025 Guide)

Posted on 01/19/2025

Why a list of top software testing conferences? Many testers ask me what ...

Free Training: Supercharge Data Quality: Automate ETL & BI Testing with Agentic AI - Learn More >>