InterviewSolution
This section includes InterviewSolutions, each offering curated multiple-choice questions to sharpen your knowledge and support exam preparation. Choose a topic below to get started.
| 1. |
What do you mean by Appium Package master? How would you create a package? |
|
Answer» Appium Package master REFERS to a set of tools that are used to create and manage Appium packages. To create a new Appium package, we can use the following lines of CODE: //For es7/ babelGulp create-package -n <package-name>In the above code, we use Gulp (a streaming build system) and the command “create-package” to create a new package. -n SIGNIFIES a new package has to be created and <package-name> signifies the name of the package to be created. // For REGULAR es5Gulp create-package ---nobabe1 -n <package-name>In the above code, we mention --nobabel so as to specify that the command is for regular es5. |
|
| 2. |
Is it possible to use JavaScript to interact with applications while running Appium tests? |
|
Answer» YES, we can USE javascript to INTERACT with applications while RUNNING Appium tests. When we PERFORM the instructions on Appium, the server transmits the script wrapped in an anonymous function to our app, which is then executed. |
|
| 3. |
Can a tester run tests in a multi-threaded environment while using Appium? |
|
Answer» Yes, Appium allows testers to execute tests in a multithreaded environment. The only THING they have to worry about is that no more than ONE TEST RUNS against the same Appium server at the same TIME. |
|
| 4. |
Explain Desired Capabilities in the context of Appium. |
|
Answer» On iOS and Android, Appium behaves DIFFERENTLY. Because it is a "cross-platform" tool, a METHOD must be in place to DISTINGUISH between the session requests of the two operating systems. JSON objects, referred to as DESIRED Capabilities, were introduced to address this specific problem statement. Desired Capabilities are key-value pairs of data that separate the establishment of an Android app testing session from that of an iOS app testing session. With arguments such as platformName, deviceName, appPackage, and appActivity, the server will be able to tell the difference between the two operating systems very quickly. |
|
| 5. |
Explain Appium Session in the context of Appium. |
|
Answer» Appium session is a medium to send commands to a SPECIFIC TEST APPLICATION. Commands are always executed within the context of a session. Before performing any command, a client utilizes the session identifier as the sessionId parameter. A session is requested by the client library from the server. After that, the server will return a sessionId endpoint, which can be used to submit additional commands to interact with the application(s) being tested. Every 'testing' is included within a session. Given that Appium is a SIMPLE client and server-based method, this is self-evident. Post requests, also known as session requests, are SENT by the client to the server. These queries use the JSON Wire Protocol to communicate and convey information in JSON Object format. |
|
| 6. |
Explain the JSON Wire protocol used by Appium. |
|
Answer» The JSON Wire Protocol is the method by which client and server data are exchanged. It was created by WebDriver's developers. The protocol, according to them, consists of a set of standardised endpoints that are offered to clients VIA a RESTful API. This enables the webdriver to communicate with a server and a client in order to automate tasks. In this protocol, JSON is used to transmit data between the server and the client. Before delivering an object to a server, a client (or the computer running the WebDriver API) turns it into a JSON object. The JSON object is PARSED by the server and converted back to a JavaScript object. The response object is converted to a JSON string by the server and returned to the client. For use, the client transforms the JSON string to a JavaScript object. In the above IMAGE, we can see the client and the server communicates with each other via JSON wire protocol. The server sends a request to the appium server for running tests and the appium server sends back the response to the main server. The mobile JSON Wire Protocol, which is an extension of the Selenium JSON Wire Protocol, is used by Appium. Other than ESTABLISHING up a communication stream, it's used to regulate other mobile phone behaviours. |
|
| 7. |
What is mobile application testing and how does it differ from mobile testing? |
|
Answer» The practice of testing application SOFTWARE produced for handheld MOBILE devices for functionality, usability, and consistency is known as mobile application testing. Mobile application testing can be done in two ways: automated or manually. It differs from Mobile Testing, Mobile Testing FOCUSES on native application functionalities of mobile devices such as call, SMS, and media player, among others. Meanwhile, in Mobile Application Testing, we concentrate SOLELY on a specific application's operation and end-to-end features. |
|
| 8. |
What do you understand about end-to-end mobile testing automation? What things should be kept in mind while performing end-to-end mobile testing automation? |
|
Answer» End-to-end mobile application test automation is a method of testing a software product from beginning to end to ensure that the application flow is as planned. It establishes the product's system mandates and ensures that all integrated components perform as expected. The GOAL of end-to-end (E2E) mobile application test automation is to test from the PERSPECTIVE of the end-user by replicating a real-world situation, in which a user uses the application, and confirming the system under test and its components for data INTEGRITY and integration. These days, software SYSTEMS are sophisticated and integrated with numerous subsystems. The entire software system could fail if one of the subsystem fails. We employ end-to-end mobile application test automation to eliminate this big risk. Following THINGS should be kept in mind while performing end-to-end mobile testing automation :
|
|
| 9. |
Explain the architecture of Appium. |
|
Answer» Appium is an HTTP server implemented in the node.js programming language. It creates a server on the device and WAITS for proxied commands from the main Appium server. The test scripts are written by the tester and run on the device or emulator. Appium creates and manages many webdriver sessions for various platforms such as Android and iOS. Test scripts produced by the tester are sent to the Appium server as REQUESTS, which are then executed on the emulator or device. Each vendor has its own technique and methodology for EXECUTING test cases on the device, such as IOS or Android. As a result, the test case RUNS after the Appium server receives commands. To transmit command requests to the Appium server, Appium uses JSON (Javascript Object Notation) wire protocol. Here, JSON is USED to transmit data between the server and the client. |
|
| 10. |
What do you mean by Appium Inspector? |
|
Answer» APPIUM offers an "Inspector" to record and playback, similar to Selenium IDE's record and playback tool. It inspects the Document Object Model to record and play native application BEHAVIOUR and PROVIDES test scripts in any preferred language. You can use the Inspector in Appium Desktop to look up or locate elements of an application. To locate an element, the Appium inspector provides four options:
Appium Inspector does not support Windows and instead USES the UIAutomator viewer as an option. |
|
| 11. |
List out the prerequisites required to run tests on an android application in Appium locally. |
|
Answer» FOLLOWING prerequisites must be installed so as to successfully RUN tests on an android application in Appium locally : |
|
| 12. |
Explain the general responsibilities of a mobile application testing framework. Also explain the general structure of a mobile application testing framework. |
|
Answer» Following are the general responsibilities of a mobile APPLICATION testing framework:
The general STRUCTURE of a mobile application testing framework consists of the following segments :
In the above figure, we can see that a mobile application testing framework consists of three segments: Application package, InstrumentationTestRunner, and Test package. The test package consists of mock objects, test case classes, and Instrumentation and JUnit classes. |
|
| 13. |
What are the major advantages of using Appium on Sauce Labs rather than using Appium locally? |
|
Answer» Following are the advantages of using Appium on Sauce Labs rather than using Appium locally:
|
|
| 14. |
What types of tests are suitable for Appium? |
|
Answer» There are many scenarios that can be tested when it comes to testing, especially for web applications, depending on the feature coverage you want to assure. Appium comes in helpful when it comes to testing scenarios that users will encounter when using your app. Appium, on the other hand, becomes a restriction if you need to TEST more than UX SIMPLE interactions. Consider features such as KEYBOARDING. When SOPHISTICATED touch/keyboard mixed circumstances are involved, the likelihood of a false failure is significant. Exchanging data is another minor pain with Appium. You'll need to use various strategies when your test needs to exchange data with your app. So KEEP in mind that sending and receiving information isn't always simple. It's not Appium's fault; the WebDriver specification was created to automate processes, not data exchange. |
|
| 15. |
Do you need a server machine to run tests on Appium? |
|
Answer» No, we do not need a server machine to run TESTS on Appium. Appium encourages a two-tier architecture, in which a test machine CONNECTS to a test server that runs Appium, automating the entire process. This setting is optional; you can run Appium on the same system as your tests. Instead of connecting to a remote host, your test will use the LOOPBACK ADDRESS to connect to Appium. |
|
| 16. |
What are some of the important mobile application testings? |
|
Answer» Following are some of the important mobile application testings:
|
|
| 17. |
What are the different types of mobile applications? |
|
Answer» FOLLOWING are the different TYPES of mobile applications:
|
|
| 18. |
When should you use a simulator and when should you use an emulator? |
Answer»
|
|
| 19. |
Difference between Emulator and Simulator. |
|
Answer» Simulator: A simulator is used to simulate an environment with all of the software variables and configurations that will be present in the actual production environment of an application. Simulators do not try to replicate the actual hardware that will run the application in production. Simulators can be written in high-level programming languages because they merely construct software ENVIRONMENTS. For example, a car RACING game application can be thought of as a simulator as it simulates a real car race. Emulator: An emulator does try to replicate all of the hardware and software aspects of a real-world environment. In most cases, you'll NEED to develop an emulator in assembly language to accomplish this. Emulators might thus be thought of as occupying a midway ground between simulators and real-world gadgets. For example, a car simulator racing game can be thought of as an emulator. It provides the hardware aspects of car racing as well with the help of emulators.
|
|
| 20. |
Mention the advantages and disadvantages of Appium. |
|
Answer» Following are the advantages of Appium:-
Following are the disadvantages of Appium:-
|
|
| 21. |
What are the features of Appium? |
|
Answer» Following are the features of Appium:-
|
|