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.
By the way, you might want to read the other parts of my TestProject tutorial.
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.
- 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 is a collection of actions which provide useful features to test cases. For example, an action 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 action 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 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.
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.