SlideShare uma empresa Scribd logo
1 de 50
Appium Testing API
Lecturer: Nguyễn Ngọc Tú
Members: Dư Nghĩa Hiệp
Phan Ngọc Thiện
Lưu Tấn Nguyên
Lê Thanh Tùng
Reviewer: Member of b4usolution
Agenda
Appium Philosophy and Design
Appium Philosophy
Appium Design
Appium Client-Server Architecture
Appium Session
Appium Desired Capabilities
Appium Server - Appium Client - Appium Desktop
Advantages of the CSA
Setup Android Project
Appium Philosophy and Design
1/25/20183
What is Appium ?
Appium is an open-source tool for
automating native, mobile web, and hybrid
applications on iOS and Android platforms
You shouldn’t have to recompile your app or
modify it in any way in order to automate it.
1/25/20184
Appium Philosophy
Appium Philosophy
You shouldn’t be locked into a specific language
or framework to write and run your tests.
1/25/20185
A mobile automation framework shouldn’t
reinvent the wheel when it comes to automation
APIs.
1/25/20186
Appium Philosophy
Appium Philosophy
A mobile automation framework should be open
source, in spirit and practice as well as in name!
1/25/20187
Appium Design
How does Appium implement these philosophies into the
architecture ?
• First point : the real work engine of Appium is actually a
third-party automation framework
• Second point, we encapsulate these third-party
frameworks into a set of APIs
1/25/20188
Appium Client-Server
Architecture
1/25/20189
ServerClient
Device
Send commands
Execute
Commands
Send
results
HTTP Response
Appium Session
1/25/201810
• Automation is always performed in the
context of a session
• Send it by JSON object called “desired
capabilities” with POST method
Appium Desired Capabilities
1/25/201811
• Are a set of keys and values (like a
map/hash) send to the Appium server that
what kind of automation session we are
starting up.
• Example:
– Set platformName by iOS: it is an iOS
session.
– Then, set safariAllowPopups by true: to allow
safari open a windows by javascript
Appium Server
1/25/201812
• Written in NodeJS
• So we can build it from NPM.
Appium Client
1/25/201813
Appium Desktop
1/25/201814
• We don’t need to worry about Node
• Come in handy when writing tests.
• Note that Appium Desktop is not the same
thing as Appium.
• It is a graphical frontend to Appium with
additional tools.
Advantages of the CSA
• Write test code in any language that has a
http client API
1/25/201815
Advantages of the CSA
• Put the server on a different machine than
the one our tests are running on
1/25/201816
Advantages of the CSA
• Write test code and rely on a cloud service to
receive and interpret the commands.
1/25/201817
Compare
Apprium vs
1/25/201818
Robotium: a open source to automate UI
test case
UIAutomator: a UI testing framework suitable for
cross-app functional UI testing across system and
installed apps.
Expresso: provide api to simulate user
interaction
Calabash: execute automated acceptance
tests of mobile apps
Compare
Apprium vs Robotium, UIAutomator,
Expresso, Calabash
1/25/201819
Compare
Apprium vs
Selenium
1/25/201820
Setup
1/25/201821
• Step 1: Download + Install Android
Studio/SDK/Java
• Step 2: Download + Install + Config
Appium Desktop
• Step 3: Configure Environment Variables
• Step 4: Configure ADB
Setup
1/25/201822
• Step 1
Setup
1/25/201823
• Step 2
Setup
1/25/201824
Setup
1/25/201825
Setup
1/25/201826
• We declare json content by:
Setup
1/25/201827
• platformName: Android
• platformVersion: Plug your android device,
then get its version
• deviceName: Your device name
• appPackage: Get it from your
Mainifest.xml
Setup
1/25/201828
• appActivity: It must be an activity you want
to test with. Simply, I pick up the first
activity. (MainActivity is default, but I
changed LoginActivity)
• automationName: In android, just use
UIautomator2
• noReset: Set true
•  Save all.
Setup
1/25/201829
• Step 3: Configure Enviroment variables
• Open file .bash_profile by TextEdit
• Paste this:
Setup
1/25/201830
• ANDROID_HOME: change to your sdk
path, it must be found out in Preferences
Android Studio
Setup
1/25/201831
• JAVA_HOME: Your default java path, but we
must change the version based on your
current version
• Go to Terminal, type: java –version. My
version is 1.8
Setup
1/25/201832
• Step 4: Configure ADB
• In MAC OS, adb in terminal not show
when pluged Android Device into
computer
• Check it by open Terminal, type “adb
devices”, if you see “adb command not
found”. Continue typing:
brew cask install android-platform-tools
Setup
1/25/201833
• Step 4: Configure ADB
• Once finished, check again by typing “adb
devices”. As below is successfully
Setup
1/25/201834
• Click Start Session in Appium to ensure
work perfectly
Setup
1/25/201835
• This help us find out element name, or
using recorder to record all our handles.
• It will generate our action by code, so we
can easier to write testscript.
Setup Android Project
1/25/201836
• In Android Studio, we need to write test
and run its automatically
• So we should download 2 library and
insert it in gradle by two method:
• Method 1: Download and add library
manually
– Selenium Webdrive Jar:
http://docs.seleniumhq.org/download/
Setup Android Project
1/25/201837
– Appium Java client:
https://search.maven.org/#search%7Cga%7C
1%7Cg%3Aio.appium%20a%3Ajava-client
Setup Android Project
1/25/201838
• Copy into Project like this
Setup Android Project
1/25/201839
• Right click, choose Add as Library
Setup Android Project
1/25/201840
• With Selenium Library, extract to get 2 jar
file. Add as library as before
Setup Android Project
1/25/201841
• Now, we continue to add AssertJ and
TestNG in gradle dependencies, then sync
it.
• Method 2: We also can add Selenium &
Java client via this way
Write Test Script
1/25/201842
• Create AppiumTest.java in Test package
Write Test Script
1/25/201843
• First, we declare connection value
• Then add driver and timeout
Write Test Script
1/25/201844
• In this test, we have 3 annotations:
• @BeforeTest: Declare things before test,
such as connection data, wait for View,
Event,…
• @Test: All function having this annotation
mean doing in testing moment
• @AfterTest: After testing, what we will do
next? Quit, or nothing.
Write Test Script
1/25/201845
• From previous demo, I generated login
script. Now I embed it into java code
MobileElement el2 = (MobileElement)
driver.findElementById("restaurant.com.hsu.management:id/tvUsername");
el2.sendKeys("admin");
MobileElement el3 = (MobileElement)
driver.findElementById("restaurant.com.hsu.management:id/tvPassWord");
el3.sendKeys("123456");
MobileElement el4 = (MobileElement)
driver.findElementById("restaurant.com.hsu.management:id/btnLogin");
el4.click();
Write Test Script
1/25/201846
• LoginTestCase: Once I type username and
password correctly, my expected is the
screen moving the control panel screen.
Write Test Script
1/25/201847
Test plan
1/25/201848
Reference
1/25/201849
• Appium http://appium.io/introduction.html
• First Appium test script
http://www.automationtestinghub.com/first-appium-
test-script/
• Kiểm thử tự động ứng dụng trên Android P1
https://viblo.asia/p/su-dung-appium-trong-kiem-
thu-tu-dong-ung-dung-tren-android-p1-
L4x5xQWwKBM
• Kiểm thử tự động ứng dụng trên Android P2
https://viblo.asia/p/su-dung-appium-trong-kiem-
thu-tu-dong-ung-dung-tren-android-p2-
E375zbMR5GW
1/25/201850

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?
 
