This post is translated to English from original post.

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.

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!

GitHub - dogu-team/dogu: Dogu is testing platform for test automation. Includes device farm, workflow, testing report features for test automation.
Dogu is testing platform for test automation. Includes device farm, workflow, testing report features for test automation. - GitHub - dogu-team/dogu: Dogu is testing platform for test automation. I…
GitHub - appium/appium: Cross-platform automation framework for all kinds of your apps built on top of W3C WebDriver protocol
Cross-platform automation framework for all kinds of your apps built on top of W3C WebDriver protocol - GitHub - appium/appium: Cross-platform automation framework for all kinds of your apps built…

Dogu Inspector

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

First, here are the prerequisites before getting started:

  1. Get started the device farm
  2. Configuring Dost
android inspecting
ios inspecting
gamium inspecting

Dogu Inspector: Android, iOS, Gamium video captures

Adventages

Game UI Support

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.

No Distance Limitation with Devices

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.

Easy Device Remote Control

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.

Low Learning Curve

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.

Drawbacks

iOS Initial Setup

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 & Build using XCode. (This aspect of Apple's setup is always a bit disappointing.. 🥲)

UI Tree View UI/UX

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.

Appium Inspector

Appium Inspector allows capturing the device screen on a desktop app and provides the ability to analyze the UI.

To run Appium Inspector, the following steps are required, as referenced from the Appium documentation website:

  1. Install Appium and the necessary drivers (uiautomator2 , xcuitest) & Start the Appium server.
  2. Install Appium Inspector & Configure the capabilities.

Appium Inspector: Android, iOS video captures (iOS is stuck in infinite loading...)

Advantages

Recording and Script Generation

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.

Easy iOS Setup

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.

Various Device Commands

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.

Drawbacks

Learning Curve

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.

Challenging UX for Device Remote Control

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.

Summary

Dogu Inspector Appium Inspector
Environment Web browser (Web-based) Desktop app
Supported platforms Android, iOS Android, iOS
Operation method Real-time screen UI Screenshot-based screen UI
Game UI support Supported with Gamium ✅ Not supported ❌
Device remote control ✅ / Easy UX ✅ / Various commands
Recording and scripting
Distance from devices No limitation Directly connected devices
Learning curve Low Moderate

Wrapped up

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.

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.