4. Mobile Testing : App features
Native apps Web apps
Capabilities • Can interact with Device’s native features
• Perform Faster
• Internet might not be required
• Limited access to device features
• Cross-platform
• Internet is a must
Development • Platform specific SDK
• Native programming languages
• No SDK
• Technology of developer’s choice
• Frameworks
Installation • Installation through App/Play store
• Updates by user
• No installation required
• Updates through server
Mobile technology has impacted our day to day lives to a very great extent. Mobile is no more just a communication media, but it’s a multipurpose person gadget
Organizations rely more on mobile Apps to drive their business. Most of the web traffic is now through mobile devices. Mobile technology has impacted almost every industry
The success of a mobile app, is not just on the cool features and capabilities it provides, but also on how accurately, quickly and consistently it performs
Native apps : Built using the platform specific SDK’s
Mobile apps : Server side apps accessed through browsers
Hybrid apps : Combination of Native and Web apps
Device diversity :
Varying screens sizes, resolution & rendering differences
Varieties of mobile devices - Apple, Samsung, Nokia etc
Hardware configurations – Processing speed, memory size
Platform & Network :
Mobile operating system : IOS, Android, Windows, Blackberry
Versions of the Operating systems
Network connections : 2G, 3G, 4G, Wifi
Some basic factors to consider while approaching mobile testing
Test the same app you submit to market :
Appium uses uses vendor-provided automation frameworks to interact with the app, hence there is no need to compile in any Appium-specific or third-party code or frameworks to your app
Write your tests in any language
Appium is based on the webdriver’s JSON Wire Protocol and extends the WebDriver API. Because of this client-server architecture, a client written in any language can be used to send the appropriate HTTP requests to the server.
Use a standard automation specification
WebDriver has set the standard for automating web applications and Appium has extended the same protocol with extra API methods useful for mobile automation.
A thriving open source project
Appium is open source and it has active community of people
Appium is a client-server based architecture.
Appium server component is written in node JS and it exposes a set of REST API methods.
Appium client component could be written in any language and can be used to send the appropriate HTTP requests to the server.
Appium server uses vendor-provided automation frameworks (UIAutomation in case of IOS and UIAutomator in case of Android) to interact with the IOS/Android application either on real device or on emulator/simulators
Appium inspector is a wrapper around Appium server which could be used to show the elements and their attributes on the app.
It also enables to record and play back user actions
The R1. R2, R3, R4 corresponds to the four philosophy’s of Appium and here is a comparison chart of various tools w.r.t these philosophies.
GitHub reference of sample code : https://github.com/saikrishna321/VodQa_MobileAutomationWorkShop