SlideShare una empresa de Scribd logo
1 de 62
1Confidential and propriety Galil Software, Ltd. 20124-Jan-16
Automation for Mobile Apps - Appium solution
Author:
Nael Abd Aljawad – QA Automation Technical Leader
2Confidential and propriety Galil Software, Ltd. 201225.12.11
Mobile Automation Tools Comparison
3Confidential and propriety Galil Software, Ltd. 201225.12.11
 Appium drives iOS and Android apps using the WebDriver protocol.
 Appium is an open source test automation framework for use with
native, hybrid and mobile web apps.
Appium Solution
4
What is it?
 Native App – A native app is an app which is built for a specific
platform using specific technologies like Xcode for iOS and Java for
Android.
 Hybrid App – A hybrid app is an app which uses native as well as
web technologies to bring best of both worlds.
 Html5 App – Html5 app is not installed on a phone. It runs on a
browser and built using web technologies such that it is fully
optimized for screen it runs on.
5
6
Features Comparison
Feature Native Hybrid HTML5
Performance Fast Controlled Slow
Multi-touch/pinch Yes Yes No
Device Access All Almost all Very few
Secure storage Yes Yes Shared/No
Connectivity Online/Offline Online/Offline Mostly Online
Rollout Slow/painful Slow/painful Fast
Security High Low Low
Best for Games/low content Medium dynamic content High dynamic content
Tools Xcode, Eclipse Phonegap, Worklight Any web based
Distribution Downloaded to device
from AppStore
Hosted on a Web server and
accessed on a Web Browser
Downloaded to device from
AppStore
Integration Supports integration with
device features such as
camera and address book
Doesn’t support integration
with device components
Supports integration with
device features such as
camera and address book
Notifications Yes No Yes
7
Market overview
 Facebook moved away from HTML5 apps
 Twitter uses hybrid app approach
 A lot of ecommerce sites have HTML5 based mobile websites
 LinkedIn also recently moved to native app
8
HTML5 vs. Hybrid vs. Native
9
Appium Philosophy
 Appium was designed to meet mobile automation needs according
to a philosophy outlined by the following four tenets:
1. You shouldn't have to recompile your app or modify it in any way in
order to automate it. you're testing the same app you're shipping
2. You shouldn't be locked into a specific language or framework to write
and run your tests
3. A mobile automation framework shouldn't reinvent the wheel when it
comes to automation APIs. extended the JSON protocol with extra
API methods useful for mobile automation
4. A mobile automation framework should be open source, in spirit and
practice as well as in name
10
What is Appium ?
 Appium is an HTTP server that creates and handles WebDriver
sessions
 Appium starts a “test case” on the device that spawns a server and
listens for proxied commands
 On Android, Appium proxies commands to a UiAutomator test case
running on the device
 On iOS Appium proxies commands to a UIAutomation script running
in Instruments
11Confidential and propriety Galil Software, Ltd. 201225.12.11
Client/Server Architecture
 Receives connections from a client
 Listens for commands
 Executes the commands on a mobile device
 Responds with an HTTP response representing the result of the
command execution
12
Selenium
WebDriver
Script
(C#,Java,Perl,
Python,PHP)
Server written
in node.js
IDE
JSON WIRE
Protocol
via http
13Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Architecture
14Confidential and propriety Galil Software, Ltd. 201225.12.11
Session
Session Object
 Clients initiate a session with a server in ways specific to each
library
 All libraries end up sending a POST /session request to the server,
with a JSON object called the 'desired capabilities' object
 the server will start up the automation session and respond with a
session ID which is used for sending further commands
15Confidential and propriety Galil Software, Ltd. 201225.12.11
JSON
 Desired capabilities tell the Appium server what kind of automation
session we're interested in starting up
 There are various capabilities which can modify the behavior of the
server during automation (e.g. tell Appium that we want an iOS session, rather than an Android one)
Desired Capabilities
16Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium
Server
Appium Server
 Appium is a server written in Node.js.
 It can be built and installed from source or installed directly from
