Select Page

App Testing

Test your mobile apps and games

Automated Tests on Mobile

We integrated the Appium into our existing Selenium grid infrastructure. This allows you to do automated tests of mobile browsers or native applications similar to automated web tests.

General

For general questions about automated testing, please read the other pages on these topics first. Most actions like setting up the testcase are the same for mobile and desktop tests. There is only one difference when ordering a machine:

Specify a device template

The only difference from ordering a desktop VM is the necessity to specify a so called template when starting a mobile device. This will adjust the screen resolution and similiar properties. Basically it is like selecting a device in our frontend machine creator interface.

List templates = Collections.singletonList("samsung-s5");
List swPackages = Collections.singletonList(new SoftwarePackage("android-browser", "", ""));
OS os = new OS(OSFamily.ANDROID, "19","X86");
testcase.startNode("my machine", swPackages, os, templates);

 

Supported templates are currently:

Android iOS
Samsung S4 iPhone 4s
Samsung S4-mini iPhone 5
Samsung S5 iPhone 5s
Samsung S6 iPhone 6
Samsung S7 iPhone 6-Plus
Samsung S7-Edge iPhone 6s
Samsung A7 iPhone-6s-Plus
Samsung A8 iPhone 7
Samsung A9 iPhone 7-Plus
Samsung Note 4 iPhone 8
Samsung Note 5 iPhone 8-Plus
Samsung Note 10.1 iPhone SE
Samsung Tab 4-7 iPhone X
Samsung Tab Pro 12.2 iPad 2
  iPad Air
  iPad Air 2
  iPad Pro
  iPad Pro 10.5
  iPad Pro 12.9 2gen
  iPad Pro 5gen
  iPad Pro 9.7
  iPad Retina

Mobile Browser Testing

With the Device Cloud API

It is important to explicitly request a browser in the software packages when you order a VM for your mobile browser test. This is necessary to tell whether you want to do browser or native app testing:

new SoftwarePackage("android-browser", "", ""); // for Android, or:
new SoftwarePackage("safari-mobile", "", ""); // iOS web testing

Afterwards it is the same as writing Selenium tests for Desktop browsers:

WebDriver driver = testcase.getWebDriver(uuid);
driver.get("http://testbirds.de");assertThat(driver.getTitle(), is(equalTo("Testbirds")));

With the Device Cloud Proxy

Android

For running tests on Android you need to set the BrowserName to MobileBrowserType.BROWSER (“Browser”). If you want to test on Android versions less than 24 you can specify them via the browser version capability. It is much better though to simply use the tech_os-Capability for requesting VMs.
A simple example:

DesiredCapabilities capabilities = DesiredCapabilities.android();
capabilities.setBrowserName(MobileBrowserType.BROWSER); //MobileBrowserType.BROWSER = "Browser"
capabilities.setCapability("tech_os", "{\"family\":\"ANDROID\", \"version\":\"22\", \"arch\":\"X86\"}");

Important: On Android version 24 and you will have to change the BrowserName to BrowserType.CHROME:

//...
capabilities.setBrowserName(BrowserType.CHROME);
//...

iOS

Similar to Android you need to specify MobileBrowserType.SAFARI (“Safari”) as BrowserName (Do not confuse this with BrowserType.SAFARI since they aren’t the same).
A simple example:

DesiredCapabilities capabilities = DesiredCapabilities.iphone();
capabilities.setBrowserName(MobileBrowserType.SAFARI);
capabilities.setCapability("tech_os", "{\"family\":\"IOS\", \"version\":\"10.1\", \"arch\":\"X86\"}");

Native App Tests

Android

Setup

When requesting the driver you have to specify what app you want to test. This information is sent to Appium using capabilities. On Android you have to specify the package ID of the app you want to test and the name of the activity. Both information is necessary to start the right app on the device:

AndroidDriver driver = testcase.getAndroidDriver(uuid, "com.android.calculator2", "Calculator");

What you get back is the normal AppiumDriver.

Using the AndroidDriver

Finding elements and clicking works similar to web tests:

driver.findElement(By.xpath("//android.widget.Button[@resource-id='com.android.calculator2:id/digit_4']")).click();

Write your own test

To create your first testcase the UI Automator Viewer from Google is very helpful. It can be found in the tools directory of your Android SDK installation folder. Launch the app you want to test in an emulator and start the UI Automator. Click this button to connect both:

Insert Screenshot
Now the UI Automator parses the current screen of your application and displays a screenshot on the left. Once you click elements on the left side, it displays further information on the right side. The properties on the right side are used to select elements in your automated test case.

Screenshot

The best way to click an element during your automated test is by using the resource-id (can be found at the right arrow in the picture above):

driver.findElement(By.xpath("//android.widget.Button[@resource-id='com.android.calculator2:id/digit_4']")).click();

Of course you can also use different properties for selection. For more information please take a look at the official Appium documentation.

iOS

For custom iOS apps, the App must be packed in an emulator-compatible format.

Setup
On iOS you have to specify the bundleID:

IOSDriver driver = testcase.getIOSDriver(uuid, "com.example.apple-samplecode.UICatalog");

What you get back is again the normal AppiumDriver.

