SlideShare a Scribd company logo
1 of 23
INNERACTIVE
APPIUM TIPS &
INNERACTIVE INTEGRATION
VP R&D
THE BIG
IDEA
Inneractive is a global independent
mobile ad exchange focused on
powering native and video ads
AT A
GLANCE
630M
90EMPLOYEES
UNIQUE USERS
2007FOUNDED
NEW YORK
LONDON
SAN
FRANCISCO
TEL AVIV
BEIJING
70%OF REVENUE
COMES FROM
THE US
AD REQUESTS
PROCESSED
PER MINUTE
70%IN-APP
SUPPLY
5M ANDROID
USERS
66% IPHONE
USERS
34%
5m/min 150 ms
$$$$$
WHAT WE
DO?
GIL SHEPS
AUTOMATION DEVELOPER
2010 - 2011 – QA Engineer at MobileMax
2011 – 2012 - QA Engineer at Tabtale
2012 – 2015 - QA Engineer at Inneractive
2016 – Today – Automation Developer at Inneractive
Proud Dad to Yahav.
 Versatile modularity (cross products)
 Third party platform independency
 Stand-alone tool
 Java support
 Multi-platform
 No installation needed (third-party platform)
WHY?
 Owner
 Platform
 Where
 When
 Limitations
 Phase & Scope
 Budget
GETTING
READY
ALTERNATIVE WE CONSIDERED
Appthwack Appurify Saucelabs Local – Appium Perfecto Mobile Test Droid Device Anywhere
Server X not real time ? V X X
X
V
Client V ? X X V V V
Scripts Engine Cucamber, kalabash ? Appium Any language Appium Appium
GUI-based commands, Java
API, other test framework
including HP UFT, IBM
Rational, Selenium
Real  Virtual
device
Real Real Virtual Cost per device Real Real Real
Notes
Isn't suitable to
server
Inability to
communicate
They have beta
program with real
devices
We'll have to
manage the
server ourself and
we don't want that
Cost per device
no
manual testing
sulotion
Could be another fee per used
devicestime
Links https://appthwack.com/
http://appurify.com
/
https://saucelabs.com
/
http://appium.io/
http://www.perfectom
obile.com/
http://testdroid.com/pricin
g
http://www.keynote.com/solutions/tes
ting/mobile-testing
 Owner - me
 Platform -Maven project using
Java using intellij
 Where - Sauce Labs / Perfecto Mobile
 When – Nightly / version release
 Limitations – Video / Unsupported
iOS elements
OUR
PRACTICE
INNERACTIVE PLATFROM
MAVEN FAILSAFE SPRING INFRA
API
MOBILE
TESTS
 MOAT viewability tracking
 Auto-redirect blocker
 Accurate data extraction
to enable better targeting
 Backward compatibility
with Android/iOS versions
 Access to all relevant ad
serving protocols (video
and rich media)
 Fully customizable native
advertising settings
 STORY video – innovative
in-feed video with
storytelling abilities
HOW APPIUM HELPS TEST
INNERACTIVE PRODUCTS
 Find and click on elements
 UI verification
 Native Event Listener
verification
 API verification
 Image recognition
 Webview verification
 UI verification
 API verification
 Image recognition
 Webview verification
 E2E flow (client-server)
 UI verification
 Webview verification
Mobile
web
 Appium is not enough
 Give identity to all elements
 Don’t use full path
 Use resetApp() after test
 Use one kind of timer
