SlideShare uma empresa Scribd logo
1 de 19
Appium Troubleshooting
Adi Ben Aroya
Sep 2016
On The Agenda
Appium Installation & Supporting Versions
Appium Server Launching (manually & programmatically)
Parallel Run
Device Vs Emulators
Log Handling
Native & WebApp Tip
Q&A
Install & Run
Challenges
★ Supporting versions & stability
★ Running Appium programmatically
★ Maintaining long stable run
★ Rerun of server (Best Practice)
★ Parallel run on multiple devices
Appium - Supporting versions & stability
High sensitivity to supporting versions.
Appium Server Version Node.js npm Appium Java Client
1.5.3 0.12.13 2.15.1 2.0, 3.41, 4.0.0
Install Steps for 1.5.3
npm uninstall npm -g
brew install npm -g
brew install node
npm install appium@1.5.2
npm update appium@1.5.3
Appium Server – Environment Setup
In Terminal write “Android” and make sure following components installed:
●
Android SDK Tools
●
Android SDK Platform-Tools
●
Android SDK Build-Tools
Environmental Settings:
#JAVA_HOME
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
export PATH="/usr/local/bin:$PATH"
#ANDROID
export ANDROID_HOME="/usr/local/Cellar/android-sdk"
export ANDROID_SDK=$ANDROID_HOME
Appium Server – Run Command & switches
For iOS Run
appium --address 127.0.0.1 --port 4723 --log appiumClientLog.log --session-override
For Android
appium --address 127.0.0.1 --port 4724 --bootstrap 5724 -U 192.168.56.101:5555 --
log appiumDriverLog.log --session-override
appium --address 127.0.0.1 --port 4723 --bootstrap 5723 -U 192.168.56.102:5555 --
log appiumClientLog.log --session-override
Appium - Server Arguments
--address 127.0.0.1
Run Appium server on remote or locally
--port 4723 --bootstrap 5723
Port to listen on & (Android-only) port to use on device to talk to Appium
--log appiumClientLog.log
Also send log output to this file
--session-override
Enables session override (clobbering)
Appium – Server launching programmatically (logic)
Is Appium Active?
Launch Appium Server
Appium Connect
boolean isAppiumActive = isAppiumActive();
if(!isAppiumActive)
RunAppiumServer();
else
Appium.connect();
Appium - Run Server
<< Don't write logs to console (due to slowness & buffer
fill-up)
protected void runAppiumServer() throws ConnectionException, Exception {
try {
StringBuffer runAppiumCommand = new StringBuffer("appium --address " ...
+ " --log appiumClientLog.log --session-override --native-instruments-lib");
if (this instanceof ClientAndroidImpl)
runAppiumCommand.append(" -U " + getTaxiAppium.getUuid());
runAppiumCommand.append(" > /dev/null 2>&1 &");
CliCommand cmd = new CliCommand(runAppiumCommand.toString());
cmd.setTimeout(3000);//default 30sec
cmd.setIgnoreErrors(true);
terminal.handleCliCommand("Run appium server", cmd);
} catch (Exception e) {
report.report("Unable to run Appium - need to stop the run! " + e.getMessage());
throw new SeverFailedToDeployed("failed to run Appium : " + e.getMessage());
}
}
Appium – Disable On screen Logs
--log appiumClientLog.log
Also send log output to this file
runAppiumCommand.append(" > /dev/null 2>&1 &");
How to hide terminal output when executing a command?
Add to your server arguments the following:
appium --address 127.0.0.1 --port 4723 --bootstrap 5723 --log appiumClientLog.log --session-override
> /dev/null 2>&1 &
Run server string will look like:
Don't Forget:
Appium – Parallel Devices Run Android
--port 4723 --bootstrap 5723
--port 4724 --bootstrap 5724
Android Device 1
Android Device 2
Make Sure to use Different Port Id and BootStrap ID for each device.
For Android Add UUID for real device or IP for simulator:
-U 192.168.56.101:5555
For iOS the bootstrap flag can be dropped BUT still maintain deferent Port ID.
Appium - init process takes too long
public DesiredCapabilities setCapabilities() {
...
if (!reset) {
capabilities.setCapability("fullReset", false);
capabilities.setCapability("noReset", true);
}
...
}
Add to capabilities:
In the event that Login (for exmp') shouldn't be tested...
FullReset - Open app with last used screen
NoReset - Do not install app from path if app is already installed.
Appium - Scrolling problem
private void swipeDown() throws Exception {
int screenWidth = Integer.valueOf(appiumDriver.manage().window().getSize().width);
int screenHeight = Integer.valueOf(appiumDriver.manage().window().getSize().height);
appiumDriver.swipe((screenWidth / 2), ((int) (screenHeight * 0.8)), (screenWidth / 2), ((int)
(screenHeight * 0.2)), 2000);
}
Swipe What?
public void swipeByElement(GetTaxiButton gettaxiBtn,boolean left) throws Exception {
int ScreenY = findElementYOnScreen(gettaxiBtn);//"+orderTaxiForm.getLine().getName()+"
if (left)
appiumDriver.swipe(Integer.valueOf((int) (appiumDriver.manage().window().getSize().width *
0.2)),ScreenY,Integer.valueOf((int) (appiumDriver.manage().window().getSize().width
*0.8)),ScreenY,2000);
else
appiumDriver.swipe(Integer.valueOf((int) (appiumDriver.manage().window().getSize().width
*0.8)),ScreenY,Integer.valueOf((int) (appiumDriver.manage().window().getSize().width *
0.2)),ScreenY,2000);
}
Speed -> Not to slow not to fast (2000 Good balance)
By screen size for full scroll all the way.
Appium – Selenium Trick
// AbstractPage - passing to it the WebDriver
appiumPageImpl= new AppiumDriverPageImpl(driver)
appiumDriver = appium.connect();
WebDriver driver = appiumDriver;
Appium - Web Driver
Page Impl class
The Implementor for IOS
platform - Appium
•
Example of using the obj “appiumPageImpl” to click on btn using selenium Api
• The Method iphoneButtons.get() transform the the getTaxiButton into our the WebLocatore Object
appiumPageImpl.clickOnButton.
(iphoneButtons.get(getTaxiButton.
name()));
Inside AbstractPage Class
The Implementor for IOS
platform - Appium
•
Example of using the obj
“appiumPageImpl” to click on
Mouse using Events selenium Api
appiumPageImpl.selectAutoCompleteOptionWithMouse(iphoneButtons.get(GetTaxiButtonOK.name()));
● QA Testers
● Automation developers
● Architect
● Fullstack Web Developer
● iOS / Android
● Product Manager
● Product Analyst
● BI
● DevOps
● Big Data
● UX/UI designers
WE ARE
HIRING
Thanks!

Mais conteúdo relacionado

Mais procurados

Appium basics
Appium basicsAppium basics
Appium basicsSyam Sasi
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowSauce Labs
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introductionsnevesbarros
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With RobotframeworkSyam Sasi
 
Selenium, Appium, and Robots!
Selenium, Appium, and Robots!Selenium, Appium, and Robots!
Selenium, Appium, and Robots!hugs
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appiumPratik Patel
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with AppiumManoj Kumar Kumar
 
Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding documentAkshay Pillay
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToGlobalLogic Ukraine
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
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 itSrinivasan Sekar
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Sauce Labs
 
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 & AppiumSauce Labs
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarBitbar
 

Mais procurados (20)

Appium solution
Appium solutionAppium solution
Appium solution
 
Appium & Jenkins
Appium & JenkinsAppium & Jenkins
Appium & Jenkins
 
20150319 testotipsio
20150319 testotipsio20150319 testotipsio
20150319 testotipsio
 
Appium basics
Appium basicsAppium basics
Appium basics
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to Now
 
Appium
AppiumAppium
Appium
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introduction
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
 
Selenium, Appium, and Robots!
Selenium, Appium, and Robots!Selenium, Appium, and Robots!
Selenium, Appium, and Robots!
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding document
 
Appium
AppiumAppium
Appium
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How To
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
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
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
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
 
Automated UI Testing Frameworks
Automated UI Testing FrameworksAutomated UI Testing Frameworks
Automated UI Testing Frameworks
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 

Destaque

Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automationSunny Tambi
 
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 CloudBitbar
 
Selenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSelenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSauce Labs
 
TechTalk: Everything You Need to Know about Appium & Selenium
TechTalk: Everything You Need to Know about Appium & SeleniumTechTalk: Everything You Need to Know about Appium & Selenium
TechTalk: Everything You Need to Know about Appium & SeleniumLizzy Guido (she/her)
 
10 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.510 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.5Sauce Labs
 
Introduction to automation testing
Introduction  to automation testingIntroduction  to automation testing
Introduction to automation testingonewomanmore witl
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance Webtech Learning
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework DesignsSauce Labs
 

Destaque (8)

Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
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
 
Selenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSelenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce Labs
 
TechTalk: Everything You Need to Know about Appium & Selenium
TechTalk: Everything You Need to Know about Appium & SeleniumTechTalk: Everything You Need to Know about Appium & Selenium
TechTalk: Everything You Need to Know about Appium & Selenium
 
10 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.510 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.5
 
Introduction to automation testing
Introduction  to automation testingIntroduction  to automation testing
Introduction to automation testing
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 

Semelhante a Appium Troubleshooting Tips Under 40 Characters

How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018Wim Selles
 
Setting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with AppiumSetting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with Appiummobiletestsummit
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...Wim Selles
 
Appium Automation with Kotlin
Appium Automation with KotlinAppium Automation with Kotlin
Appium Automation with KotlinRapidValue
 
Setting UIAutomation free with Appium
Setting UIAutomation free with AppiumSetting UIAutomation free with Appium
Setting UIAutomation free with AppiumDan Cuellar
 
Protractor framework architecture with example
Protractor framework architecture with exampleProtractor framework architecture with example
Protractor framework architecture with exampleshadabgilani
 
Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Codemotion
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesWindows Developer
 
Manage appium dependencies with -appium-home in appium 2.0
Manage appium dependencies with  -appium-home in appium 2.0Manage appium dependencies with  -appium-home in appium 2.0
Manage appium dependencies with -appium-home in appium 2.0Kazuaki Matsuo
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]Nilhcem
 