NPM
17Confidential 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.
18Confidential and propriety Galil Software, Ltd. 201225.12.11
 Appium on real iOS devices
 Appium has support for real device testing.
 To get started on a real device, you will need the following:
 An Apple Developer ID and a valid Developer Account with a
configured distribution certificate and provisioning profile.
 An iPad or iPhone. Make sure this has been set up for development
in Xcode. See this article for more information.
 A signed .ipa file of your app, or the source code to build one.
 A Mac with Xcode and the Xcode Command Line Developer Tools.
19
Language Clients
Github Repo and Installation InstructionsLanguage/Framework
https://github.com/appium/ruby_libRuby
https://github.com/appium/python-clientPython
https://github.com/appium/java-clientJava
https://github.com/admc/wdJavaScript (Node.js)
https://github.com/appium/selenium-objective-cObjective C
https://github.com/appium/php-clientPHP
https://github.com/appium/appium-dotnet-driverC# (.NET)
http://github.com/appium/perl-clientPerl
https://github.com/jollychang/robotframework-
appiumlibrary
RobotFramework
20Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium GUI
21Confidential and propriety Galil Software, Ltd. 201225.12.11
Requirements
 IOS
 Mac OSX 10.7
 XCode 4.5
 Command Line Tools
 Android
 Mac OSX 10.7 or Windows 7 or Linux
 Android SDK
 Firefox
 Firefox OS Simulator
22
Supported Platforms
 IOS
 Android
 FirefoxOS
Is it True ?!
23Confidential and propriety Galil Software, Ltd. 201225.12.11
Smile 1
24
IOS
 Versions: 6.0, 6.1, 7.0, 7.1, 8.0, and 8.1
 Devices: iPhone Simulator, iPad Simulator, and real iPhones and
iPads
 Native app support: Yes
 Mobile web support: Yes, via automation of mobile Safari.
 Hybrid support: Yes.
 Support for automating multiple apps in one session: No
 Support for automating multiple devices simultaneously: No
25
Android
 Versions: 2.3 and up
 Devices: Android emulators and real Android devices
 Native app support: Yes
 Mobile web support: Yes
 Hybrid support: Yes
 Support for automating multiple apps in one session: Yes
 Support for automating multiple devices simultaneously: Yes
26
 Appium is a server written in Node.js.
 It can be built and installed from source or installed directly from
NPM
27
SauceLabs
 Automated testing in the cloud for CI.
 Provides the world’s largest cross-browser grid for executing
Selenium & Appium WebDriver tests
28
SauceLabs – Username & Access Key
29
SauceLabs - Setup
public class AppiumDriverTest {
private AppiumDriver driver;
@Parameters({"username", "key", "os", "browser", "browserVersion"})
@BeforeMethod
public void setUp(@Optional("nael_sl") String username,
@Optional("e8ea754d-c8a0-488f-993c-15f583ab2179") String key,
@Optional("mac") String os,
@Optional("iphone") String browser,
@Optional("5.0") String browserVersion,
Method method) throws Exception {
// Choose the browser, version, and platform to test
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName(browser);
capabilities.setCapability("version", browserVersion);
capabilities.setCapability("platform", Platform.valueOf(os));
capabilities.setCapability("name", method.getName());
// Create the connection to Sauce Labs to run the tests
this.driver = new RemoteWebDriver(new URL("http://" + username + ":" + key +
"@ondemand.saucelabs.com:80/wd/hub"),capabilities);
}
@Test
public void webDriver() throws Exception {
// Make the browser get the page and check its title
driver.get("http://www.amazon.com/");
assertEquals("Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more",
driver.getTitle());
}
}
30
AUTOMATED TEST CONFIGURATOR
31
AUTOMATED TEST CONFIGURATOR
32
AUTOMATED TEST CONFIGURATOR
33
AUTOMATED TEST CONFIGURATOR
34
AUTOMATED TEST CONFIGURATOR
35
AUTOMATED TEST CONFIGURATOR
36
AUTOMATED TEST CONFIGURATOR
37
New Locator Strategies
38
Webviews
39
Capabilities
 New capability structure
 - Will be adopted for Selenium 4
 - platformName, platformVersion, deviceName, app
 - platformName, platformVersion, deviceName, browserName
 autoWebview
 (Android) avdLaunchTimeout, avdReadyTimeout
 (Android) unicodeKeyboard
 (iOS) sendKeyStrategy
 - “oneByOne”, “grouped”, “setValue”
