Wednesday, October 14, 2015
Mobile Labs has just introduced deviceBridge, a new extension to our deviceConnect™ real mobile device cloud. With deviceBridge, many test automation frameworks and many developer tools used for checkout and debugging can retain cloud-based devices as if locally connected by USB. For such tools, deviceBridge serves as a “virtual USB cable” connecting cloud-based device(s) to a local laptop or server. From the point of view of such tools, a cloud-based device appears physically attached. In reality, deviceBridge communicates with a deviceConnect server over Ethernet (LAN or WAN) to reach the cloud-based device.
We believe deviceBridge can help developers who need rapid access to multiple devices for app checkout and debugging. As it does for test engineers and support personnel, deviceConnect reduces or eliminates the need to manually share devices. Collaboration among teams is facilitated through screen sharing, making it possible in real time for engineers in multiple geographies to see what is happening with an app or a device. Using Xcode, developers can connect to cloud-based devices to run interactive debug sessions or to view crash logs to assist in problem determination. It’s worth noting that deviceBridge also retains the option to use any device actually connected by USB to a client system. When deviceBridge is started, the desired cloud-based devices are added to the inventory of any locally-attached devices for applications such as Appium server, Calabash, Xcode, and iTunes.
We’ll make several posts discussing how deviceBridge works and how we think it can assist software engineers and test engineers to take advantage of cloud-based device access, management, inventory, and scheduling. In this post, we’ll illustrate how deviceBridge and Appium work together to take advantage of real, cloud-based deviceConnect devices.
An Appium Server is the heart of the Appium automation framework and can run on Windows or Apple Mac (Mac OS X) systems. Any Appium server can test using Android-based real devices. Only Apple OS X systems can be used, however, to test real iOS devices.
A typical Appium server with a USB-attached device
The Appium open-source project is founded on four principles designed to make it easy to test apps and to promote the widest possible use of standards. The Appium website spells these out, but the intent of the philosophy is to use standards to enable many languages and tools and to preserve investments.
We feel that the best way to honor the Appium philosophy is to fully support an unmodified Appium code base while enabling cloud-based device access. Therefore, deviceBridge “bridges” a connection between an OS X Appium server and a deviceConnect cloud device, leaving existing Appium servers and automation scripts unchanged. deviceBridge does not create interdependencies that might delay customer adoption of Appium patches or releases.
deviceBridge and deviceConnect can “cut the (USB) cable,” allowing an OS X Appium server to run tests on any deviceConnect cloud-based device. The Appium server contacts a deviceConnect server over Ethernet (LAN or WAN) where it receives transparent access to a deviceConnect device. Historically, an Appium server has been able to test on one real device at a time and has been limited to selecting from one of the devices physically attached to the server’s USB ports.
Data between the Appium server and the device is carried over Ethernet, increasing server utilization and reducing the number of servers needed. Since devices no longer need to be dedicated to specific Appium servers, tests may not have to wait on a server to become available in order to get access to a desired type of device. If the desired device type is available in the cloud, it can be retained by any idle Appium server and the test can proceed.
Appium servers can select any deviceConnect device
If you’re testing on iOS devices, you’ll need to run Apple OS X systems for Appium servers to test on real devices, whether they are locally-attached or sourced from a deviceConnect real device cloud. Requirements are specified on the Appium website. The developers recommend minimums for OS X 10.9, Xcode, the iOS software development kits, and certain settings and authorizations.
The key element in planning the adoption of Appium is that the only way to run tests on real iOS devices is to run Appium server on an Apple OS X (Mac) server. Libraries needed to access iOS devices are only available on OS X, making it the only operating system that can be used to run Appium scripts on real mobile devices, regardless of whether those devices are plugged into the USB ports or obtained through the device cloud.
Appium servers support both the Android and iOS simulators, but most customers will probably be interested in using real devices.
The Appium open source project (Appium.io) supports using the Appium.exe client on Windows. But Windows cannot test iOS apps on real devices because Appium requires some Apple Mac software (Xcode and Instruments that run only on Mac OS X). The solution recommended by the Appium open source project is to use the Remote Server option to connect to an Apple Mac running an Appium server.
The first release of deviceBridge supports iOS devices. Mobile Labs will add Android device support in the near future. deviceBridge is a separately licensed extension to deviceConnect. For more information, contact the Mobile Labs’ sales team.