All In One Test Automation Infra - Open-Source
Tags: testing, qa, opensource, tool
Published: 2023-06-29 07:19:55

Have you ever used following these infra tools for test automation?
* Selenium Grid
* Open STF
* Appium Inspector
* Jenkins

Combining infra tools for test automation is complicated and decentralized so it makes hard to maintain infra.
Also decentralized tools make users confuse and decrease productivity.

Services such as Browser Stack solve this problem, but since they only support cloud services, there is a problem that is impossible with an on-premise method.

So, I am developing All In One solution - Dogu

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qinitn5ecx3w5cqh8vgg.png)

## What is Dogu
Dogu provides device farm, workflow, test report for test automation based on web.
If you use Dogu then you don't need to set up platform like jenkins, device farm, test report for test automation and can focus on your test with Dogu.

## Why Dogu
It needs so many time and effort to build and maintain infrastructure like Appium, OpenSTF, Jenkins, Grafana for test automation. Dogu provides integrated platform for these infrastructure and helps you to focus on test automation.
Especially, Dogu is tightly integrated with test script and test framework so that you can focus on test automation without developing infrastructure related works like parallel test execution, data transfer for test report.

## Dogu Provides following features now

### device farm
* Manage device farm through dashboard
* Control host and device remotely
* Support many platform devices (Android, iOS, Windows, MacOS)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwu1f05xdnj0uno6z89e.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7enttvyu93g2vmkxpiq.gif)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wvagcwaed066jqcd8kw.gif)

### UI Inspector
* Inspect native UI
* Inspect UI of game developed by Unity Engine

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uau3kt62gq7a1hl0pfvf.gif)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33dbppwixilc89jsr9v0.gif)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcbwc6zdby1kmg3mdc2y.gif)


### Workflow
* Run test script on tartgeted multiple devices
* Integrate workflow with your CI/CD like Jenkins, Github Action (Not yet supported)
* Import test script from Gitlab, Github (Not yet supported)
* Parallel test execution


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd5sl2fqlymp8z0sedca.png)

### Test Report
* Visualized test result (test unit)
* Recorded video
* Profiled device (memory, cpu, fps)
* Log (test script, device, application)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzqi9avc9l9wbkqnascq.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ftki6oq085gyoraur8a6.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2vu90h3v5siul5m9pe8.png)

## Test Script Execution Flow

### Uploaded Test Script Execution By Workflow
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94tpomafj65c4k8e6eai.png)

Dogu Agent helps you to run test script on your device farm. Especially, Dogu Agent is tightly integrated with test script and test framework so that you can focus on test automation without developing infrastructure related works like, target device for test execution, parallel test execution, pulling test script.

### Local Test Script Excution By Relay Hub

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s7bzw9p6owf00kjvphav.png)

In contrast to uploaded test script execution, you can run test script existing in local through relay hub on device farm

## Roadmap
Currently, only device farm functions are supported, but in the future, Test Framework and Test Unit Framework will be integrated with Dogu to be used.

The integrating frameworks are as follows.

### Test Framework
#### Browser
* Selenium
* Playwright
* Puppeteer
* Cypress
* Webdriverio

#### Mobile
* Appium
* Webdriverio

#### Game
* Gamium

### Test Unit Framework
* Jest
* Pytest
* TestNG

## Open Source
Dogu is open source under licensed AGPL v3.0. also provides self-hosted docker image.

See more detail on [Github](https://github.com/dogu-team/dogu) and join us on our [Discord](https://discord.com/invite/bVycd6Tu9g)channel for questions, discussions, and to meet the rest of the community!