<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Seong JuWon</title>
    <description>The latest articles on DEV Community by Seong JuWon (@arkk).</description>
    <link>https://dev.to/arkk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1109790%2F653c2dad-ef6d-4696-a0e0-f98e14843cd1.jpg</url>
      <title>DEV Community: Seong JuWon</title>
      <link>https://dev.to/arkk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arkk"/>
    <language>en</language>
    <item>
      <title>Real Time Mobile UI Inspector - Alternative with Appium Inspector</title>
      <dc:creator>Seong JuWon</dc:creator>
      <pubDate>Thu, 29 Jun 2023 10:53:59 +0000</pubDate>
      <link>https://dev.to/arkk/real-time-mobile-ui-inspector-compare-with-appium-inspector-1nk</link>
      <guid>https://dev.to/arkk/real-time-mobile-ui-inspector-compare-with-appium-inspector-1nk</guid>
      <description>&lt;p&gt;When it comes to automating end-to-end testing for mobile apps, several widely used frameworks come to mind, including Appium, Espresso, XCTest, Robotium, and more. Appium stands out among them due to its unique advantage of supporting both Android and iOS platforms, making it a popular choice among developers. Moreover, Appium has introduced the Appium Inspector for desktop apps, which greatly enhances convenience by providing an easy way to identify UI elements on the device screen and enabling the creation of test scripts.&lt;/p&gt;

&lt;p&gt;Even Dogu, which has recently transitioned to open source, allows app testing using Appium. In this article, I will have a direct experience and briefly compare the Dogu Inspector, one of the features to be added in the upcoming update version 1.1.0, with the Appium Inspector!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dogu Inspector: &lt;a href="https://github.com/dogu-team/dogu" rel="noopener noreferrer"&gt;https://github.com/dogu-team/dogu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Appium Inspector: &lt;a href="https://github.com/appium/appium-inspector" rel="noopener noreferrer"&gt;https://github.com/appium/appium-inspector&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Dogu Inspector
&lt;/h2&gt;

&lt;p&gt;The Dogu Inspector enables real-time identification of UI elements within the device screen through the use of WebRTC technology on a web browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzttgn0wzqwzk6r0jr5wm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzttgn0wzqwzk6r0jr5wm.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb6ksvwwi5cifcjgajy90.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb6ksvwwi5cifcjgajy90.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1crrjr7ik14tg1fcigew.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1crrjr7ik14tg1fcigew.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adventages
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Game UI Support
&lt;/h4&gt;

&lt;p&gt;If your game project includes Gamium, Dogu Inspector allows you to switch to the Gamium context, regardless of the device platform, and browse game UI elements. This seems to be a necessary feature for game automation.&lt;/p&gt;

&lt;h4&gt;
  
  
  No Distance Limitation with Devices
&lt;/h4&gt;

&lt;p&gt;Dogu provides device farm functionality, allowing management of devices through a web browser and real-time screen streaming or remote control, even when the physical distance between the devices and the user is significant. The Dogu Inspector can be used without the device being physically nearby.&lt;/p&gt;

&lt;h4&gt;
  
  
  Easy Device Remote Control
&lt;/h4&gt;

&lt;p&gt;You can interact with the device screen by touching or dragging as if using the actual device, using the mouse on the streaming screen. Furthermore, key inputs can also be sent as if using a physical keyboard, making it easy to manipulate the device.&lt;/p&gt;

&lt;h4&gt;
  
  
  Low Learning Curve
&lt;/h4&gt;

&lt;p&gt;Although Dogu Inspector internally utilizes Appium, users can use the Inspector without any knowledge of Appium. Therefore, if the device is connected to Dogu without the need for configuring Appium capabilities, Appium server, etc., you can immediately use the Inspector.&lt;/p&gt;

&lt;h3&gt;
  
  
  Drawbacks
&lt;/h3&gt;

&lt;h4&gt;
  
  
  iOS Initial Setup
&lt;/h4&gt;