APPIUM
TIPS
https://github.com/appium/appium/releases
https://github.com/appium/java-client
((JavascriptExecutor) driver).executeScript("return document.getElementById(’iaAD').height");
((JavascriptExecutor) driver).executeScript("return document.getElementById(’iaAD'). width");
https://discuss.appium.io/t/is-javascriptexecutor-works-for-appium/3597
VERIFY
WEBVIEW
DIMENSIONS
* don’t forget to switch context
private String fileName = "/storage/emulated/legacy/config.txt";
private String fileNameZero = "/storage/emulated/0/config.txt";
@Override
public String readConfigFile() {
byte[] data;
try {
logger.info("trying to read from " + fileName);
data = appiumDriver.pullFile(fileName);
} catch (Exception e) {
try {
logger.info("trying to read from " + fileNameZero);
data = appiumDriver.pullFile(fileNameZero);
} catch (Exception e1) {
logger.info("trying to read from " + fileNameSuace);
data = appiumDriver.pullFile(fileNameSuace);
}
}
String logs = new String(data);
logger.info(logs);
return logs;
}
PULLFILE()
((IOSDriver) appiumDriver).findElementByIosUIAutomation(asset).click();
((AndroidDriver) appiumDriver).currentActivity().equals(SETTINGNATIVEACTIVITY))
((AndroidDriver) appiumDriver).pressKeyCode(AndroidKeyCode.HOME);
((AndroidDriver) appiumDriver).pressKeyCode(AndroidKeyCode.KEYCODE_BACK);
((AndroidDriver) appiumDriver).pressKeyCode(AndroidKeyCode.KEYCODE_APP_SWITCH);
https://github.com/appium/appium-ios-driver
https://github.com/appium/appium-android-driver
ANDROIDDRIVER &
IOSDRIVER
private void tryToClickOnAssetWithIDOrXpath(String asset, String UIElemnt) {
try {
((IOSDriver) appiumDriver).findElementByIosUIAutomation(asset).click();
} catch (NoSuchElementException e) {
appiumDriver.findElement(By.xpath("//" + UIElemnt + "[@name='" + asset + "'")).click();
}
}
http://testdroid.com/tech/appium-tip-18-how-to-use-xpath-locators-efficiently
FIND ELEMENT BY
XPATH - IOS
appiumDriver.manage().timeouts().setScriptTimeout(long time,TimeUnit unit);
appiumDriver.manage().timeouts(). pageLoadTimeout(long time,TimeUnit unit);
appiumDriver.manage().timeouts().implicitlyWait(long time,TimeUnit unit);
public ClientUtils waitForInternalBrowserToLoaded(Long timoutSec) {
changeToWebView(appiumDriver);
appiumDriver.manage().timeouts().pageLoadTimeout(timoutSec, TimeUnit.SECONDS);
changeToAppView(appiumDriver);
return this;
}
TIMEOUTS
ExpectedConditions.visibilityOfElementLocated
ExpectedConditions.presenceOfElementLocated
ExpectedConditions.urlContains
ExpectedConditions.elementToBeClickable
https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html
WEBDRIVERWAIT +
EXPECTEDCONDITIONS
@Override
public ClientUtils waitForActivity(final String activityName , long timeount) {
logger.info("waitForActivity Activity : " + activityName);
WebDriverWait uiWait = new WebDriverWait(appiumDriver, MINDAPPIUMDRIVERTIMEOUT);
uiWait.until(new Predicate<WebDriver>() {
@Override
public boolean apply(WebDriver input) {
if (((AndroidDriver) appiumDriver).currentActivity().equals(activityName)) {
return true;
}
return false;
}
});
return this;
}
RUNNING TESTS ON PERFECTO MOBILE
THANK YOU
GIL SHEPS
Automation Developer
Gils@inner-active.com
https://www.linkedin.com/in/gil-sheps

More Related Content

What's hot

Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...Perfecto Mobile
 
Achieving 100% mobile test coverage perfecto mobile
Achieving 100% mobile test coverage perfecto mobileAchieving 100% mobile test coverage perfecto mobile
Achieving 100% mobile test coverage perfecto mobilePerfecto Mobile
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & TestingPerfecto by Perforce
 
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOpsKeeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOpsPerfecto by Perforce
 
Maximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategyMaximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategyPerfecto Mobile
 
Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Perfecto Mobile
 
6 tips for choosing the right app testing tool
6 tips for choosing the right app testing tool6 tips for choosing the right app testing tool
6 tips for choosing the right app testing toolheadspin2
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Sauce Labs
 
Test Automation for Mobile Applications: A Practical Guide
Test Automation for Mobile Applications: A Practical GuideTest Automation for Mobile Applications: A Practical Guide
Test Automation for Mobile Applications: A Practical GuideTechWell
 
Beyond Appium: Testing with Espresso & the Real Device Cloud
Beyond Appium: Testing with Espresso & the Real Device CloudBeyond Appium: Testing with Espresso & the Real Device Cloud
Beyond Appium: Testing with Espresso & the Real Device CloudSauce Labs
 
Overcoming Test Automation Obstacles
Overcoming Test Automation ObstaclesOvercoming Test Automation Obstacles
Overcoming Test Automation ObstaclesPerfecto by Perforce
 
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?Zado Technologies
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testingIndicThreads
 
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 SeleniumLizzy Guido (she/her)
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsPerfecto by Perforce
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training QA Masters
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Perfecto Mobile
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile AppsSauce Labs
 

What's hot (20)

Get More out of Appium
Get More out of AppiumGet More out of Appium
Get More out of Appium
 
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
 
