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

Introduction to TestProject

This blog post provides an introduction to TestProject framework. After we have finished this blog post, we:

  • Know what TestProject is.
  • Can identify the key features of the TestProject framework.
  • Are familiar with the architecture of the TestProject framework.

Let’s begin.

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

What Is TestProject?

TestProject is a test automation framework which allows us to create automated tests for both web and mobile applications. Its key features are:

  • We can write test cases by using the TestProject SDK or record them by using an in-browser recorder. Both of these options allow us to create test cases for web and mobile applications.
  • At the moment the TestProject SDK has a Java API. In the future, it will provide native APIs for the following programming languages: C# (.NET Core), Groovy, Javascript, and Python.
  • We can create tests for mobile devices which use either Android or iOS operating system.
  • Because the TestProject framework uses Selenium, it supports all major web browsers.
  • We can use Windows, Linux or macOS operating system when we create and run tests with the TestProject framework.
  • We can write addons by using the TestProject SDK, and use them from the in-browser recorder or in our test classes. We can also share useful addons with other TestProject users or team members, and use addons published by the other members of the TestProject community.
  • The app.testproject.io website allows us to manage our tests, share them with our team members, and investigate different test reports.
  • The app.testproject.io website has a REST API which allows us to integrate our tests with our existing continuous integration workflow.

Next, we will take a closer look at the architecture of the TestProject framework.

The Architecture of the TestProject Framework

Before we can understand the architecture of the TestProject framework, we have to take a quick look at its data model and identify the key components of the TestProject platform.

Like any non-trivial application, the TestProject framework has a somewhat complex data model. Luckily, at the moment we have to understand the relationship between these three components:

  • A project is a collection of test cases.
  • A test case (aka a test class) helps us to ensure that the system under test is working as expected. If we write a test class by using the TestProject SDK, a test class must always implement an interface which identifies the platform that runs our test case. Also, we should know that the app.testproject.io website represents tests as test packages because one test package (aka a jar file) can contain multiple test cases.
  • An addon provides useful features to test cases. For example, an addon might clear all fields of a form or log a user in to the tested website. Our test cases can use our own addons and addons published by other community members. An addon class must implement an interface which identifies the target platform of the addon (Android, iOS, or web). This interface is provided by the TestProject SDK.

The following figure illustrates the relationship between these elements:

The key components of the TestProject platform are:

First, when we want to write tests or addons with the TestProject framework, we have to use the TestProject SDK. It provides the infrastructure that allows us to write automated tests for mobile and web applications. Also, because it supports the standard Selenium and Appium APIs, we don’t have to learn new APIs if we want to write tests for web or mobile applications.

Second, the app.testproject.io website allows us to manage our projects, test cases, and addons. We can create new projects, add test cases to our projects, create scheduled jobs that run our test cases, and run our test cases on-demand. We can also publish our addons and share them with our team members or with all users of the TestProject framework.

Third, the TestProject agent can run on any computer as long as its operating system is supported by the TestProject framework. The TestProject agent communicates with the app.testproject.io website, and it has two key features:

  • It can run Android, iOS, and web tests. The TestProject agent can run all executed tests on a real mobile device, on an emulator that emulates a mobile device, or on a real web browser.
  • It gives us the possibility to record test cases by using a real mobile device, an emulator, or a real web browser. After we have recorded our test cases, we can publish the recorded test cases on the testproject.io website.
The person who runs the TestProject agent on her computer can run the tests of all projects which are visible to her user account. In other words, the person who runs the tests is not necessarily the same person who recorded or wrote them. This means that we can collaborate with people who live in different locations.

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

We can now identify the key features of the TestProject framework, and we are familiar with its architecture. Let’s summarize what we learned from this blog post.

Summary

This blog post has taught us six things:

  • TestProject is a test automation framework which allows us to create automated tests for both web and mobile applications.
  • The TestProject framework supports the most common mobile operating systems (Android and iOS) and all major web browsers.
  • We can write test cases by using the TestProject SDK or record them by using an in-browser recorder.
  • After we have published our tests on the app.testproject.io website, all members of our organization can run them. This makes it easier to collaborate with people who live in different geographical locations.
  • We can share useful addons with the other users the TestProject framework and use addons published by them.
  • We can integrate our tests with our existing continuous integration workflow by using the REST API provided by the app.testproject.io website.
1 comment… add one

    Leave a Comment