Appium overview session final
Appium overview session finalAppium overview session final
Appium overview session final
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Mobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumMobile automation testing with selenium and appium
Mobile automation testing with selenium and appium
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Appium
AppiumAppium
Appium
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
[Binh nguyen] Mobile Application Automation Testing iOS and Android
[Binh nguyen] Mobile Application Automation Testing iOS and Android [Binh nguyen] Mobile Application Automation Testing iOS and Android
[Binh nguyen] Mobile Application Automation Testing iOS and Android
 
Everything You Need To Know about Appium and Selenium
Everything You Need To Know about Appium and SeleniumEverything You Need To Know about Appium and Selenium
Everything You Need To Know about Appium and Selenium
 
MonkeyTalk Automation Testing For Android Application
MonkeyTalk Automation Testing For Android ApplicationMonkeyTalk Automation Testing For Android Application
MonkeyTalk Automation Testing For Android Application
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appium
 

Semelhante a Appium testing api

Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"
GoIT
 

Semelhante a Appium testing api (20)

Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers
Building Mobile Apps: A PhoneGap Enterprise Introduction for DevelopersBuilding Mobile Apps: A PhoneGap Enterprise Introduction for Developers
Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 
Building And Executing Test Cases with Appium and Various Test Frameworks.pdf
Building And Executing Test Cases with Appium and Various Test Frameworks.pdfBuilding And Executing Test Cases with Appium and Various Test Frameworks.pdf
Building And Executing Test Cases with Appium and Various Test Frameworks.pdf
 
Dive into Angular, part 5: Experience
Dive into Angular, part 5: ExperienceDive into Angular, part 5: Experience
Dive into Angular, part 5: Experience
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
How to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App TestingHow to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App Testing
 
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"
 
Google App Engine tutorial
Google App Engine tutorialGoogle App Engine tutorial
Google App Engine tutorial
 
mohit anand
 mohit anand mohit anand
mohit anand
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
 
Ashish Baraiya
Ashish BaraiyaAshish Baraiya
Ashish Baraiya
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
 
Android Studio development model and.pptx
Android Studio development model and.pptxAndroid Studio development model and.pptx
Android Studio development model and.pptx
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Automate you Appium test like a pro!
Automate you Appium test like a pro!Automate you Appium test like a pro!
Automate you Appium test like a pro!
 
Appium
AppiumAppium
Appium
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
 

Mais de b4usolution .

Mais de b4usolution . (15)

