My little Test Center by Przemysław Jagodziński

„I’m tired of the same old things” – once said a famous Austrian actor in his film debut. I said to myself the same thing after creating another framework for test automation and decided to do some extra work for the project. This is an overview of my Little Test Center I once created.

My little Test Center by Przemysław Jagodziński
Figure 1: An architecture of Test Center including integration with Jenkins

Web App Dashboard

The starting point of my Test Center is Web App Dashboard (Figure 1). It is a simple Rest API written in Python Flask framework together with an even simpler UI with some Javascript. The UI of dashboard contains three sections:

  • The first one is the result of automated tests (Figure 2). These are injected from Jenkins to the Dashboard allure reports. Currently the dashboard presents results of web tests, web api tests, android tests, iOS tests, and mobile api tests.
  • The next section is called Bugs Manager (Figure 3). It allows users to control the number of bugs. Obviously we can use tools like Jira to report bugs, but this Bugs Manager is for reporting ad hoc bugs, which should be fixed quickly, not thrown to the backlog and forgotten.
  • At the bottom of the dashboard is an API performance monitor (Figure 4). I created one additional automated test which pings endpoints and saves response times to the MongoDB. The diagram shows only data from one last week because it takes too much time to plot them all and it is not readable.
My little Test Center by Przemysław Jagodziński
Figure 2: Automated Tests Results
Figure 3: Bugs Manager
My little Test Center by Przemysław Jagodziński
Figure 4: API Performance Monitoring

Framework for Tests Automation

Test Automation Framework (Figure 5) allows users to write automated tests in Gherkin natural language using predefined test steps. The entire framework is written in Kotlin and uses several components like Selenium, Appium, RestAssured etc. Using this framework users can create automated tests for Web, Web API, Android, iOS, Mobile API and additional for API performance monitoring. Tests are executed in Jenkins using scheduled jobs.

Here it is important to mention that mobile tests can be executed on physical devices. For this purpose I set up an STF farm of devices.

My little Test Center by Przemysław Jagodziński
Figure 5: An architecture of testing framework

Android App Dashboard

For very busy QA’s I created an android version of a Dashboard (Figure 6). It is a native app which allows users to monitor tests results, performance etc., even while making coffee. It uses the same endpoints and html templates as Web App Dashboard.

Figure 6: Android App Dashboard
Figure 6: Android App Dashboard

Summary

The development of Testing framework and Test Center itself took about 2 months. During that time I learned a bit of Kotlin and Android development, some useful tools like firebase or STF and plotting libraries in python. I recommend all of QA’s to think outside the box and do some extra work, you will definitely enjoy it.

Want to become a part of #espeocrew? Check our current job offers and apply!

How can we help you start your new digital project?
You can select more than one answer.
Are you looking for any particular skills?
You can select more than one answer.
Let us know, how we can reach you
* Required fields