40
TouchActions
41
MultiTouchActions
42
Requirements - Java
 JAVA IDE (Eclipse)
 Java JDK
 Maven Plugin for Eclipse
 Selenium WebDriver Dependencies/Appium Java-Client
Dependency (Maven)
 Android SDK
 TestNG/Junit
 Emulator/ Real Device
 Appium Server
 Node.js (If running appium from source)
 Mac OS X 10.7 or higher
 XCode >= 4.6.3
 Apple Developer Tools (iPhone simulator SDK, command line tools)
 Homebrew
43
Configurations
 Environment Variables & Path Settings
 JAVA_HOME
 ANDROID_HOME
 MAVEN_HOME
 Android Platform Version 4.2+ must be installed
44
Test Script Development
 Create a maven project in Eclipse
 Add dependency
<dependency>
<groupId> io.appium </groupId>
<artifactId> java-client </artifactId>
<version> 1.1.0 </version>
</dependency>
45
Test Script Development
public void setUp() throws Exception
{
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "../../../apps/");
File app = new File(appDir, "App_Name.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName","Android");
capabilities.setCapability("browserName", "");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", “package_name ");
capabilities.setCapability("appActivity", ".activity_name");
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
}
46
Smile 2
47
Java JDK
 Download java JDK :
www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
to add new variable and edit the path.
right click on computer - > properties -> Advanced system settings
-> Environment variables
Add new variable :
New : variable name : JAVA_HOME
variable value : C:Program FilesJavajdk1.7.0_79
Edit Path : ;C:Program FilesJavajdk1.7.0_79bin
48
Download Eclipse ( with TestNG & Maven)
 www.eclipse.org
 Add TestNG plugin :
Help -> install new software -> Add ->
Name : TestNG
Location : http://beust.com/eclipse
 Add Maven :
Help -> install new software -> Add ->
Name : Maven
Location : http://download.eclipse.org/technology/m2e/releases
49
ADT Plugin
 ADT Plugin ( Android Developer Tools) :
Help -> install new software -> Add ->
Name : ADT Plugin
Location : https://dl-ssl.google.com/android/eclipse/
50
Android SDK
Android SDK ( Software Developer Kit) :
developer.android.com/sdk/index.html
To add the location of the android sdk folder to eclipse :
Window -> Preferences -> Android
SDK Location : the path of the android-sdks
51
ANDROID_HOME
to add new variable and edit the path.
right click on computer - > properties -> Advanced system settings
-> Environment variables
Add new variable :
New : variable name : ANDROID_HOME
variable value : pathandroid -sdks
Edit Path : ; pathandroid –sdksplatform-tools
Edit Path : ; pathandroid –sdkstools
52
Appium
 Install Appium server :
http://appium.io/downloads.html
 Download Appium and Selenium jars from Maven repositories