Achieving 100% mobile test coverage perfecto mobile
Achieving 100% mobile test coverage perfecto mobileAchieving 100% mobile test coverage perfecto mobile
Achieving 100% mobile test coverage perfecto mobile
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing
 
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOpsKeeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
 
Maximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategyMaximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategy
 
Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...
 
6 tips for choosing the right app testing tool
6 tips for choosing the right app testing tool6 tips for choosing the right app testing tool
6 tips for choosing the right app testing tool
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
 
Test Automation for Mobile Applications: A Practical Guide
Test Automation for Mobile Applications: A Practical GuideTest Automation for Mobile Applications: A Practical Guide
Test Automation for Mobile Applications: A Practical Guide
 
Beyond Appium: Testing with Espresso & the Real Device Cloud
Beyond Appium: Testing with Espresso & the Real Device CloudBeyond Appium: Testing with Espresso & the Real Device Cloud
Beyond Appium: Testing with Espresso & the Real Device Cloud
 
Overcoming Test Automation Obstacles
Overcoming Test Automation ObstaclesOvercoming Test Automation Obstacles
Overcoming Test Automation Obstacles
 
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?
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
 
Appium vs. Appium with Perfecto
Appium vs. Appium with PerfectoAppium vs. Appium with Perfecto
Appium vs. Appium with Perfecto
 
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
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan Lipps
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile Apps
 

Viewers also liked

Kallie Bryant Case Study
Kallie Bryant Case StudyKallie Bryant Case Study
Kallie Bryant Case StudyKallie Bryant
 
Measures of location for grouped data
Measures of location for grouped dataMeasures of location for grouped data
Measures of location for grouped dataJordan Rey Infante
 
Measures of Position for Ungroup Data
Measures of Position for Ungroup DataMeasures of Position for Ungroup Data
Measures of Position for Ungroup Datapatricia rolle
 
Using the PicCollage App for Reading Comprehension
Using the PicCollage App for Reading ComprehensionUsing the PicCollage App for Reading Comprehension
Using the PicCollage App for Reading ComprehensionJennifer Jones
 
Mean, Median, Mode: Measures of Central Tendency
Mean, Median, Mode: Measures of Central Tendency Mean, Median, Mode: Measures of Central Tendency
Mean, Median, Mode: Measures of Central Tendency Jan Nah
 
MATH GRADE 10 LEARNER'S MODULE
MATH GRADE 10 LEARNER'S MODULEMATH GRADE 10 LEARNER'S MODULE
MATH GRADE 10 LEARNER'S MODULEPRINTDESK by Dan
 
Guided Reading: Making the Most of It
Guided Reading: Making the Most of ItGuided Reading: Making the Most of It
Guided Reading: Making the Most of ItJennifer Jones
 

Viewers also liked (10)

Kallie Bryant Case Study
Kallie Bryant Case StudyKallie Bryant Case Study
Kallie Bryant Case Study
 
how to use picmonkey
how to use picmonkeyhow to use picmonkey
how to use picmonkey
 
Measures of location for grouped data
Measures of location for grouped dataMeasures of location for grouped data
Measures of location for grouped data
 
Measures of Position for Ungroup Data
Measures of Position for Ungroup DataMeasures of Position for Ungroup Data
Measures of Position for Ungroup Data
 
Measures of Position
Measures of PositionMeasures of Position
Measures of Position
 
Measures of position
Measures of positionMeasures of position
Measures of position
 
Using the PicCollage App for Reading Comprehension
Using the PicCollage App for Reading ComprehensionUsing the PicCollage App for Reading Comprehension
Using the PicCollage App for Reading Comprehension
 
Mean, Median, Mode: Measures of Central Tendency
Mean, Median, Mode: Measures of Central Tendency Mean, Median, Mode: Measures of Central Tendency
Mean, Median, Mode: Measures of Central Tendency
 
MATH GRADE 10 LEARNER'S MODULE
MATH GRADE 10 LEARNER'S MODULEMATH GRADE 10 LEARNER'S MODULE
MATH GRADE 10 LEARNER'S MODULE
 
Guided Reading: Making the Most of It
Guided Reading: Making the Most of ItGuided Reading: Making the Most of It
Guided Reading: Making the Most of It
 

Similar to Appium tips & Inneractive integration

Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automationSunny Tambi
 
Move as Fast as Your Users with Mobile Test Automation
Move as Fast as Your Users with Mobile Test AutomationMove as Fast as Your Users with Mobile Test Automation
Move as Fast as Your Users with Mobile Test AutomationCA Technologies
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOpsDaniel Oh
 
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
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyTodd Anglin
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestOnur Baskirt
 
How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...
How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...
How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...Yenlo
 
Appurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scaleAppurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scaleJay Srinivasan
 
Shift Left Mobile Application Testing
Shift Left Mobile Application TestingShift Left Mobile Application Testing
Shift Left Mobile Application TestingJosiah Renaudin
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noidaAmit Rawat
 
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 DockerMoataz Nabil
 
Beyond App Development
Beyond App DevelopmentBeyond App Development
Beyond App DevelopmentOsman Celik
 
Neev Hackathon 2013 - Augmented Reality - Remoteless Car
Neev Hackathon 2013 - Augmented Reality - Remoteless CarNeev Hackathon 2013 - Augmented Reality - Remoteless Car
Neev Hackathon 2013 - Augmented Reality - Remoteless CarNeev Technologies
 
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
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation toolsSSGMCE SHEGAON
 

Similar to Appium tips & Inneractive integration (20)

Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
Intro to PhoneGap
Intro to PhoneGapIntro to PhoneGap
Intro to PhoneGap
 
Move as Fast as Your Users with Mobile Test Automation
Move as Fast as Your Users with Mobile Test AutomationMove as Fast as Your Users with Mobile Test Automation
Move as Fast as Your Users with Mobile Test Automation
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
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
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App Strategy
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
 
How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...
How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...
How WSO2 API Manager helps to open the Quby Smart Thermostat and Energy Monit...
 
Appurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scaleAppurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scale
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Shift Left Mobile Application Testing
Shift Left Mobile Application TestingShift Left Mobile Application Testing
Shift Left Mobile Application Testing
 
Getty/IO - Business Presentation 2017
Getty/IO - Business Presentation 2017Getty/IO - Business Presentation 2017
Getty/IO - Business Presentation 2017
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
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
 
Beyond App Development
Beyond App DevelopmentBeyond App Development
Beyond App Development
 
Beyond App Development
Beyond App DevelopmentBeyond App Development
Beyond App Development
 