Using the IOSDriver
Similar to Android you can select elements on the screen and click them:

driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[2]/UIATableView[1]/UIATableCell[3]")).click();

A helpful tool similar to the UI Automator Viewer from Google is the Appium.app, available for Mac OS. It can be used to find the XPath or similar properties of screen elements.

Quick-Navigation

Browser Testing

Here you can find all infos related to Browser Testing in our Device Cloud.

App Testing

Here you can find all infos related to App Testing in our Device Cloud.

Test Automation

How To: Test Automation with Device Cloud
Learn, how to execute automated browser tests with Jenkins and the Testbirds Device Cloud. The video covers getting familiar with the Device Cloud, starting a new browser test run using Jenkins, monitoring your test and executing parallel cross browser tests on different virtual machines.

Discover more

Manual Testing

How To: Manual Testing with Device Cloud
Learn how to execute manual testing with Testbirds Device Cloud. The video covers getting familiar with the Device Cloud, starting a new browser test and optimising your frontend development.

Discover more

DEVICE CLOUD

Quality Assurance Testing 2.0
Cross Browser tests, Mobile App & Desktop Application Testing made easy: Harness the power of virtual and real devices for your software development – perform fully automated or manual testing directly in your browser. Our Device Cloud provides you with all the testing methods for your cross device and cross browser testing.

Discover more

Landal GreenParks

DEVICE CLOUD: Landal GreenParks uses device cloud to optimise the guest experience
“Together with Testbirds, we are now researching the test automation possibilities, so we can efficiently verify that the front-end website information corresponds with that on our MDM system.”
Remco Vink | Functional Application Manager @ Landal GreenParks

Download Case Study

Deutsche Telekom

DEVICE CLOUD: Test Automation
The cooperation with the developers of Testbirds is very uncomplicated and at a high professional level. All our requirements could be fulfilled without delays and without problems in the timeframe specified by us."
Alexander Gunnar Kiefer | Technical Project Lead @ Deutsche Telekom

Rebtel uses Device Cloud

"Device testing is integral to our mobile QA process at Rebtel. We’ve tried many cloud device testing platforms and none can provide the functionality we need. The real devices - powered by Global real device network - promises to meet our needs and then some, with the globally distributed nature of the network representing real users much better than a single-location device-farm."
Andy Kaminski | Head of Mobile @ Rebtel

Webinar: Test Automation

DEVICE CLOUD: Test Automation
This webinar provides insights into the challenges and best practices of automated browser testing for websites and cross device testing for apps. Georg Hansbauer, Founder and Managing Director of Testbirds, shows how our SaaS solution TestChameleon™ can help. Content: • About Testbirds • Motivation for automated testing • Setup of an automated testing process • Real world example
Georg Hansbauer | Founder and Managing Director @ Testbirds

More Webinars

Whitepaper: Test automation

Test Automation of UI Tests using Selenium and Appium
This whitepaper by Georg Hansbauer, Founder and Managing Director of Testbirds, shows how developers can reduce manual testing efforts with UI automation using Selenium and Appium. How QA Managers can integrate automated browser tests into their existing development cycles and what a corresponding testing infrastructure for cross browser testing could look like.
Georg Hansbauer | Founder and Managing Director @ Testbirds

More Whitepapers

Whitepaper: Real Devices

True Remote Software Testing on Real End-User Devices

This whitepaper shows how software development teams can efficiently make use of Real Devices for cross device testing - powered by Global Real Device Network. Our Real Devices are use a worldwide network of end-user devices - for the execution of functional testing.
Georg Hansbauer | Founder and Managing Director @ Testbirds

More Whitepapers

1und1-testbirds-crowdtesting  ACE Bug test app  ANWB Usability Test  Appitized Bugability  Arvato - Chatbot Testing  Assmann - End-to-End Bugability  Audi - UX-Study  Baur- Bugtesting  Bayernatlas - Bugfixing  Bittl - Bugability  bmw-logo-crowdtesting-testbirds  Braun - Bugability  CEBIT - Bug Testing  Celonis - Bugability  DATEV - Usability  Deutsche Bahn - Crowdtest  Deutsche Messe - Website testing  Deutsche Post - Bug Testing  Telekom - Test Automation  Die Welt - Website Testing  DM -Bug Testing  DHL - Bugability  Dr. Oetker - Bugtest  Elitepartner - App Testing  Evening Standard - Website Testing  Webshop Testing  App Testing  Bugability  End-to-End Testing  Immowelt - Website Testing  Interhyp - Remote Interviews  Comparison Study  User Experience Test  Training Academy  Bug Testing  Crowdtesting Exploratory Bugtest  Website Testing  Webshop Testing  Usability Study  Device Cloud - manual testing  Load Testing  Webshop Testing  Bugability  Website Testing  Bug Testing  Webshop Bug Testing  Bug testing  Crowdtesting  Bugability


chatbot partner  Crossbrowser testing  testbirds partnership  Partnership  Mobile Testing partnership  crowdtesting qa partner   game testing partner   crowdtesting partner

Subscribe to the Testbirds Whistler!

Receive updates on our innovative testing services, webinars, brand-new Nest features!

You have Successfully Subscribed!

@ Contact