Popular Appium Interview Questions (2024)

In this article, we will discuss Appium Interview Questions that interviewers frequently ask.

Table of Contents

1) Explain the difference between mobile testing and mobile application testing.

Mobile testing, commonly known as mobile device testing, is the testing of device-specific features like storage, camera, screen, memory, etc.

Mobile application testing refers to the testing of software applications to ensure their functionality, interface, usability and reliability.

2) What are the tools available to test mobile applications?

There are several tools available for mobile application automation testing including Appium, TestComplete, XCUITest, Espresso, Calabash, Xamarin etc.

3) What is Appium?

Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS mobile, Android mobile, and Windows desktop platforms.

4) Explain Why you choose Appium for mobile automation.

Appium provides cross-platform support. It also provides the ability to write test scripts in any of the supported languages like Java, c#, Ruby, Python, etc. It is easy to use as it uses the same Protocol as Selenium and enables the user to automate gestures and screen orientations.

5) What are the Prerequisites of Appium?

To work with Appium, first, we need to install and configure Node Js, Android SDK, Java JDK, Selenium jar files, Appium Jar files, Appium client and an IDE.

6) Can You use Appium on your machine if the node is not installed?

Appium is a node.js server hence to use Appium it is mandatory to install the node first in the machine.

7) How to find elements in Appium?

ID or resource-id, Text (Name), Xpath, ClassName, and accessibility.

8) Is the Appium tool Similar to Selenium?

Appium is used to automate mobile native apps like IOS or Android and even mobile browsers however selenium is purely a web automation tool. Appium follows a similar architecture as Selenium.

9) What are Appium Client and Appium Server?

We use client libraries like Java, Python, etc to write our test scripts (instructions) which are sent to the Appium server using the W3C Webdriver protocol. Then a unique session is created by the Appium server based on the provided desired capabilities and scripts start executing.

10) What are the desired capabilities in Appium?

Desired capabilities are a set of key-value pairs which is used to send the information regarding the automation session to the server by the client. They inform the Appium server about all the important things that are required for the test to work like the desired platform, device, app-related info, etc.

11) What is APK and IPA ?

Apk (Android Application package ) is an Android package used to install and distribute Android applications while IPA (IOS application archive file) is used to contain the IOS application.

12) How to handle timeout scenarios in Appium?

Timeout scenarios can be handled using the wait mechanism. We can use either implicit wait or explicit wait according to the requirement.

Implicit wait: It will make the test script wait for a specific amount of time until the desired web element is found.

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

Explicit wait: The Web DriverWait will wait for a certain condition to be met for example to check if the alert is present or element is clickable.

WebDriverWait wait = new WebDriverWait(driver, 25); 
wait.until(ExpectedConditions.textToBePresentInElement(By.xpath("xpath"), "TextToBePresent"));

We can also configure the page load timeout to deal with timeout issues.

driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

13) How to perform Drag and Drop in Appium?

By using the TouchAction class. The touch-action class provides all the necessary methods to handle mobile gestures.

TouchAction action = new TouchAction(driver);
action.longPress(elem1).waitAction(3000).moveTo(elem2).perform().release();

14) How to automate Hybrid applications using Appium?

Hybrid apps are those apps that are part native apps(IOS-specific apps/Android-specific apps) and part web apps (Open on a mobile browser). These apps are deployed in a native shell that uses a mobile web view object because of which these are platform-independent. Automating such applications is quite tricky. To Automate hybrid apps we need to follow such steps:

1) Get the available context of the application[‘NATIVE_APP’ or ‘WEBVIEW_1’].

Set contextNames = driver.getContextHandles();

2) Set The Desired context

driver.context(contextNames.toArray()[1]);
driver.context("WEBVIEW_1")

3) Perform the testing

String myText= driver.findElement(By.cssSelector(".green_button")).click();
driver.quit();

15) What is the difference between Appium Driver and Android Driver?

AppiumDriver is an abstract class that inherits from the Selenium Java client. This class is inherited by AndroidDriver and IOSDriver class to provide implementation and to provide additional functions that are useful in the context of a mobile automation test on Android devices/IOS devices.

16) How to start & stop the Appium server programmatically?

AppiumDriverLocalService: This class is used to start and stop the Appium server.
AppiumServiceBuilder: This class is used to build the Appium service, i.e. you can use this class to set the server address, port, desired capabilities, and other flags before starting the Appium server​.

