In this post, we're going to look into questions about Appium that you might be asked during an interview, along with their answers. Appium is a must-have skill for automation testers and especially mobile testers. These interview questions are divided into beginner, intermediate, and expert questions. And you can choose the best category based on your years of experience.
So let's dive in. But first, we'll learn about the types of roles for which a person might be interviewing if they're knowledgeable in Appium testing.
Appium Roles
Now the question is, "What are the kinds of jobs a person might apply for if they know Appium?"
First, Appium belongs to the category of automation testing, in which Selenium is the other popular framework. But Appium is used in mobile testing only, whether you're testing a native app (written in Swift, Kotlin) or a hybrid app (written in React Native, Flutter). So the jobs that require Appium experience are likely only with companies that develop or have mobile apps.
Appium requires you to write test cases in JavaScript, Java, or Python, so basic knowledge of any of these languages is also required.
These roles generally require three or more years of experience in testing (manual or automated) and at least one year of experience in mobile testing using Appium. But manual testers with three or more years experience with good knowledge of Appium can also apply for these roles. As in testing, the future is automation testing, so it is recommended for testers to have knowledge of it.
Beginner Appium Questions
These are the questions that may be asked of a person with basic knowledge of Appium (but may also be asked of a more experienced person). And these are also the starting point for more advanced questions.
Question 1: What Are the Pros of the Appium Testing Framework?
The main pro of the Appium testing framework is that it's completely free to use. It's open-source software with a very active developer community. Since it's very popular, all solutions to any issues or problems are just a Google away.
It can be used to test all kinds of mobile apps. The apps can be native apps, hybrid apps, or apps running in mobile browsers. And it also runs on all three operating systems: Windows, Mac, and Linux.
Appium is based on the popular automation framework Selenium. This automation framework is known by most testers. So the knowledge of writing test cases in Selenium will help in writing test cases in Appium because the code is similar. And it also supports test cases written in all primary languages: Java, Python, and JavaScript.
Appium Server comes as both an npm package and an application. The application is available for Mac, Windows, and Linux and has a lot of features. It also comes with a handy application called Appium Inspector.
With Appium Inspector, we can easily get IDs for the elements of apps. This is a must for writing test cases in Appium.
Besides this, Appium also allows you to test physical devices online. So we don't need to buy multiple types of mobile devices for testing purposes.
Question 2: What Are the Drawbacks of the Appium Testing Framework?
There are some major drawbacks to Appium too. One of the main drawbacks is that it requires the testers to know a programming language and be good in it. All major languages like Java, Python, and JavaScript are supported to write test cases. But most testers come from a manual testing background, in which they have to test the functionalities of apps and web apps. So learning a programming language can be a quite difficult task.
Appium is quite difficult to set up and requires a lot of things to work correctly. For example, Java should be set up correctly and so must the Android SDK and other packages. To help with the setup, we generally use a tool called Appium Doctor. But this adds to the time to get started.
Although Appium is open source, better support with the easy setup is available through a paid tool called Appium Studio. There is a limited functionality to the community version available.
Appium doesn't support older versions of mobile operating systems. Android phones running Android 4.1 and lower are not supported. Similarly, iPhones running iOS 12.2 or lower are not supported. So this limits the range of OSs you can test.
Question 3: Which Types of Applications Does Appium Not Support?
Let us first understand which applications Appium supports. Since Appium is mainly a mobile testing framework, it supports all native apps. Native apps are written separately for Android and iOS. The Android apps are written in Java or Kotlin. And iOS apps are written in Objective-C or Swift. Appium can test both kinds of apps with ease.
Nowadays, hybrid apps are very popular. These are apps written in languages like React Native or Flutter. And these run on both Android and iOS. These apps can also be tested with Appium very easily.
Appium can also be used to test apps running on mobile browsers. So it can test apps running on mobile Chrome or mobile Safari.
But Appium cannot be used to test any other apps, such as popular web apps like LinkedIn's or Facebook's desktop site. Besides this, desktop apps like code editors (e.g., VS Code) created with Electron also cannot be tested.
Question 4: How Does Appium Work?
The main part of Appium is the server, which is written in Node.js. The client programming can be written in different languages. And it communicates with Appium Server, using the mobile JSON Wire Protocol.
The first request, sent from the client, includes desired capabilities. It also contains all information about the connection, like the APK file and platform. The first call creates a unique session ID. And this session ID is used throughout the session until the testing is done.
Appium Server, using WebDriver, sends these requests to the connected physical Android device or iOS device. Here, depending on the mobile operating system, they're converted into automation tests. Once the tests are done, then the result is sent back.
Intermediate Appium Questions
These are the questions that can be asked of a person who has intermediate knowledge of Appium, up to a more experienced person. An intermediate-level person is expected to have three to five years of overall experience—and one to two years of automation testing experience with Appium.
Question 1: What Are the Exceptions in Appium?
There are three common exceptions in Appium.
The first exception is called the Session not found exception. And as the name suggests, this exception is for when the session can't be located. Appium requires the server to run all the time. For our client program, we need to hit the RESTful APIs running on Appium Server. Now, the tester might forget to bring up the local server, and then we'll get this exception.
Appium targets the elements on the screen through their IDs. These can be found through various tools like UIAutomator Viewer or Appium Inspector. But even with these tools, if the tester gives the wrong ID by mistake, then we'll get the Element not found exception.
The Appium client uses drivers to connect to Appium Server. The most-used drivers are AppiumDriver, AndroidDriver, and IOSDriver. Now there can be issues in importing the driver or passing the correct parameters in it. And in those cases, we get the Web driver exception.
Question 2: Which Tests Are Suitable for Appium?
As mentioned, Appium is pretty good at automation testing of mobile applications. Almost all types of interactions are covered, from click to swipe. We also have the option to write test cases in different languages like Java, Python, JavaScript, and others. But when complex interactions are required, Appium is not able to handle those situations. These complex interactions can be something like typing through a keyboard and swiping at the same time. It's very difficult to write test cases for these situations.
In these cases, it's much better to use a no-code automation platform like Waldo. Here, you can test complex interactions without worrying about writing code for complicated tests. You can start a free trial of Waldo here.
Question 3: What Are the Similarities Between Selenium and Appium?
Both Selenium and Appium are used for automation testing. In fact, Appium is built over Selenium WebDriver and uses Selenium internally. But Selenium is the opposite of Appium in that it supports web apps, whereas, by contrast, only mobile apps are supported by Appium.
But there are a lot of commands that are the same in Selenium and Appium, like the click() command. This is used to fire clicking of any element on the mobile device. The locate command is also the same, which uses element IDs to locate an element.
Similarly, a lot of commands used to write test cases are the same between them.
Question 4: What Is Appium Studio?
Appium comes with a lot of open-source and free-to-use GUI tools like Appium Server and Appium Inspector. The setup in Appium is generally difficult, with the need to set a lot of environment variables for Java, Appium, and other things. Besides this, Android Emulator, iOS Simulator, and physical devices also need to be set up. We generally check these all by running the command-line tool Appium Doctor.
Appium Studio can be considered a combination of Appium Inspector and Appium Doctor. But it has a lot of other features like easy test case generations and connected device reflection. And it's much easier to have it up and running in comparison to using Appium Server because it has the famous one-click installation. It's also built on top of open-source Appium. And it has both the community and paid version with awesome support.
Expert Appium Questions
These are the questions that are asked of an experienced person, typically someone with three to four years of experience in automation testing with Appium.
Question 1: What's the Hardest Scenario to Test With Appium?
The most difficult task to test in Appium is the passing of data. In modern-day mobile apps, we pass data between screens or components. For example, when we log in to a mobile app through our Google credentials, we get the token. We use this token in various other screens and so we save it. Now these tasks can be easily done with frameworks like React Native. But they're very difficult to achieve through testing. The test cases become complex because data passing itself is achieved through a complicated thing like Redux in testing.
Besides this, the data, which is also known as a state, can also change. In a lot of applications, a central database is maintained through Redux, and it's changed based on certain events. The updated data is used in other components. And these types of scenarios are very difficult to test through Appium.
Question 2: How Do You Debug in Appium?
Appium is written in Node.js. So it mainly uses JavaScript because Node.js is a JavaScript back-end framework. When an error comes up in Appium, you're basically debugging a JavaScript application. So knowledge of JavaScript helps.
Besides this, Appium is completely open source, and the code can be found in GitHub. So it can be referenced for issues. Since Appium is very popular for mobile automation testing, all errors can be easily resolved. Any error likely has a solution available in a simple Google search.
Conclusion
In this post, we first learned about the roles a person can get when they have Appium knowledge. After that, we looked at 10 Appium interview questions with their answers. These questions were classified into beginner, intermediate, and advanced categories.
But you can also test your apps by just using the APK or AAP file in Waldo. And you don't even have to write test cases.
Automated E2E tests for your mobile app
Get true E2E testing in minutes, not months.