Appium is an open source test automation framework for testing native, hybrid and mobile web applications on iOS and Android devices. It uses the WebDriver protocol to drive tests. Appium has a client-server architecture, with the Appium server running on a device or emulator and receiving commands from a client. Tests are written using an Appium client library in a language like Java or Python. The Appium server handles starting sessions and executing commands on the mobile device.
1 of 16
Download to read offline
More Related Content
Appium presentation matific
1. 1Confidential and propriety Galil Software, Ltd. 20128-Feb-16
Appium - Automation for Apps
Author:
Nael Abd Aljawad Automation Technical Leader
2. 2Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium is an open source test automation framework for use with
native, hybrid and mobile web apps.
It drives iOS and Android apps using the WebDriver protocol.
Appium
9. 9Confidential and propriety Galil Software, Ltd. 201225.12.11
Client/Server Architecture
Appium receives connections from a client, listens for commands, executes those commands
on a mobile device, and responds with an HTTP response representing the result of the
command execution.
We can write our test code in any language that has a http client API, but it is easier to use one
of the Appium client libraries. We can put the server on a different machine than our tests are
running on. We can write test code and rely on a cloud service like Sauce Labs to receive and
interpret the commands.
11. 11Confidential and propriety Galil Software, Ltd. 201225.12.11
Session
Session Object
Clients initiate a session with a server in ways specific to each library, but they all end up
sending a POST /session request to the server, with a JSON object called the 'desired
capabilities' object. At this point the server will start up the automation session and
respond with a session ID which is used for sending further commands.
12. 12Confidential and propriety Galil Software, Ltd. 201225.12.11
Desired Capabilities
JSON
Desired capabilities are a set of keys and values sent to the Appium server to tell the
server what kind of automation session we're interested in starting up. There are also
various capabilities which can modify the behavior of the server during automation. For
example, we might set the platformName capability to iOS to tell Appium that we want an
iOS session, rather than an Android one.
13. 13Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Server
Appium is a server written in Node.js. It can be built and installed from source
or installed directly from NPM.
Appium
Server
14. 14Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Clients
There are client libraries (in Java, Ruby, Python, PHP, JavaScript, and C#) which
support Appium's extensions to the WebDriver protocol. When using Appium, you
want to use these client libraries instead of your regular WebDriver client. You can
view the full list of libraries here.
16. 16Confidential and propriety Galil Software, Ltd. 201225.12.11
Thank You
Nael Abd Aljawad
Nael Abd Aljawad Automation Technical Leader
Editor's Notes
A native application (native app) is an application program that has been developed for use on a particular platform or device. (Ingress, Instagram)
A Web application (Web app) is an application program that is stored on a remote server and delivered over the Internet through a browser interface.(Designer Pages, Wistia,Wufoo)
A hybrid application (hybrid app) is one that combines elements of both native and Web applications.(Facebook - Three20 as the core UI along with the Facebook SDK but HTML5 for feeds)
Npm: package manager that makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing.
Node.js:is anopen source,cross-platformruntime environmentfor server-side and networking applications. Node.js applications are written inJavaScript, and can be run within the Node.js runtime onOS X,Microsoft Windows,Linux,FreeBSD,NonStop,IBMAIX,IBM SystemzandIBMi. Its work is hosted and supported by the Node.js Foundation,[3]a Collaborative Project at Linux Foundation.