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

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
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
 
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.
 
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
 
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
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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
 
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
 
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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
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
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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 ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
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 ...
 
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...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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...
 
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
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
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
 
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 🔝✔️✔️
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
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
 

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