際際滷

際際滷Share a Scribd company logo
1Confidential and propriety Galil Software, Ltd. 20128-Feb-16
Appium - Automation for Apps
Author:
Nael Abd Aljawad  Automation Technical Leader
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
3Confidential and propriety Galil Software, Ltd. 201225.12.11
Drivers Relationship
4Confidential and propriety Galil Software, Ltd. 201225.12.11
Webdriver FW Design
5Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Design
6Confidential and propriety Galil Software, Ltd. 201225.12.11
Current FW
7Confidential and propriety Galil Software, Ltd. 201225.12.11
Report
8Confidential and propriety Galil Software, Ltd. 201225.12.11
Mobile Automation Tools Comparison
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.
10Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Architecture
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.
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.
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
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.
15Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium GUI
16Confidential and propriety Galil Software, Ltd. 201225.12.11
Thank You 
Nael Abd Aljawad
Nael Abd Aljawad  Automation Technical Leader

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
  • 3. 3Confidential and propriety Galil Software, Ltd. 201225.12.11 Drivers Relationship
  • 4. 4Confidential and propriety Galil Software, Ltd. 201225.12.11 Webdriver FW Design
  • 5. 5Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Design
  • 6. 6Confidential and propriety Galil Software, Ltd. 201225.12.11 Current FW
  • 7. 7Confidential and propriety Galil Software, Ltd. 201225.12.11 Report
  • 8. 8Confidential and propriety Galil Software, Ltd. 201225.12.11 Mobile Automation Tools Comparison
  • 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.
  • 10. 10Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Architecture
  • 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.
  • 15. 15Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium GUI
  • 16. 16Confidential and propriety Galil Software, Ltd. 201225.12.11 Thank You Nael Abd Aljawad Nael Abd Aljawad Automation Technical Leader

Editor's Notes

  1. 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)
  2. 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.