The Basics of Mobile Web Apps Testing On Real Devices Using Selenium / Appium

First Thing First: Appium Equals Selenium

“Appium is just like Selenium – but only for mobile apps and games “. One should have heard about it many times, but in fact, Appium is much more than that.

It is also suitable for mobile web apps testing, where real devices and real browsers are used in testing. With the same effort and cost, a test automation framework can be built with Appium using real stuff or use an emulator/simulator for the automation.

In a nutshell, Appium is a mobile test automation tool that works for native, hybrid as well as mobile web apps for iOS and Android with the aid of Selenium server. Appium is an excellent choice for test automation framework as it can be used for all these different app/web types.

Fundamentally, Appium derives its root from Selenium and it uses JSON Wire Protocol inside to interact with iOS and Android apps using Selenium’s WebDriver.

In its architecture, Appium is an HTTP server written in Node.js which creates and handles multiple WebDriver sessions. Appium starts tests on the device and takes notes for commands from the main Appium server. It is basically the same as the Selenium server that gets HTTP requests from Selenium client libraries.

Appium Training has proven its flexibility and scalability in a native mobile app and game testing, as those apps and games tend to be much identical on both platforms i.e. Android and iOS. The benefit of having this cross-platform testing framework helps by using the identical script for running app/game on either platform. The same applies to the mobile web.

Appium scripts run smoothly when web testing is done on Chrome, Firefox, Safari, or WebKit-based browser on Android and iOS where applicable.

Another significant benefit of Appium is that users can write tests using their favourite development tools, environment and programming language, such as Java, Objective-C, JavaScript, PHP, Ruby, Python or C#, among many others.

How to get started and what things to consider?

Don’t worry about the learning curve. If you are familiar with Selenium, then you’ve got Appium covered: They use WebDriver and DesiredCapabilities in the same way. There is a great chance the existing Selenium scripts work as they are with Appium setup. However, configuring an application to run on Appium has a lot of similarities to Selenium — for example, as those of DesiredCapabilities.

Don’t know about Selenium – Follow the URL

The below instructions provide everything to ensure a smooth start with Appium, real devices and real web browsers.

Bear in mind that the mobile ecosystem is very different compared to the desktop world. As mobile OEMs are building their own stuff, they also tend to ‘differentiate’ on various standards – such as browsers.

In fact, mobile browsers – regardless how standard they are – is also one of the areas where almost all devices manufacturers want to add their ‘innovation’.

This is quickly leading to a happy mix of different web kit versions with different functionalities; when combined with the OS version, hardware configuration, sizes of displays, memory and so on can significantly ‘differentiate’ what user gets as a form of these browsers. Building your test scripts with Appium/Selenium and automated testing can quickly get the understanding that how well does the web work on those devices and browsers.

Another area that any mobile web developer needs to pay attention at is performance:

Web page rendering time varies expressively from one device to another.

To ensure satisfactory end user experience it should be tested that how the CSS & Javascript renders across devices. There are already great benchmarks – such as BrowserMark by Rightware can be used to measure the performance of the hardware together with certain versions of browsers. This gives an understanding of the workload with certain device and web browser combination.

Selenium has already cemented its place in web test automation standard and Appium is providing very clean high-level API that can be quickly adopted by Selenium developers. It nicely abstracts a lot of the messy stuff related to parallel running tests.

1 Like

Mobile technology and smart devices are ruling the market these days. To meet the daily growing competition, software providers indulge to go for testing of their mobile applications. Thus to meet the expectations, they go for vendors those who provide specialized mobile app testing services so that their product can tested solely. For testing, software testing companies use Appium for the mobile product under test.

  • In a nutshell, Appium is an open source mobile test automation framework that works for native, hybrid and mobile-web applications for iOS and Android. It is derived from its root i.e. Selenium. Appium uses JSON Wire Protocol inside to interact with iOS and Android apps using Selenium’s WebDriver.
  • Appium scripts run smoothly when web testing is done on different browsers like Chrome, Firefox, Safari. Appium allows its users to write tests using the development tools of their choice, environment and programming language.
  • Similar to Selenium IDE, Appium has an ‘Inspector’ to record and playback. But currently, there is no support for Appium Inspector for Microsoft Windows. However, UIAutomator viewer can be used as an option for Inspecting elements.
  • Appium does not support testing of Android Version lower than 4.2.

Hope this information is helpful for you.

Appium has its roots in selenium and both run JSONWireProtocol to interact with mobile apps. Like any other test project, it starts with creating test scripts after which webdriver session request is created to Appium broker which further processes request to configure the project and wait for the device to be available.

The request further reaches the device cluster to start Appium that further defines the proxy and session map for Appium ready. Post that the web driver session response is brought back to the user case followed by a test run.

For more information or detail of the execution process, consider following the link