AppiumDriverLocalService service = AppiumDriverLocalService.buildDefaultService();
service.start();
//your test scripts logic…
service.stop();

17) How to perform scroll action in mobile automation?

By using the TouchAction class we can perform actions like scrolling, single tap, Double Tap, Long Press, etc.

TouchActions action =TouchActions(driver);
action.scroll(xoffset,yoffset).perform();

18) Have you used UISelector in your Framework?

The UISelector class provides the mechanism for tests to identify the UI elements they intend to target. A UI element has many properties associated with it such as text value, content description, class name, and multiple state information like selected, enabled, checked, etc.​If the normal findElement by command doesn’t work with different types of locators, then the UI Automator command can be used.

Driver.findElementByAndroidUIAutomator(“UiSelector().resourceID(\“Element Id\”)”).Click();

19) Name some common Appium Exceptions.

Some common exceptions are listed below :

  1. WebDriverExceprion
  2. ElementNotFoundException (When an element is not found in the DOM)
  3. SessionNotFoundException (When Appium session can not be established successfully)
  4. NoSuchContextException (When the context is not available.
  5. TimeOutException

20) How to perform parallel testing in Appium?

To perform parallel testing we need to configure 2 nodes with different ports. After that, we need to create 2 drivers with desired capabilities and launch the server on those 2 differently configured ports.

21) How can you verify SMS or Calls in Appium?

1)First specify some wait
2)Then use the send SMS() method

driver.sendSMS("555-123-4567", "Hey buddy");

For simulating calls use the makeGsmCall() method.

driver.makeGsmCall(“1234567890”, GsmCallActions.CALL);

22) How to Switch between two Android applications in Appium?

Yes, it is possible. We can start the new activity by providing the app package and app activity of another application.

driver.startActivity(new Activity{apppackage,appactivity});

23) How to check using Appium if the App is installed or not?

Use the isAppInstalled method to verify if the application is already installed on the device or not.

public boolean isAppInstalled(String bundleId) {
return androidDriver
.isAppInstalled(bundleId);
}

24) What is ADB in mobile testing?

ADB(Android debug bridge) lets us communicate with Android devices or emulators. USB debugging needs to be enabled and the device needs to be connected to use the ADB shell.

25) How can you handle the Android keys in Appium?

use the press key() method.

driver.pressKey(keyEvent);

Suppose we want to simulate the device’s back button then use the below code:

driver.pressKey(new KeyEvent(AndroidKey.BACK));

This press key() method works only on Android devices.

26) What are the disadvantages of Appium automation?

A few advantages of Appium are listed below:

  1. Appium provides limited support for Hybrid apps.
  2. Complex SetUp process.
  3. Appium does not support Image comparison.
  4. Comparatively slow performance.

27) How to do Orientation testing of mobile applications?

To validate screen orientation we can Use the deviceOrientation capability of Appium Library.

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("deviceOrientation", "landscape");

To get the current orientation can use the getOrientation method.

driver.getOrientation()

28) What is an Appium inspector?

Appium inspector is a GUI interface that is used to inspect and interact with mobile elements and provide a list of suggested element locator strategies and selectors to be used in your script.

29) How to perform single tap operation using Appium?

Appium has a class named ‘touch action’. This class contains methods involving mouse events and user interactions. With the help of this class, we can perform single tap, double click, drag and drop, and other actions.

TouchActions action = new TouchActions(driver);
action.singleTap(element).perform();

30) How to install the Appium tool on your local machine?

Appium can be installed either using Node.Js. Run the following command.

npm install -g appium
appium --version

31) How to set up Appium for iOS?

Xcode should be installed on the Mac machine.

xcode-select --install

Install all the dependencies and set the path variables in the bash profile.

install the ‘libimobiledevice’ library

brew install libimobiledevice

install ios-deploy

brew install ios-deploy

install Webkit proxy which allows users to interact with mobile safari on real and simulated devices.

brew install ios-webkit-debug-proxy

32) What are common adb commands?

Common ADB commands are listed below.

  1. To find out the attached Android devices.
adb devices

2. To Reboot the adb

adb reboot

3. Install the app on the device.

adb install APKLocation

4. To get the app package and app activity of the application.

dumpsys window displays | grep -E ‘mCurrentFocus’

33) How Appium 2.0 is different from Appium 1.0?

Check this post to understand the difference.

Leave a Reply

Discover more from AutomationQaHub

Subscribe now to keep reading and get access to the full archive.

Continue reading