&lt;p&gt;When installing Dost on macOS, there is a part where you need to manually perform initial setup for connecting iOS devices to the Dogu device farm, following the instructions provided. It would be great to improve this process, making it easier to use iOS devices after completing Signing &amp;amp; Build using XCode. (This aspect of Apple's setup is always a bit disappointing.. 🥲)&lt;/p&gt;

&lt;h4&gt;
  
  
  UI Tree View UI/UX
&lt;/h4&gt;

&lt;p&gt;The Dogu Inspector also has a tree view for displaying UI elements on the device, but there are still many areas that need improvement. Transforming the UI like XML format and further enhancing the functionality during Inspector usage would be beneficial.&lt;/p&gt;

&lt;h2&gt;
  
  
  Appium Inspector
&lt;/h2&gt;

&lt;p&gt;Appium Inspector allows capturing the device screen on a desktop app and provides the ability to analyze the UI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frnk4shlw3pj1oo65t4gh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frnk4shlw3pj1oo65t4gh.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fca5jpwvriy7ffbm0szym.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fca5jpwvriy7ffbm0szym.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Recording and Script Generation
&lt;/h4&gt;

&lt;p&gt;Appium Inspector offers a recording feature that allows you to browse the UI, interact with the device, and generate scripts automatically. It supports various languages such as JavaScript, Python, etc., making it easy and fast to create scripts.&lt;/p&gt;

&lt;h4&gt;
  
  
  Easy iOS Setup
&lt;/h4&gt;

&lt;p&gt;To use an iOS device, you can start right away with just the XCode Team ID. By adding it to the Appium capabilities and starting a session, the app will be built, installed, and launched. Since the Inspector functionality is the main focus, it was relatively easier to get started compared to Dogu Inspector.&lt;/p&gt;

&lt;h4&gt;
  
  
  Various Device Commands
&lt;/h4&gt;

&lt;p&gt;The Command menu provides many functionalities. Although the supported features may vary slightly across platforms, there are capabilities to uninstall apps, open apps, manipulate network menus, transfer files, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Drawbacks
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Learning Curve
&lt;/h4&gt;

&lt;p&gt;When I initially tried to use Appium Inspector, I found myself reading a lot of Appium documentation and troubleshooting articles related to environment variables. I also had some experiences where the Inspector did not function correctly due to incorrect Capabilities input, causing it to misunderstand UI elements. Using Appium Inspector requires a bit of study and understanding of Appium.&lt;/p&gt;

&lt;h4&gt;
  
  
  Challenging UX for Device Remote Control
&lt;/h4&gt;

&lt;p&gt;Performing actions like touching or dragging on the device screen required pressing certain buttons before execution. Similarly, sending key inputs required selecting UI elements, entering input in the input field, and pressing the send button. These steps felt cumbersome in the user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33clf2fmsw0qo2bh5gmm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33clf2fmsw0qo2bh5gmm.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapped up
&lt;/h2&gt;

&lt;p&gt;After trying and summarizing the two inspectors briefly, Dogu Inspector has the advantages of supporting game apps, having a low learning curve, and no limitation on device distance. On the other hand, Appium Inspector has advantages such as recording and scripting capabilities and various device commands.&lt;/p&gt;

&lt;p&gt;As expected, Appium, being an open-source project with long-term maintenance, offers many convenient and excellent features like recording and various device control commands. We, at Dogu, should continue updating and filling the gaps in features that are not yet supported in the Appium Inspector, taking them as benchmarks for improvement.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dogu Inspector: &lt;a href="https://github.com/dogu-team/dogu" rel="noopener noreferrer"&gt;https://github.com/dogu-team/dogu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Appium Inspector: &lt;a href="https://github.com/appium/appium-inspector" rel="noopener noreferrer"&gt;https://github.com/appium/appium-inspector&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mobile</category>
      <category>ui</category>
      <category>qa</category>
      <category>opensource</category>
    </item>
    <item>
      <title>All In One Test Automation Infra - Open-Source</title>
      <dc:creator>Seong JuWon</dc:creator>
      <pubDate>Thu, 29 Jun 2023 07:19:55 +0000</pubDate>
      <link>https://dev.to/arkk/new-test-automation-platform-open-source-423l</link>
      <guid>https://dev.to/arkk/new-test-automation-platform-open-source-423l</guid>
      <description>&lt;p&gt;Have you ever used following these infra tools for test automation?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selenium Grid&lt;/li&gt;
&lt;li&gt;Open STF&lt;/li&gt;
&lt;li&gt;Appium Inspector&lt;/li&gt;
&lt;li&gt;Jenkins&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Combining infra tools for test automation is complicated and decentralized so it makes hard to maintain infra.&lt;br&gt;
Also decentralized tools make users confuse and decrease productivity.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;So, I am developing All In One solution - Dogu&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AiPMIknP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qinitn5ecx3w5cqh8vgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AiPMIknP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qinitn5ecx3w5cqh8vgg.png" alt="Image description" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Dogu
&lt;/h2&gt;

&lt;p&gt;Dogu provides device farm, workflow, test report for test automation based on web.&lt;br&gt;
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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Dogu
&lt;/h2&gt;

&lt;p&gt;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.&lt;br&gt;
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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dogu Provides following features now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  device farm
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Manage device farm through dashboard&lt;/li&gt;
&lt;li&gt;Control host and device remotely&lt;/li&gt;
&lt;li&gt;Support many platform devices (Android, iOS, Windows, MacOS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vKIR0UE7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwu1f05xdnj0uno6z89e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vKIR0UE7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwu1f05xdnj0uno6z89e.png" alt="Image description" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EuKUVDDh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7enttvyu93g2vmkxpiq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EuKUVDDh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7enttvyu93g2vmkxpiq.gif" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_VySAreI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wvagcwaed066jqcd8kw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_VySAreI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wvagcwaed066jqcd8kw.gif" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  UI Inspector
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Inspect native UI&lt;/li&gt;
&lt;li&gt;Inspect UI of game developed by Unity Engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K8uAgkNp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uau3kt62gq7a1hl0pfvf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K8uAgkNp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uau3kt62gq7a1hl0pfvf.gif" alt="Image description" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z_L8CqL5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33dbppwixilc89jsr9v0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z_L8CqL5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33dbppwixilc89jsr9v0.gif" alt="Image description" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m0543muW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcbwc6zdby1kmg3mdc2y.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m0543muW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcbwc6zdby1kmg3mdc2y.gif" alt="Image description" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Workflow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Run test script on tartgeted multiple devices&lt;/li&gt;
&lt;li&gt;Integrate workflow with your CI/CD like Jenkins, Github Action (Not yet supported)&lt;/li&gt;
&lt;li&gt;Import test script from Gitlab, Github (Not yet supported)&lt;/li&gt;
&lt;li&gt;Parallel test execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CJeTdp4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd5sl2fqlymp8z0sedca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CJeTdp4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd5sl2fqlymp8z0sedca.png" alt="Image description" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Report
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Visualized test result (test unit)&lt;/li&gt;
&lt;li&gt;Recorded video&lt;/li&gt;
&lt;li&gt;Profiled device (memory, cpu, fps)&lt;/li&gt;
&lt;li&gt;Log (test script, device, application)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fYAtPCZU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzqi9avc9l9wbkqnascq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fYAtPCZU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzqi9avc9l9wbkqnascq.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2QNmWUnW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ftki6oq085gyoraur8a6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2QNmWUnW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ftki6oq085gyoraur8a6.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AdIEfTnV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2vu90h3v5siul5m9pe8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AdIEfTnV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2vu90h3v5siul5m9pe8.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Test Script Execution Flow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Uploaded Test Script Execution By Workflow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---5NYTtUd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94tpomafj65c4k8e6eai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---5NYTtUd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94tpomafj65c4k8e6eai.png" alt="Image description" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local Test Script Excution By Relay Hub
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zROPSy7y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s7bzw9p6owf00kjvphav.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zROPSy7y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s7bzw9p6owf00kjvphav.png" alt="Image description" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In contrast to uploaded test script execution, you can run test script existing in local through relay hub on device farm&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The integrating frameworks are as follows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Framework
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Browser
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;li&gt;Playwright&lt;/li&gt;
&lt;li&gt;Puppeteer&lt;/li&gt;
&lt;li&gt;Cypress&lt;/li&gt;
&lt;li&gt;Webdriverio&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Mobile
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Appium&lt;/li&gt;
&lt;li&gt;Webdriverio&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Game
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Gamium&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Test Unit Framework
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Jest&lt;/li&gt;
&lt;li&gt;Pytest&lt;/li&gt;
&lt;li&gt;TestNG&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;Dogu is open source under licensed AGPL v3.0. also provides self-hosted docker image.&lt;/p&gt;

&lt;p&gt;See more detail on &lt;a href="https://github.com/dogu-team/dogu"&gt;Github&lt;/a&gt; and join us on our &lt;a href="https://discord.com/invite/bVycd6Tu9g"&gt;Discord&lt;/a&gt;channel for questions, discussions, and to meet the rest of the community!&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>opensource</category>
      <category>tool</category>
    </item>
  </channel>
</rss>
