Are you tired of writing tests which have a lot of boilerplate code? If so, get started with Spock Framework >>

Introduction to TestProject OpenSDK

This blog post provides an introduction to the TestProject OpenSDK. After you have read this blog post, you:

  • Know what TestProject OpenSDK is.
  • Can identify the benefits of using the TestProject OpenSDK.
  • Understand how the TestProject OpenSDK works.
  • Know what are the main differences between the TestProject SDK1 and the TestProject OpenSDK.

Let’s begin.

This blog post is the first part of my TestProject OpenSDK tutorial that’s sponsored by TestProject.io. However, the views and opinions expressed in this tutorial are mine.

By the way, you might want to read the other parts of my TestProject OpenSDK tutorial.

What Is TestProject OpenSDK?

TestProject OpenSDK is a free test automation platform for web applications, HTTP APIs, and mobile applications. Its key features are:

  • At the moment the TestProject OpenSDK supports C#, Java, and Python programming languages.
  • The TestProject OpenSDK is completely open source, and you can use it in your project as long as you are using a build tool which supports Maven dependencies, NuGet packages, or PyPI packages.
  • The TestProject OpenSDK is 100% compatible with Selenium and Appium APIs.
  • You can write tests which use the TestProject OpenSDK by using any test automation framework which allows you to configure, write, and run automated tests. Some examples of such frameworks include JUnit, TestNG, pytest, and MSTest.
  • The TestProject OpenSDK provides automatic test reports in HTML and PDF formats, and the TestProject dashboard allows you to view your test execution history and share it with your team members. Also, you can access this information by using a RESTful API.
  • TestProject provides MacOS, Windows, and Linux versions of the TestProject agent. Also, you can download a Docker container which runs the TestProject agent.

Next, you will learn how the TestProject OpenSDK works.

How Does the TestProject OpenSDK Work?

When you want to understand how the TestProject OpenSDK works, you have to understand the roles and responsibilities of these components:

  • The test automation framework provides the APIs which allow you to configure your test cases and identify the invoked test methods. It’s also responsible of running your tests.
  • A test class configures the TestProject OpenSDK and contains the test cases which use the TestProject OpenSDK API.
  • The TestProject OpenSDK wraps the native Selenium and Appium APIs, and communicates with the TestProject agent.
  • The TestProject agent detects the type and version of the installed browser and compares this information with the default web driver which is bundled with the TestProject agent. If an update is needed, the TestProject agent downloads the correct web driver version and uses the downloaded web driver. When you run your tests, the TestProject agent communicates with the system under test by following the instructions given by the TestProject OpenSDK and sends test execution data to the TestProject platform.
  • The TestProject reporting dashboard allows you to view the test reports and test execution history which are generated from the test execution data sent by the TestProject agent.

The following figure illustrates the roles and responsibilities of these components:

Let’s move on and find out why you should consider using the TestProject OpenSDK.

The Benefits of Using the TestProject OpenSDK

You should consider using the TestProject OpenSDK because it has these benefits:

  • The TestProject OpenSDK provides an API which allows you to write the “core logic” of your test cases, but it doesn’t specify how you run your tests. In other words, you can easily integrate the TestProject OpenSDK with any test automation framework which allows you to configure, write, and run automated tests. This means that you can use your favorite framework for running your automated tests. Also, you can use any assertion library as long as it’s supported by the test automation framework which runs your tests.
  • Because the TestProject OpenSDK is 100% compatible with both Selenium and Appium APIs, it doesn’t create a vendor lock-in. It’s easy to modify to your existing tests to use the TestProject OpenSDK AND it’s just as easy to modify your tests to use the “native API”. This has three benefits:
    • It’s easy to evaluate if migrating your existing tests to use the TestProject OpenSDK is worth it. You can simply change the import statements (more about this later) and you are ready to evaluate the TestProject OpenSDK.
    • It’s easy to migrate a test case to use the “native API” if you have to do so for some reason. Again, the only thing that you have to do is to change the import statements and your test is using the “native” API.
    • It’s easy to debug bugs found from the testing tools because you can switch between the APIs (OpenSDK and “native”) by simply changing the import statements.
  • If you are familiar with Selenium and/or Appium APIs, you don’t have to learn any new APIs.
  • It’s easy to get the required TestProject OpenSDK, Selenium, and Appium dependencies. You can get the TestProject OpenSDK dependency by adding it as a dependency of your build, and the TestProject agent provides the Appium and Selenium dependencies for you. This ensures that:
    • All dependencies are compatible with each other.
    • You can update the Selenium and/or Appium versions by simply updating the TestProject agent.
  • You can run the TestProject agent by using your favorite operating system. TestProject provides MacOS, Windows, and Linux versions of the TestProject agent. If you are using some other operating system, you can download a Docker container which runs the TestProject agent.
  • You get very versatile test reports “for free”. You don’t have to do anything because these reports are automatically generated by the TestProject OpenSDK.
  • You can run your automated tests without uploading them to the TestProject platform.
  • The TestProject OpenSDK is open source and its source code is available on Github. This has three major benefits:
    • If you run into a problem you cannot solve, you can always read the source code of the TestProject OpenSDK as a last resort, and see if that helps you to solve your problem.
    • It’s easy to debug the TestProject OpenSDK because the source code isn’t obfuscated.
    • Bugs are fixed by both the TestProject team and the community.
  • TestProject OpenSDK supports two different CI pipelines:
    • You can upload your tests to the TestProject platform and leverage its CI pipeline. This is a good option if you need a CI pipeline, but you don’t need the flexibility provided by third party CI tools.
    • If you need maximum flexibility, you can integrate TestProject OpenSDK with a third party CI tool.

Next, you will learn to identify the differences between the TestProject SDK1 and the TestProject OpenSDK.

Comparing the TestProject SDK1 With the TestProject OpenSDK

From a developer’s point of view, the key differences between the TestProject SDK1 and TestProject SDK are:

SDK 1 OpenSDK
Closed source. Open source.
Must be downloaded from the TestProject website. Is available as a Maven dependency, a NuGet package, or a PyPI package.
Isn’t easy to integrate with a 3rd party testing framework. Is easy to integrate with a 3rd party testing framework.
Vendor lock-in. No vendor lock-in.
Running tests with test reports requires uploading them to TestProject platform. Running tests with test reports doesn’t require uploading them to TestProject platform.
The TestProject documentation contains an article which provides additional information about the features and differences of the TestProject SDK1 and the TestProject OpenSDK.

Let’s summarize what you learned from this blog post.

Summary

This blog post has taught you six things:

  • TestProject OpenSDK is a free test automation platform for web applications, HTTP APIs, and mobile applications.
  • At the moment the TestProject OpenSDK supports C#, Java, and Python programming languages.
  • The TestProject OpenSDK is 100% compatible with Selenium and Appium APIs.
  • The TestProject OpenSDK provides automatic test reports in HTML and PDF formats, and it has a reporting dashboard which allows you to view your test execution history.
  • It’s very easy to integrate the TestProject OpenSDK with a third party test automation framework such as JUnit.
  • You can use the CI pipeline of the TestProject platform or you can create your own CI pipeline from the scratch by using a third party CI tool.
0 comments… add one

Leave a Comment