Agile_Scrum_B4USolution.pptx
Agile_Scrum_B4USolution.pptxAgile_Scrum_B4USolution.pptx
Agile_Scrum_B4USolution.pptx
 
2022_Bài 10_Thiết kế hệ thống thông tin trong logistics_Ths.Lê Thị Bích Hòa.pptx
2022_Bài 10_Thiết kế hệ thống thông tin trong logistics_Ths.Lê Thị Bích Hòa.pptx2022_Bài 10_Thiết kế hệ thống thông tin trong logistics_Ths.Lê Thị Bích Hòa.pptx
2022_Bài 10_Thiết kế hệ thống thông tin trong logistics_Ths.Lê Thị Bích Hòa.pptx
 
2022_Bài 9_Những vấn đề cơ bản về hệ thống thông tin trong logistics_Ths.Lê T...
2022_Bài 9_Những vấn đề cơ bản về hệ thống thông tin trong logistics_Ths.Lê T...2022_Bài 9_Những vấn đề cơ bản về hệ thống thông tin trong logistics_Ths.Lê T...
2022_Bài 9_Những vấn đề cơ bản về hệ thống thông tin trong logistics_Ths.Lê T...
 
2022_Bài 8_Một số ứng dụng TMDT khác và An Ninh TMDT_Ths.Lê Thị Bích Hòa.pptx
2022_Bài 8_Một số ứng dụng TMDT khác và An Ninh TMDT_Ths.Lê Thị Bích Hòa.pptx2022_Bài 8_Một số ứng dụng TMDT khác và An Ninh TMDT_Ths.Lê Thị Bích Hòa.pptx
2022_Bài 8_Một số ứng dụng TMDT khác và An Ninh TMDT_Ths.Lê Thị Bích Hòa.pptx
 
Agile_Scrum_B4USolution.pptx
Agile_Scrum_B4USolution.pptxAgile_Scrum_B4USolution.pptx
Agile_Scrum_B4USolution.pptx
 
B4USolution_Sexy qtest manager and automation tools to apply for full stack t...
B4USolution_Sexy qtest manager and automation tools to apply for full stack t...B4USolution_Sexy qtest manager and automation tools to apply for full stack t...
B4USolution_Sexy qtest manager and automation tools to apply for full stack t...
 
Sexy Using Cucumber - BDD in your project
Sexy Using Cucumber - BDD in your projectSexy Using Cucumber - BDD in your project
Sexy Using Cucumber - BDD in your project
 
B4usolution_AI for automation
B4usolution_AI for automationB4usolution_AI for automation
B4usolution_AI for automation
 
b4usolution_Appium Mobile Automation Testing Made Awesome
b4usolution_AppiumMobile Automation Testing Made Awesomeb4usolution_AppiumMobile Automation Testing Made Awesome
b4usolution_Appium Mobile Automation Testing Made Awesome
 
B4 u solution_writing test cases from user stories and acceptance criteria
B4 u solution_writing test cases from user stories and acceptance criteriaB4 u solution_writing test cases from user stories and acceptance criteria
B4 u solution_writing test cases from user stories and acceptance criteria
 
B4USolution_API-Testing
B4USolution_API-TestingB4USolution_API-Testing
B4USolution_API-Testing
 
B4usolution git git-hub
B4usolution git git-hubB4usolution git git-hub
B4usolution git git-hub
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
 
Select the right automation test tool in agile project
Select the right automation test tool in agile projectSelect the right automation test tool in agile project
Select the right automation test tool in agile project
 
Introduction to blazemeter and jmeter
Introduction to blazemeter and jmeterIntroduction to blazemeter and jmeter
Introduction to blazemeter and jmeter
 

Último

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Appium testing api

Notas do Editor

  1. We meet requirement #1 by using vendor-provided automation frameworks under the hood. That way, we don’t need to compile in any Appium-specific or third-party code or frameworks to your app. This means you’re testing the same app you’re shipping. The vendor-provided frameworks we use are: iOS 9.3+: Apple’s XCTest Android 4.2+: Google’s UiAutomator Android 2.3+: Google’s Instrumentation. (Instrumentation support is provided by bundling a separate project, Selendroid) Windows: Microsoft’s WinAppDriver
  2. We meet requirement #2 by wrapping the vendor-provided frameworks in one API, the WebDriver API. WebDriver (aka “Selenium WebDriver”) specifies a client-server protocol (known as the JSON Wire Protocol). Given this client-server architecture, a client written in any language can be used to send the appropriate HTTP requests to the server. There are already clients written in every popular programming language. This also means that you’re free to use whatever test runner and test framework you want; the client libraries are simply HTTP clients and can be mixed into your code any way you please. In other words, Appium & WebDriver clients are not technically “test frameworks” – they are “automation libraries”. You can manage your test environment any way you like!
  3. We meet requirement #3 in the same way: WebDriver has become the de facto standard for automating web browsers, and is a W3C Working Draft. Why do something totally different for mobile? Instead we have extended the protocol with extra API methods useful for mobile automation.
  4. It should be obvious that requirement #4 is a given – you’re reading this because Appium is open source. – From Appium website
  5. 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.