Neev Hackathon 2013 - Augmented Reality - Remoteless Car
Neev Hackathon 2013 - Augmented Reality - Remoteless CarNeev Hackathon 2013 - Augmented Reality - Remoteless Car
Neev Hackathon 2013 - Augmented Reality - Remoteless Car
 
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
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
(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
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
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
 
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.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
(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...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
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...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
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...
 
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...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Appium tips & Inneractive integration

  • 3. THE BIG IDEA Inneractive is a global independent mobile ad exchange focused on powering native and video ads
  • 4. AT A GLANCE 630M 90EMPLOYEES UNIQUE USERS 2007FOUNDED NEW YORK LONDON SAN FRANCISCO TEL AVIV BEIJING 70%OF REVENUE COMES FROM THE US AD REQUESTS PROCESSED PER MINUTE 70%IN-APP SUPPLY 5M ANDROID USERS 66% IPHONE USERS 34%
  • 6. GIL SHEPS AUTOMATION DEVELOPER 2010 - 2011 – QA Engineer at MobileMax 2011 – 2012 - QA Engineer at Tabtale 2012 – 2015 - QA Engineer at Inneractive 2016 – Today – Automation Developer at Inneractive Proud Dad to Yahav.
  • 7.  Versatile modularity (cross products)  Third party platform independency  Stand-alone tool  Java support  Multi-platform  No installation needed (third-party platform) WHY?
  • 8.  Owner  Platform  Where  When  Limitations  Phase & Scope  Budget GETTING READY
  • 9. ALTERNATIVE WE CONSIDERED Appthwack Appurify Saucelabs Local – Appium Perfecto Mobile Test Droid Device Anywhere Server X not real time ? V X X X V Client V ? X X V V V Scripts Engine Cucamber, kalabash ? Appium Any language Appium Appium GUI-based commands, Java API, other test framework including HP UFT, IBM Rational, Selenium Real Virtual device Real Real Virtual Cost per device Real Real Real Notes Isn't suitable to server Inability to communicate They have beta program with real devices We'll have to manage the server ourself and we don't want that Cost per device no manual testing sulotion Could be another fee per used devicestime Links https://appthwack.com/ http://appurify.com / https://saucelabs.com / http://appium.io/ http://www.perfectom obile.com/ http://testdroid.com/pricin g http://www.keynote.com/solutions/tes ting/mobile-testing
  • 10.  Owner - me  Platform -Maven project using Java using intellij  Where - Sauce Labs / Perfecto Mobile  When – Nightly / version release  Limitations – Video / Unsupported iOS elements OUR PRACTICE
  • 11. INNERACTIVE PLATFROM MAVEN FAILSAFE SPRING INFRA API MOBILE TESTS
  • 12.  MOAT viewability tracking  Auto-redirect blocker  Accurate data extraction to enable better targeting  Backward compatibility with Android/iOS versions  Access to all relevant ad serving protocols (video and rich media)  Fully customizable native advertising settings  STORY video – innovative in-feed video with storytelling abilities
  • 13. HOW APPIUM HELPS TEST INNERACTIVE PRODUCTS  Find and click on elements  UI verification  Native Event Listener verification  API verification  Image recognition  Webview verification  UI verification  API verification  Image recognition  Webview verification  E2E flow (client-server)  UI verification  Webview verification Mobile web
  • 14.  Appium is not enough  Give identity to all elements  Don’t use full path  Use resetApp() after test  Use one kind of timer APPIUM TIPS https://github.com/appium/appium/releases https://github.com/appium/java-client
  • 15. ((JavascriptExecutor) driver).executeScript("return document.getElementById(’iaAD').height"); ((JavascriptExecutor) driver).executeScript("return document.getElementById(’iaAD'). width"); https://discuss.appium.io/t/is-javascriptexecutor-works-for-appium/3597 VERIFY WEBVIEW DIMENSIONS * don’t forget to switch context
  • 16. private String fileName = "/storage/emulated/legacy/config.txt"; private String fileNameZero = "/storage/emulated/0/config.txt"; @Override public String readConfigFile() { byte[] data; try { logger.info("trying to read from " + fileName); data = appiumDriver.pullFile(fileName); } catch (Exception e) { try { logger.info("trying to read from " + fileNameZero); data = appiumDriver.pullFile(fileNameZero); } catch (Exception e1) { logger.info("trying to read from " + fileNameSuace); data = appiumDriver.pullFile(fileNameSuace); } } String logs = new String(data); logger.info(logs); return logs; } PULLFILE()
  • 17. ((IOSDriver) appiumDriver).findElementByIosUIAutomation(asset).click(); ((AndroidDriver) appiumDriver).currentActivity().equals(SETTINGNATIVEACTIVITY)) ((AndroidDriver) appiumDriver).pressKeyCode(AndroidKeyCode.HOME); ((AndroidDriver) appiumDriver).pressKeyCode(AndroidKeyCode.KEYCODE_BACK); ((AndroidDriver) appiumDriver).pressKeyCode(AndroidKeyCode.KEYCODE_APP_SWITCH); https://github.com/appium/appium-ios-driver https://github.com/appium/appium-android-driver ANDROIDDRIVER & IOSDRIVER
  • 18. private void tryToClickOnAssetWithIDOrXpath(String asset, String UIElemnt) { try { ((IOSDriver) appiumDriver).findElementByIosUIAutomation(asset).click(); } catch (NoSuchElementException e) { appiumDriver.findElement(By.xpath("//" + UIElemnt + "[@name='" + asset + "'")).click(); } } http://testdroid.com/tech/appium-tip-18-how-to-use-xpath-locators-efficiently FIND ELEMENT BY XPATH - IOS
  • 19. appiumDriver.manage().timeouts().setScriptTimeout(long time,TimeUnit unit); appiumDriver.manage().timeouts(). pageLoadTimeout(long time,TimeUnit unit); appiumDriver.manage().timeouts().implicitlyWait(long time,TimeUnit unit); public ClientUtils waitForInternalBrowserToLoaded(Long timoutSec) { changeToWebView(appiumDriver); appiumDriver.manage().timeouts().pageLoadTimeout(timoutSec, TimeUnit.SECONDS); changeToAppView(appiumDriver); return this; } TIMEOUTS
  • 20. ExpectedConditions.visibilityOfElementLocated ExpectedConditions.presenceOfElementLocated ExpectedConditions.urlContains ExpectedConditions.elementToBeClickable https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html WEBDRIVERWAIT + EXPECTEDCONDITIONS @Override public ClientUtils waitForActivity(final String activityName , long timeount) { logger.info("waitForActivity Activity : " + activityName); WebDriverWait uiWait = new WebDriverWait(appiumDriver, MINDAPPIUMDRIVERTIMEOUT); uiWait.until(new Predicate<WebDriver>() { @Override public boolean apply(WebDriver input) { if (((AndroidDriver) appiumDriver).currentActivity().equals(activityName)) { return true; } return false; } }); return this; }
  • 21. RUNNING TESTS ON PERFECTO MOBILE
  • 22.
  • 23. THANK YOU GIL SHEPS Automation Developer Gils@inner-active.com https://www.linkedin.com/in/gil-sheps