OpenTable is the leading provider of real-time online restaurant-reservations. It lets anyone book tables for free at more than 32,000 restaurants, in seven countries and counting, and in as much time as it takes to read this sentence.
Boasting a slick and very user-friendly interface (which has gotten then a rating of 4.5+ stars in the Google Play Store), OpenTable’s Android app has been proudly tested with Genymotion, and most particularly its built-in command line tool: GMTool.
John Krause, OpenTable’s Senior Automation Engineer, was kind enough to share with us his experience as a GMTool user.
Can you tell us a bit about your testing environment here at OpenTable?
“Part of my role at OpenTable was to build from scratch a Java automation framework for our GNU+Linux automation machine. This consists of a combination of many tools including Genymotion, VirtualBox, and ADB from the Android SDK. The tests are written in Gherkin – the language understood by Cucumber – with Step Definitions in Java and Appium as the test driver.”
Sounds pretty solid! What role does Genymotion play in this framework?
“Genymotion and GMTool are in the picture right from the initialization phase. The automation framework uses an inter-process device management system managing the virtual devices in use by the different instances.
We use GMTool to automate the launch/stop of Genymotion virtual devices, to get device-specific properties – such as the IP address – and most importantly, to check their state. When the running automation instance requests a test device, Genymotion’s launched virtual devices get allocated and we can use them directly to run our tests.”
Why did you decide to use GMTool (instead of Genymotion’s default UI application)?
“Our testing process was initially accomplished with Genymotion’s UI application. However, we observed that our automation instance added Genymotion virtual devices and attempted to use those while they were still booting. As a consequence the whole testing environment was getting slowed down.
It definitely became easier with GMTool as it waits for virtual devices to be ready, preventing them from getting allocated when they’re still booting.”
Problem solved. Compared to other tools, where would you put Genymotion?
“Compared to other emulators, Genymotion provides faster, more reliable and more customizable virtual devices. By being more flexible it allows us to test use cases that are not as easy to do with other solutions.
Basically, we find the Android emulator Genymotion less error-prone. We are able to test flawlessly on multiple different Genymotion virtual devices, all at the same time, on one single machine.”
That’s great to hear! Any feature(s) you’re fond of?
“It is very useful to be able to clone devices in Genymotion: we run tests on our community’s most used devices and versions (KitKat and above). It helps a lot to only have to set up the devices once and simply clone them. This is great for parallelization purposes and makes it easier to maintain the virtual devices. Overall, we save a lot of precious engineering time and resources as a result.
Being able to configure virtual devices’ specs such as processor count, resolution/dpi and base memory is also very useful. We can fine-tune them to our needs!”
Before we finish, is there something you’d like to see in a future version of Genymotion?
“I would love to be able to manage screen recordings programmatically, directly from GMTool.”
Duly noted ?
More about GMTool and device cloning in our features page.