Using AltTester® can be a seamless experience for those who are accustomed to Appium framework, thanks to the various similarities that these two tools share. In this article, we’ll compare the most common features between these tools, with the aim of assessing how recognizable the entire process of using AltTester® is for testing applications built in Unity. We will discuss similarities at the interface level, as well as parallels at the code level between the two tools.
Let’s explore the ease of using AltTester® if you are already familiar with Appium!
Overview of Appium 2.0
Appium is a mobile application testing framework with clients available in Java, JavaScript, C#, Python, and Ruby. Utilizing the W3C Protocol, it establishes a standardized communication interface between clients and Appium server.
Appium 2.0 includes a Desktop Server for coordination, platform-specific drivers for device communication, optional plugins for extended functionality, and an Inspector tool for efficient UI element inspection during test script development. This comprehensive framework streamlines the automation of mobile app testing across various platforms.
Overview of AltTester® 2.0.*
The clients available for AltTester® (Java, C#, Python) use websockets to communicate with AltServer, located within AltTester® Desktop. Upon receiving commands via websockets, AltServer forwards the commands to AltTester® Unity SDK (which is a Unity Plugin used for instrumenting the application), and then sends the responses back.
For additional information and diagrams illustrating the AltTester® connection, please refer to the official AltTester® documentation link.
Similar User Interfaces | Appium Inspector vs. AltTester® Desktop
When looking at both applications at the interface level, the small screen on the left displays the application running on the emulator or device.
The search for element window allows searching by ID, XPath, Name, Class:
Both interfaces offer the possibility to select the elements or tap on them:
Start recording option
The Recorder feature in AltTester® Desktop application is a mode through which you can generate automated tests by simply navigating and recording actions in the application.
The actions performed in the game window (in the Inspector) are translated into code (in the chosen programming language – Java, C#, Python) for automating the corresponding action.
Furthermore, it is also possible to include assertions for property values. The translated code can be easily copied with a single click on the copy button and used later in the test file.
Read more about the Recorder, Support for WebGL, and other architectural changes by accessing this link.
In the middle area, you can find that the elements are visible in the page.
Once an element is selected, you can see in the right window info about that element.
Connection and Code Usage | AppiumDriver vs. AltDriver
Connection to an external server
In both cases, for writing and executing tests using altDriver or a driver from Appium, the driver connects to an external server (AltDriver connects to AltServer and AppiumDriver connects to Appium Server). Furthermore, the server establishes a connection with the device (with the application).
An important difference is that AppiumServer connects to the application, while in AltTester®, the SDK initializes the connection from the application to AltServer.
AltServer is located within AltTester® Desktop. Therefore, to keep the server running, it is necessary for the Desktop application to be launched in GUI or batch mode in order to establish the connection between the tests and the application under test.
1. Similar specific methods for objects
There are a few similar methods specific to each driver that can be used in order to interact with the found objects.
Appium API methods | AltTester® Unity SDK API methods |
---|---|
Find Element / Find Elements | FindObject / Find Objects |
Click | Click |
GetText | GetText |
GetLocation | GetScreenPosition |
Here you can find more Appium API methods and AltTester Unity SDK API methods.
2. General actions
Both AppiumDriver and AltDriver have general methods, depending on the context. Here is a list of context methods specific to AppiumDriver and here it is for AltDriver.
Examples of similar methods
Appium API methods | AltTester® Unity SDK API methods |
---|---|
PressKeycode | PressKey |
Scroll | Scroll |
Swipe | Swipe |
Get Window Size | GetApplicationScreenSize |
Try to use them together!
Although everything mentioned earlier serves the purpose of comparison, Appium and AltTester® work well together. They can be effectively used together in testing applications built in Unity (because currently AltTester® is Unity-specific).
Here is an example we have created that shows how to integrate Appium and AltTester® for testing the TrashCat app on Android. This example is written in Python.
Conclusion
In conclusion, utilizing AltTester® tool (starting from inspecting the application using AltTester® Desktop to writing tests with AltDriver) is a straightforward process if you are already familiar with using Appium toolkit. Moreover, these two frameworks complement each other seamlessly in testing a Unity-instrumented application. While there are differences, particularly in architecture, the fundamental concept of usage remains the same.