2011 py con
2011 py con2011 py con
2011 py conEing Ong
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsChris Bailey
 
End to-end testing from rookie to pro
End to-end testing  from rookie to proEnd to-end testing  from rookie to pro
End to-end testing from rookie to proDomenico Gemoli
 
AMS Node Meetup December presentation Phusion Passenger
AMS Node Meetup December presentation Phusion PassengerAMS Node Meetup December presentation Phusion Passenger
AMS Node Meetup December presentation Phusion Passengericemobile
 
The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]Nilhcem
 
Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Yan Cui
 

Semelhante a Appium Troubleshooting Tips Under 40 Characters (20)

How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
 
Setting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with AppiumSetting Apple's UI Automation Free with Appium
Setting Apple's UI Automation Free with Appium
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
 
Appium Automation with Kotlin
Appium Automation with KotlinAppium Automation with Kotlin
Appium Automation with Kotlin
 
Setting UIAutomation free with Appium
Setting UIAutomation free with AppiumSetting UIAutomation free with Appium
Setting UIAutomation free with Appium
 
Protractor framework architecture with example
Protractor framework architecture with exampleProtractor framework architecture with example
Protractor framework architecture with example
 
Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devices
 
Gearman & PHP
Gearman & PHPGearman & PHP
Gearman & PHP
 