Selenium : http://www.seleniumhq.org/download/
Java-client : https://search.maven.org/#search%7Cga%7C1%7Cjava-
client
53
AndroidDriver driver=new AndroidDriver(new
URL("http://127.0.0.1:4723/wd/hub")
,cap );
File app = new File(appDir, “Rounds.apk");
54
Inspect Elements
 Native app :
Android : uiautomatorviewer tool that is located in the
android-sdks/tools.
IOS : Appium Inspector that is located with the appium server.
 Web & Hybrid apps :
Chrome://inspect/#devices
* In hybrid apps should pay attention to switch between drivers from
native to web a vice versa.
55
Scenario on Rounds App
56
Inspectors
 Android UIautomatorviewer / IOS UIautomation - A GUI tool to scan
and analyze the UI components of an Android/IOS application.
57Confidential and propriety Galil Software, Ltd. 201225.12.11
Drivers Relationship
58Confidential and propriety Galil Software, Ltd. 201225.12.11
Web driver FW Design
59Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Design
60Confidential and propriety Galil Software, Ltd. 201225.12.11
Current FW
61Confidential and propriety Galil Software, Ltd. 201225.12.11
Report
62Confidential and propriety Galil Software, Ltd. 201225.12.11
Thank You 
Nael Abd Aljawad – QA Automation Technical Leader

Más contenido relacionado

La actualidad más candente

Mobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptMobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.ppt
QA Programmer
 

La actualidad más candente (20)

Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using Appium
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue Solutions
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with Appium
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing Strategy
 
Mobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptMobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.ppt
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Intro to Visual Test Automation with Applitools Eyes
Intro to Visual Test Automation with Applitools Eyes Intro to Visual Test Automation with Applitools Eyes
Intro to Visual Test Automation with Applitools Eyes
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Mobile testing practices
Mobile testing practicesMobile testing practices
Mobile testing practices
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
An introduction to api testing | David Tzemach
An introduction to api testing | David TzemachAn introduction to api testing | David Tzemach
An introduction to api testing | David Tzemach
 

Destacado

Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
Andrii Dzynia
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made Awesome
Netcetera
 
Robot framework
Robot frameworkRobot framework
Robot framework
boriau
 

Destacado (20)

Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
 
Appium
AppiumAppium
Appium
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Getting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & AppiumGetting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & Appium
 
Cross platform test automation using Appium
Cross platform test automation using AppiumCross platform test automation using Appium
Cross platform test automation using Appium
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made Awesome
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Advanced Appium
Advanced AppiumAdvanced Appium
Advanced Appium
 
Appium solution artizone
Appium solution   artizoneAppium solution   artizone
Appium solution artizone
 
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid CloudTesting Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
 
Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals it
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and selenium
 
Robot framework and selenium2 library
Robot framework and selenium2 libraryRobot framework and selenium2 library
Robot framework and selenium2 library
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 

Similar a Appium solution

(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
NAVER D2
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
Christian Heilmann
 

Similar a Appium solution (20)

Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
appiumpresent-211128171811.pptx projet de presentation
appiumpresent-211128171811.pptx projet de presentationappiumpresent-211128171811.pptx projet de presentation
appiumpresent-211128171811.pptx projet de presentation
 
Appium presentation matific
Appium presentation   matificAppium presentation   matific
Appium presentation matific
 
Appium
AppiumAppium
Appium
 
The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appium
 
Comprehensive List of Open Source QA Tools
Comprehensive List of Open Source QA ToolsComprehensive List of Open Source QA Tools
Comprehensive List of Open Source QA Tools
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Codename one
Codename oneCodename one
Codename one
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
 
Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding document
 
Intro to PhoneGap
Intro to PhoneGapIntro to PhoneGap
Intro to PhoneGap
 
Android CI and Appium
Android CI and AppiumAndroid CI and Appium
Android CI and Appium
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
 
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
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
 

Último

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 

Appium solution

  • 1. 1Confidential and propriety Galil Software, Ltd. 20124-Jan-16 Automation for Mobile Apps - Appium solution Author: Nael Abd Aljawad – QA Automation Technical Leader
  • 2. 2Confidential and propriety Galil Software, Ltd. 201225.12.11 Mobile Automation Tools Comparison
  • 3. 3Confidential and propriety Galil Software, Ltd. 201225.12.11  Appium drives iOS and Android apps using the WebDriver protocol.  Appium is an open source test automation framework for use with native, hybrid and mobile web apps. Appium Solution
  • 4. 4 What is it?  Native App – A native app is an app which is built for a specific platform using specific technologies like Xcode for iOS and Java for Android.  Hybrid App – A hybrid app is an app which uses native as well as web technologies to bring best of both worlds.  Html5 App – Html5 app is not installed on a phone. It runs on a browser and built using web technologies such that it is fully optimized for screen it runs on.
  • 5. 5
  • 6. 6 Features Comparison Feature Native Hybrid HTML5 Performance Fast Controlled Slow Multi-touch/pinch Yes Yes No Device Access All Almost all Very few Secure storage Yes Yes Shared/No Connectivity Online/Offline Online/Offline Mostly Online Rollout Slow/painful Slow/painful Fast Security High Low Low Best for Games/low content Medium dynamic content High dynamic content Tools Xcode, Eclipse Phonegap, Worklight Any web based Distribution Downloaded to device from AppStore Hosted on a Web server and accessed on a Web Browser Downloaded to device from AppStore Integration Supports integration with device features such as camera and address book Doesn’t support integration with device components Supports integration with device features such as camera and address book Notifications Yes No Yes
  • 7. 7 Market overview  Facebook moved away from HTML5 apps  Twitter uses hybrid app approach  A lot of ecommerce sites have HTML5 based mobile websites  LinkedIn also recently moved to native app
  • 8. 8 HTML5 vs. Hybrid vs. Native
  • 9. 9 Appium Philosophy  Appium was designed to meet mobile automation needs according to a philosophy outlined by the following four tenets: 1. You shouldn't have to recompile your app or modify it in any way in order to automate it. you're testing the same app you're shipping 2. You shouldn't be locked into a specific language or framework to write and run your tests 3. A mobile automation framework shouldn't reinvent the wheel when it comes to automation APIs. extended the JSON protocol with extra API methods useful for mobile automation 4. A mobile automation framework should be open source, in spirit and practice as well as in name
  • 10. 10 What is Appium ?  Appium is an HTTP server that creates and handles WebDriver sessions  Appium starts a “test case” on the device that spawns a server and listens for proxied commands  On Android, Appium proxies commands to a UiAutomator test case running on the device  On iOS Appium proxies commands to a UIAutomation script running in Instruments
  • 11. 11Confidential and propriety Galil Software, Ltd. 201225.12.11 Client/Server Architecture  Receives connections from a client  Listens for commands  Executes the commands on a mobile device  Responds with an HTTP response representing the result of the command execution
  • 13. 13Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Architecture
  • 14. 14Confidential and propriety Galil Software, Ltd. 201225.12.11 Session Session Object  Clients initiate a session with a server in ways specific to each library  All libraries end up sending a POST /session request to the server, with a JSON object called the 'desired capabilities' object  the server will start up the automation session and respond with a session ID which is used for sending further commands
  • 15. 15Confidential and propriety Galil Software, Ltd. 201225.12.11 JSON  Desired capabilities tell the Appium server what kind of automation session we're interested in starting up  There are various capabilities which can modify the behavior of the server during automation (e.g. tell Appium that we want an iOS session, rather than an Android one) Desired Capabilities
  • 16. 16Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Server Appium Server  Appium is a server written in Node.js.  It can be built and installed from source or installed directly from NPM
  • 17. 17Confidential 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.
  • 18. 18Confidential and propriety Galil Software, Ltd. 201225.12.11  Appium on real iOS devices  Appium has support for real device testing.  To get started on a real device, you will need the following:  An Apple Developer ID and a valid Developer Account with a configured distribution certificate and provisioning profile.  An iPad or iPhone. Make sure this has been set up for development in Xcode. See this article for more information.  A signed .ipa file of your app, or the source code to build one.  A Mac with Xcode and the Xcode Command Line Developer Tools.
  • 19. 19 Language Clients Github Repo and Installation InstructionsLanguage/Framework https://github.com/appium/ruby_libRuby https://github.com/appium/python-clientPython https://github.com/appium/java-clientJava https://github.com/admc/wdJavaScript (Node.js) https://github.com/appium/selenium-objective-cObjective C https://github.com/appium/php-clientPHP https://github.com/appium/appium-dotnet-driverC# (.NET) http://github.com/appium/perl-clientPerl https://github.com/jollychang/robotframework- appiumlibrary RobotFramework
  • 20. 20Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium GUI
  • 21. 21Confidential and propriety Galil Software, Ltd. 201225.12.11 Requirements  IOS  Mac OSX 10.7  XCode 4.5  Command Line Tools  Android  Mac OSX 10.7 or Windows 7 or Linux  Android SDK  Firefox  Firefox OS Simulator
  • 22. 22 Supported Platforms  IOS  Android  FirefoxOS Is it True ?!
  • 23. 23Confidential and propriety Galil Software, Ltd. 201225.12.11 Smile 1
  • 24. 24 IOS  Versions: 6.0, 6.1, 7.0, 7.1, 8.0, and 8.1  Devices: iPhone Simulator, iPad Simulator, and real iPhones and iPads  Native app support: Yes  Mobile web support: Yes, via automation of mobile Safari.  Hybrid support: Yes.  Support for automating multiple apps in one session: No  Support for automating multiple devices simultaneously: No
  • 25. 25 Android  Versions: 2.3 and up  Devices: Android emulators and real Android devices  Native app support: Yes  Mobile web support: Yes  Hybrid support: Yes  Support for automating multiple apps in one session: Yes  Support for automating multiple devices simultaneously: Yes
  • 26. 26  Appium is a server written in Node.js.  It can be built and installed from source or installed directly from NPM
  • 27. 27 SauceLabs  Automated testing in the cloud for CI.  Provides the world’s largest cross-browser grid for executing Selenium & Appium WebDriver tests
  • 29. 29 SauceLabs - Setup public class AppiumDriverTest { private AppiumDriver driver; @Parameters({"username", "key", "os", "browser", "browserVersion"}) @BeforeMethod public void setUp(@Optional("nael_sl") String username, @Optional("e8ea754d-c8a0-488f-993c-15f583ab2179") String key, @Optional("mac") String os, @Optional("iphone") String browser, @Optional("5.0") String browserVersion, Method method) throws Exception { // Choose the browser, version, and platform to test DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setBrowserName(browser); capabilities.setCapability("version", browserVersion); capabilities.setCapability("platform", Platform.valueOf(os)); capabilities.setCapability("name", method.getName()); // Create the connection to Sauce Labs to run the tests this.driver = new RemoteWebDriver(new URL("http://" + username + ":" + key + "@ondemand.saucelabs.com:80/wd/hub"),capabilities); } @Test public void webDriver() throws Exception { // Make the browser get the page and check its title driver.get("http://www.amazon.com/"); assertEquals("Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more", driver.getTitle()); } }
  • 39. 39 Capabilities  New capability structure  - Will be adopted for Selenium 4  - platformName, platformVersion, deviceName, app  - platformName, platformVersion, deviceName, browserName  autoWebview  (Android) avdLaunchTimeout, avdReadyTimeout  (Android) unicodeKeyboard  (iOS) sendKeyStrategy  - “oneByOne”, “grouped”, “setValue”
  • 42. 42 Requirements - Java  JAVA IDE (Eclipse)  Java JDK  Maven Plugin for Eclipse  Selenium WebDriver Dependencies/Appium Java-Client Dependency (Maven)  Android SDK  TestNG/Junit  Emulator/ Real Device  Appium Server  Node.js (If running appium from source)  Mac OS X 10.7 or higher  XCode >= 4.6.3  Apple Developer Tools (iPhone simulator SDK, command line tools)  Homebrew
  • 43. 43 Configurations  Environment Variables & Path Settings  JAVA_HOME  ANDROID_HOME  MAVEN_HOME  Android Platform Version 4.2+ must be installed
  • 44. 44 Test Script Development  Create a maven project in Eclipse  Add dependency <dependency> <groupId> io.appium </groupId> <artifactId> java-client </artifactId> <version> 1.1.0 </version> </dependency>
  • 45. 45 Test Script Development public void setUp() throws Exception { File classpathRoot = new File(System.getProperty("user.dir")); File appDir = new File(classpathRoot, "../../../apps/"); File app = new File(appDir, "App_Name.apk"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName","Android"); capabilities.setCapability("browserName", ""); capabilities.setCapability("platformVersion", "4.4"); capabilities.setCapability("app", app.getAbsolutePath()); capabilities.setCapability("appPackage", “package_name "); capabilities.setCapability("appActivity", ".activity_name"); driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); }
  • 47. 47 Java JDK  Download java JDK : www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html to add new variable and edit the path. right click on computer - > properties -> Advanced system settings -> Environment variables Add new variable : New : variable name : JAVA_HOME variable value : C:Program FilesJavajdk1.7.0_79 Edit Path : ;C:Program FilesJavajdk1.7.0_79bin
  • 48. 48 Download Eclipse ( with TestNG & Maven)  www.eclipse.org  Add TestNG plugin : Help -> install new software -> Add -> Name : TestNG Location : http://beust.com/eclipse  Add Maven : Help -> install new software -> Add -> Name : Maven Location : http://download.eclipse.org/technology/m2e/releases
  • 49. 49 ADT Plugin  ADT Plugin ( Android Developer Tools) : Help -> install new software -> Add -> Name : ADT Plugin Location : https://dl-ssl.google.com/android/eclipse/
  • 50. 50 Android SDK Android SDK ( Software Developer Kit) : developer.android.com/sdk/index.html To add the location of the android sdk folder to eclipse : Window -> Preferences -> Android SDK Location : the path of the android-sdks
  • 51. 51 ANDROID_HOME to add new variable and edit the path. right click on computer - > properties -> Advanced system settings -> Environment variables Add new variable : New : variable name : ANDROID_HOME variable value : pathandroid -sdks Edit Path : ; pathandroid –sdksplatform-tools Edit Path : ; pathandroid –sdkstools
  • 52. 52 Appium  Install Appium server : http://appium.io/downloads.html  Download Appium and Selenium jars from Maven repositories Selenium : http://www.seleniumhq.org/download/ Java-client : https://search.maven.org/#search%7Cga%7C1%7Cjava- client
  • 54. 54 Inspect Elements  Native app : Android : uiautomatorviewer tool that is located in the android-sdks/tools. IOS : Appium Inspector that is located with the appium server.  Web & Hybrid apps : Chrome://inspect/#devices * In hybrid apps should pay attention to switch between drivers from native to web a vice versa.
  • 56. 56 Inspectors  Android UIautomatorviewer / IOS UIautomation - A GUI tool to scan and analyze the UI components of an Android/IOS application.
  • 57. 57Confidential and propriety Galil Software, Ltd. 201225.12.11 Drivers Relationship
  • 58. 58Confidential and propriety Galil Software, Ltd. 201225.12.11 Web driver FW Design
  • 59. 59Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Design
  • 60. 60Confidential and propriety Galil Software, Ltd. 201225.12.11 Current FW
  • 61. 61Confidential and propriety Galil Software, Ltd. 201225.12.11 Report
  • 62. 62Confidential and propriety Galil Software, Ltd. 201225.12.11 Thank You  Nael Abd Aljawad – QA Automation Technical Leader

Notas del editor

  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. http://appium.io/introduction.html
  3. JavaScript Object Notation (JSON) is used to represent objects with complex data structures. It is used primarily to transfer data between a server and a client on the web. It has very much become an industry standard for various REST web services, playing a strong alternative to XML. A client can send a person’s details to a server in the preceding JSON format, which the server can parse and create an instance of the Person object for use in its execution. Later, the response can be sent back by the server to the client in the JSON format, the data of which the client can use to create an object of a class.
  4. 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 an open source, cross-platform runtime environment for server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows, Linux, FreeBSD, NonStop, IBM AIX,IBM System z and IBM i. Its work is hosted and supported by the Node.js Foundation,[3] a Collaborative Project at Linux Foundation.
  5. http://appium.readthedocs.org/en/stable/en/about-appium/appium-clients/
  6. http://www.3pillarglobal.com/insights/appium-a- http://testautomation.applitools.com/post/102167915707/free-on-demand-best-step-by-step-appium-webinar cross-browser-mobile-automation-tool
  7. https://docs.saucelabs.com/tutorials/appium/