Manage appium dependencies with -appium-home in appium 2.0
Manage appium dependencies with  -appium-home in appium 2.0Manage appium dependencies with  -appium-home in appium 2.0
Manage appium dependencies with -appium-home in appium 2.0
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]
 
Nodejs in Production
Nodejs in ProductionNodejs in Production
Nodejs in Production
 
2011 py con
2011 py con2011 py con
2011 py con
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
 
End to-end testing from rookie to pro
End to-end testing  from rookie to proEnd to-end testing  from rookie to pro
End to-end testing from rookie to pro
 
Asp.net tips
Asp.net tipsAsp.net tips
Asp.net tips
 
AMS Node Meetup December presentation Phusion Passenger
AMS Node Meetup December presentation Phusion PassengerAMS Node Meetup December presentation Phusion Passenger
AMS Node Meetup December presentation Phusion Passenger
 
The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]
 
Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)
 

Último

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Último (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Appium Troubleshooting Tips Under 40 Characters

  • 2. On The Agenda Appium Installation & Supporting Versions Appium Server Launching (manually & programmatically) Parallel Run Device Vs Emulators Log Handling Native & WebApp Tip Q&A
  • 3. Install & Run Challenges ★ Supporting versions & stability ★ Running Appium programmatically ★ Maintaining long stable run ★ Rerun of server (Best Practice) ★ Parallel run on multiple devices
  • 4. Appium - Supporting versions & stability High sensitivity to supporting versions. Appium Server Version Node.js npm Appium Java Client 1.5.3 0.12.13 2.15.1 2.0, 3.41, 4.0.0 Install Steps for 1.5.3 npm uninstall npm -g brew install npm -g brew install node npm install appium@1.5.2 npm update appium@1.5.3
  • 5. Appium Server – Environment Setup In Terminal write “Android” and make sure following components installed: ● Android SDK Tools ● Android SDK Platform-Tools ● Android SDK Build-Tools Environmental Settings: #JAVA_HOME export JAVA_HOME=`/usr/libexec/java_home -v 1.7` export PATH="/usr/local/bin:$PATH" #ANDROID export ANDROID_HOME="/usr/local/Cellar/android-sdk" export ANDROID_SDK=$ANDROID_HOME
  • 6. Appium Server – Run Command & switches For iOS Run appium --address 127.0.0.1 --port 4723 --log appiumClientLog.log --session-override For Android appium --address 127.0.0.1 --port 4724 --bootstrap 5724 -U 192.168.56.101:5555 -- log appiumDriverLog.log --session-override appium --address 127.0.0.1 --port 4723 --bootstrap 5723 -U 192.168.56.102:5555 -- log appiumClientLog.log --session-override
  • 7. Appium - Server Arguments --address 127.0.0.1 Run Appium server on remote or locally --port 4723 --bootstrap 5723 Port to listen on & (Android-only) port to use on device to talk to Appium --log appiumClientLog.log Also send log output to this file --session-override Enables session override (clobbering)
  • 8. Appium – Server launching programmatically (logic) Is Appium Active? Launch Appium Server Appium Connect boolean isAppiumActive = isAppiumActive(); if(!isAppiumActive) RunAppiumServer(); else Appium.connect();
  • 9. Appium - Run Server << Don't write logs to console (due to slowness & buffer fill-up) protected void runAppiumServer() throws ConnectionException, Exception { try { StringBuffer runAppiumCommand = new StringBuffer("appium --address " ... + " --log appiumClientLog.log --session-override --native-instruments-lib"); if (this instanceof ClientAndroidImpl) runAppiumCommand.append(" -U " + getTaxiAppium.getUuid()); runAppiumCommand.append(" > /dev/null 2>&1 &"); CliCommand cmd = new CliCommand(runAppiumCommand.toString()); cmd.setTimeout(3000);//default 30sec cmd.setIgnoreErrors(true); terminal.handleCliCommand("Run appium server", cmd); } catch (Exception e) { report.report("Unable to run Appium - need to stop the run! " + e.getMessage()); throw new SeverFailedToDeployed("failed to run Appium : " + e.getMessage()); } }
  • 10. Appium – Disable On screen Logs --log appiumClientLog.log Also send log output to this file runAppiumCommand.append(" > /dev/null 2>&1 &"); How to hide terminal output when executing a command? Add to your server arguments the following: appium --address 127.0.0.1 --port 4723 --bootstrap 5723 --log appiumClientLog.log --session-override > /dev/null 2>&1 & Run server string will look like: Don't Forget:
  • 11. Appium – Parallel Devices Run Android --port 4723 --bootstrap 5723 --port 4724 --bootstrap 5724 Android Device 1 Android Device 2 Make Sure to use Different Port Id and BootStrap ID for each device. For Android Add UUID for real device or IP for simulator: -U 192.168.56.101:5555 For iOS the bootstrap flag can be dropped BUT still maintain deferent Port ID.
  • 12. Appium - init process takes too long public DesiredCapabilities setCapabilities() { ... if (!reset) { capabilities.setCapability("fullReset", false); capabilities.setCapability("noReset", true); } ... } Add to capabilities: In the event that Login (for exmp') shouldn't be tested... FullReset - Open app with last used screen NoReset - Do not install app from path if app is already installed.
  • 13. Appium - Scrolling problem private void swipeDown() throws Exception { int screenWidth = Integer.valueOf(appiumDriver.manage().window().getSize().width); int screenHeight = Integer.valueOf(appiumDriver.manage().window().getSize().height); appiumDriver.swipe((screenWidth / 2), ((int) (screenHeight * 0.8)), (screenWidth / 2), ((int) (screenHeight * 0.2)), 2000); } Swipe What? public void swipeByElement(GetTaxiButton gettaxiBtn,boolean left) throws Exception { int ScreenY = findElementYOnScreen(gettaxiBtn);//"+orderTaxiForm.getLine().getName()+" if (left) appiumDriver.swipe(Integer.valueOf((int) (appiumDriver.manage().window().getSize().width * 0.2)),ScreenY,Integer.valueOf((int) (appiumDriver.manage().window().getSize().width *0.8)),ScreenY,2000); else appiumDriver.swipe(Integer.valueOf((int) (appiumDriver.manage().window().getSize().width *0.8)),ScreenY,Integer.valueOf((int) (appiumDriver.manage().window().getSize().width * 0.2)),ScreenY,2000); } Speed -> Not to slow not to fast (2000 Good balance) By screen size for full scroll all the way.
  • 14. Appium – Selenium Trick // AbstractPage - passing to it the WebDriver appiumPageImpl= new AppiumDriverPageImpl(driver) appiumDriver = appium.connect(); WebDriver driver = appiumDriver;
  • 15. Appium - Web Driver Page Impl class
  • 16. The Implementor for IOS platform - Appium • Example of using the obj “appiumPageImpl” to click on btn using selenium Api • The Method iphoneButtons.get() transform the the getTaxiButton into our the WebLocatore Object appiumPageImpl.clickOnButton. (iphoneButtons.get(getTaxiButton. name())); Inside AbstractPage Class
  • 17. The Implementor for IOS platform - Appium • Example of using the obj “appiumPageImpl” to click on Mouse using Events selenium Api appiumPageImpl.selectAutoCompleteOptionWithMouse(iphoneButtons.get(GetTaxiButtonOK.name()));
  • 18. ● QA Testers ● Automation developers ● Architect ● Fullstack Web Developer ● iOS / Android ● Product Manager ● Product Analyst ● BI ● DevOps ● Big Data ● UX/UI designers WE ARE HIRING

Notas do Editor

  1. Mlti platform - E2E scenario runs via few clients : phone user client , DBX and Web , need to be sync , need to compile and load all apps to devices , should be stable , issues with Wifi , networks - real devices … emulators … The GUI tests might be long due to minimum ride time in the system and cost that we need to pay for stability of the test Location based - runnin on real device or Genymotion Emulator can’t set geo fix - location via adb it’s not stable and the devices reject it , only emulators accept it , but by running fake gps we can set the location on android , and running with the Geny motion api can get that too. Since fake gps is not our app we did haking to the fake gps by encode the app and read its manifest and sign it with our debug key. In ios - appium can be set init’s capabilities to be able to do so