SlideShare a Scribd company logo
Gil Sheps
It’s your time to ask
questions
Agenda
Appium server capabilities/ server flags
Real device vs. Emulators
Local server vs. Third party
Test two different apps in the same test
Test native app and browser in one test
Appium server flags
 --session-overide
 --log-level
 --nodeconfig
 --avd
 --show-ios-log
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md
Appium server capabilities
final DesiredCapabilities capabilities = new DesiredCapabilities();
final File appDir = new File(File.separator + "mnt" + File.separator + "InnerActive" +
File.separator + "DeviceConfig" + File.separator);
final File app = new File(appDir, "6.3.0.apk");
capabilities.setCapability("deviceName", "Android");
capabilities.setCapability("deviceType", "phone");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "5.1");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage","com.example.mymeetupexapmple");
capabilities.setCapability("appActivity", ".MainActivity");
capabilities.setCapability("noReset", true);
capabilities.setCapability("fullReset", false);
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
Real device vs. Emulators
Local server vs. Third Party
?
Test hybrid app and browser
@Test
public void testNativeAndBrowser() {
WebDriverWait uiWait = new WebDriverWait(driver, 180);
driver.findElement(By.id("btn")).click();
uiWait.until(ExpectedConditions.presenceOfElementLocated(By.id("txt")));
((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.HOME);
waitFor3Sec();
driver.findElement(By.id("Apps")).click();
driver.findElement(By.id("Browser")).click();
waitFor3Sec();
List<WebElement> elements = driver.findElements(By.className("android.widget.EditText"));
elements.get(0).sendKeys("https://www.meetup.com/Appium-Israel/events/233798589/");
((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.ENTER);
uiWait.until(ExpectedConditions.presenceOfElementLocated(By.id("Download")));
waitFor3Sec();
((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.KEYCODE_APP_SWITCH);
uiWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.TextView[@text='CI
Sample']")));
driver.findElement(By.xpath("//android.widget.TextView[@text='MyMeetupExpample']")).click();
uiWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("txt")));
}
Test two apps
@Test
public void testSecondApp() {
WebDriverWait uiWait = new WebDriverWait(driver, 180);
driver.findElement(By.id("btn")).click();
uiWait.until(ExpectedConditions.presenceOfElementLocated(By.id("txt")));
((AndroidDriver)driver).startActivity("com.mtvn.mtvPrimeAndroid","com.vmn.android.me.MainActivity");
uiWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("com.mtvn.mtvPrimeAndroid:id/menu_sea
rch")));
driver.findElement(By.id("com.mtvn.mtvPrimeAndroid:id/menu_search")).click();
driver.findElement(By.id("com.mtvn.mtvPrimeAndroid:id/search_query")).sendKeys("hello");
waitFor3Sec();
((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.KEYCODE_APP_SWITCH);
uiWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.TextView[@text='CI
Sample']")));
driver.findElement(By.xpath("//android.widget.TextView[@text='MyMeetupExpample']")).click();
uiWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("txt")));
}
Test hybrid app and calculator
@Test
public void calculateTwoNumbers() {
if (driver.findElement(By.id("btn")).isDisplayed()) {
waitFor3Sec();
((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.HOME);
driver.findElement(By.id("Apps")).click();
driver.findElement(By.id("Calculator")).click();
waitFor3Sec();
driver.findElement(By.xpath("//android.widget.Button[@text='3']")).click();
driver.findElement(By.id("plus")).click();
driver.findElement(By.xpath("//android.widget.Button[@text='2']")).click();
driver.findElement(By.id("equals")).click();
waitFor3Sec();
Assert.assertTrue(driver.findElement(By.xpath("//android.widget.EditText[@text='5']")).isDis
played());
}
}
THANK YOU
GIL SHEPS
Automation Developer
Gils@inner-active.com
https://www.linkedin.com/in/gil-sheps

More Related Content

What's hot

Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)
Kazuaki Matsuo
 
Flex automation. tools comparison
Flex automation. tools comparisonFlex automation. tools comparison
Flex automation. tools comparison
Alex
 
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
snevesbarros
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native Apps
Sauce Labs
 
Appium basics
Appium basicsAppium basics
Appium basics
Syam Sasi
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
Atlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
Atlassian
 
Selenium webcrawler
Selenium webcrawlerSelenium webcrawler
Selenium webcrawler
Rabia Khalid
 
Vietnam qa meetup
Vietnam qa meetupVietnam qa meetup
Vietnam qa meetup
Syam Sasi
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
Manoj Kumar Kumar
 
Elefrant [ng-Poznan]
Elefrant [ng-Poznan]Elefrant [ng-Poznan]
Elefrant [ng-Poznan]
Marcos Latorre
 
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn ToànTech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Nexus FrontierTech
 
Elixir Deployment Tools
Elixir Deployment ToolsElixir Deployment Tools
Elixir Deployment Tools
Aaron Renner
 
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Fwdays
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
Carlos de la Guardia
 
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
Domenico Gemoli
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
Pratik Patel
 
The Emergence of Choice in the .NET Ecosystem
The Emergence of Choice in the .NET EcosystemThe Emergence of Choice in the .NET Ecosystem
The Emergence of Choice in the .NET Ecosystem
James Avery
 
Cross-browser testing in the real world
Cross-browser testing in the real worldCross-browser testing in the real world
Cross-browser testing in the real world
Martin Kleppmann
 
Intro to Silex
Intro to SilexIntro to Silex
Intro to Silex
Joey Rivera
 

What's hot (20)

Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)
 
Flex automation. tools comparison
Flex automation. tools comparisonFlex automation. tools comparison
Flex automation. tools comparison
 
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
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native Apps
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Selenium webcrawler
Selenium webcrawlerSelenium webcrawler
Selenium webcrawler
 
Vietnam qa meetup
Vietnam qa meetupVietnam qa meetup
Vietnam qa meetup
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Elefrant [ng-Poznan]
Elefrant [ng-Poznan]Elefrant [ng-Poznan]
Elefrant [ng-Poznan]
 
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn ToànTech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
 
Elixir Deployment Tools
Elixir Deployment ToolsElixir Deployment Tools
Elixir Deployment Tools
 
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
 
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
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
The Emergence of Choice in the .NET Ecosystem
The Emergence of Choice in the .NET EcosystemThe Emergence of Choice in the .NET Ecosystem
The Emergence of Choice in the .NET Ecosystem
 
Cross-browser testing in the real world
Cross-browser testing in the real worldCross-browser testing in the real world
Cross-browser testing in the real world
 
Intro to Silex
Intro to SilexIntro to Silex
Intro to Silex
 

Viewers also liked

Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...
Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...
Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...
Julia Kiseleva
 
Comercio exterior 1
Comercio exterior 1Comercio exterior 1
Comercio exterior 1
Max Viveros Barahona
 
The Intersection of Social Media and Direct
The Intersection of Social Media and Direct The Intersection of Social Media and Direct
The Intersection of Social Media and Direct
Acxiom Corporation
 
Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...
Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...
Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...
Patrick Hünemohr
 
Optimiza tu canal de youtube
Optimiza tu canal de youtubeOptimiza tu canal de youtube
Optimiza tu canal de youtube
Excellere Consultora Educativa - Natalia Gil
 
Collaboration Sites
Collaboration SitesCollaboration Sites
Collaboration Sites
kpivovarnik
 
Lesson1
Lesson1Lesson1
Lesson1
TeresaLSoto
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appium
moizjv
 
Final Year Project (Tesi)_GFRP_Francesco Di Paolo
Final Year Project (Tesi)_GFRP_Francesco Di PaoloFinal Year Project (Tesi)_GFRP_Francesco Di Paolo
Final Year Project (Tesi)_GFRP_Francesco Di Paolo
Francesco Di Paolo
 
Lecture: Modeling intracellular cargo transport by several molecular motors
Lecture: Modeling intracellular cargo transport by several molecular motorsLecture: Modeling intracellular cargo transport by several molecular motors
Lecture: Modeling intracellular cargo transport by several molecular motors
Melanie JI Mueller
 
Executive Resume of the Food Sector Business Profile (2007)
Executive Resume of the Food Sector Business Profile (2007)Executive Resume of the Food Sector Business Profile (2007)
Executive Resume of the Food Sector Business Profile (2007)
CONAPRI
 
Content Marketing
Content MarketingContent Marketing
Content Marketing
Infidirect
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
Building the Next Generation ISAC-- A Blueprint for Success
Building the Next Generation ISAC-- A Blueprint for SuccessBuilding the Next Generation ISAC-- A Blueprint for Success
Building the Next Generation ISAC-- A Blueprint for Success
Booz Allen Hamilton
 
The Enterprise Integrator - C4ISR
The Enterprise Integrator - C4ISRThe Enterprise Integrator - C4ISR
The Enterprise Integrator - C4ISR
Booz Allen Hamilton
 
Frotis y cultivo de secrecion vaginal
Frotis y cultivo de secrecion vaginalFrotis y cultivo de secrecion vaginal
Frotis y cultivo de secrecion vaginal
Laura Bautista
 
Booz Allen Industrial Cybersecurity Threat Briefing
Booz Allen Industrial Cybersecurity Threat BriefingBooz Allen Industrial Cybersecurity Threat Briefing
Booz Allen Industrial Cybersecurity Threat Briefing
Booz Allen Hamilton
 

Viewers also liked (17)

Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...
Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...
Behavioral Dynamics from the SERP’s Perspective: What are Failed SERPs and Ho...
 
Comercio exterior 1
Comercio exterior 1Comercio exterior 1
Comercio exterior 1
 
The Intersection of Social Media and Direct
The Intersection of Social Media and Direct The Intersection of Social Media and Direct
The Intersection of Social Media and Direct
 
Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...
Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...
Google Anforderungen 2016 an die lokale Suche - Patrick Hünemohr im Rahmen de...
 
Optimiza tu canal de youtube
Optimiza tu canal de youtubeOptimiza tu canal de youtube
Optimiza tu canal de youtube
 
Collaboration Sites
Collaboration SitesCollaboration Sites
Collaboration Sites
 
Lesson1
Lesson1Lesson1
Lesson1
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appium
 
Final Year Project (Tesi)_GFRP_Francesco Di Paolo
Final Year Project (Tesi)_GFRP_Francesco Di PaoloFinal Year Project (Tesi)_GFRP_Francesco Di Paolo
Final Year Project (Tesi)_GFRP_Francesco Di Paolo
 
Lecture: Modeling intracellular cargo transport by several molecular motors
Lecture: Modeling intracellular cargo transport by several molecular motorsLecture: Modeling intracellular cargo transport by several molecular motors
Lecture: Modeling intracellular cargo transport by several molecular motors
 
Executive Resume of the Food Sector Business Profile (2007)
Executive Resume of the Food Sector Business Profile (2007)Executive Resume of the Food Sector Business Profile (2007)
Executive Resume of the Food Sector Business Profile (2007)
 
Content Marketing
Content MarketingContent Marketing
Content Marketing
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
Building the Next Generation ISAC-- A Blueprint for Success
Building the Next Generation ISAC-- A Blueprint for SuccessBuilding the Next Generation ISAC-- A Blueprint for Success
Building the Next Generation ISAC-- A Blueprint for Success
 
The Enterprise Integrator - C4ISR
The Enterprise Integrator - C4ISRThe Enterprise Integrator - C4ISR
The Enterprise Integrator - C4ISR
 
Frotis y cultivo de secrecion vaginal
Frotis y cultivo de secrecion vaginalFrotis y cultivo de secrecion vaginal
Frotis y cultivo de secrecion vaginal
 
Booz Allen Industrial Cybersecurity Threat Briefing
Booz Allen Industrial Cybersecurity Threat BriefingBooz Allen Industrial Cybersecurity Threat Briefing
Booz Allen Industrial Cybersecurity Threat Briefing
 

Similar to It’s your time to ask questions

Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
Mindfire Solutions
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
Vivek Krishnakumar
 
Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using Appium
Saroj Singh
 
Appium solution
Appium solutionAppium solution
Appium solution
Nael Abd Eljawad
 
"Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko
"Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko "Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko
"Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko
Fwdays
 
Appium
AppiumAppium
From System Engineer to Gopher
From System Engineer to GopherFrom System Engineer to Gopher
From System Engineer to Gopher
I-Fan Wang
 
Appium
AppiumAppium
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
fpatton
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
Robert Nyman
 
20150319 testotipsio
20150319 testotipsio20150319 testotipsio
20150319 testotipsio
Kazuaki Matsuo
 
Android session-1-sajib
Android session-1-sajibAndroid session-1-sajib
Android session-1-sajib
Hussain Behestee
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
Keshav Kashyap
 
Calabash-iOS
Calabash-iOSCalabash-iOS
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
Null Dubai Humla_Romansh_Yadav_Android_app_pentestingNull Dubai Humla_Romansh_Yadav_Android_app_pentesting
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
Romansh Yadav
 
Calabash-android
Calabash-androidCalabash-android
Calabash-android
Adnan8990
 
The wild wild west of Selenium Capabilities
The wild wild west of Selenium CapabilitiesThe wild wild west of Selenium Capabilities
The wild wild west of Selenium Capabilities
Adi Ofri
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLM
Boaz Ziniman
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
Appium overview
Appium overviewAppium overview
Appium overview
Abhishek Yadav
 

Similar to It’s your time to ask questions (20)

Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
 
Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using Appium
 
Appium solution
Appium solutionAppium solution
Appium solution
 
"Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko
"Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko "Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko
"Modern DevOps & Real Life Applications. 3.0.0-devops+20230318", Igor Fesenko
 
Appium
AppiumAppium
Appium
 
From System Engineer to Gopher
From System Engineer to GopherFrom System Engineer to Gopher
From System Engineer to Gopher
 
Appium
AppiumAppium
Appium
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
 
20150319 testotipsio
20150319 testotipsio20150319 testotipsio
20150319 testotipsio
 
Android session-1-sajib
Android session-1-sajibAndroid session-1-sajib
Android session-1-sajib
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
Calabash-iOS
Calabash-iOSCalabash-iOS
Calabash-iOS
 
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
Null Dubai Humla_Romansh_Yadav_Android_app_pentestingNull Dubai Humla_Romansh_Yadav_Android_app_pentesting
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
 
Calabash-android
Calabash-androidCalabash-android
Calabash-android
 
The wild wild west of Selenium Capabilities
The wild wild west of Selenium CapabilitiesThe wild wild west of Selenium Capabilities
The wild wild west of Selenium Capabilities
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLM
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
Appium overview
Appium overviewAppium overview
Appium overview
 

Recently uploaded

316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 

Recently uploaded (20)

316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 

It’s your time to ask questions

  • 1. Gil Sheps It’s your time to ask questions
  • 2. Agenda Appium server capabilities/ server flags Real device vs. Emulators Local server vs. Third party Test two different apps in the same test Test native app and browser in one test
  • 3. Appium server flags  --session-overide  --log-level  --nodeconfig  --avd  --show-ios-log https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md
  • 4. Appium server capabilities final DesiredCapabilities capabilities = new DesiredCapabilities(); final File appDir = new File(File.separator + "mnt" + File.separator + "InnerActive" + File.separator + "DeviceConfig" + File.separator); final File app = new File(appDir, "6.3.0.apk"); capabilities.setCapability("deviceName", "Android"); capabilities.setCapability("deviceType", "phone"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("platformVersion", "5.1"); capabilities.setCapability("app", app.getAbsolutePath()); capabilities.setCapability("appPackage","com.example.mymeetupexapmple"); capabilities.setCapability("appActivity", ".MainActivity"); capabilities.setCapability("noReset", true); capabilities.setCapability("fullReset", false); https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
  • 5. Real device vs. Emulators Local server vs. Third Party ?
  • 6. Test hybrid app and browser @Test public void testNativeAndBrowser() { WebDriverWait uiWait = new WebDriverWait(driver, 180); driver.findElement(By.id("btn")).click(); uiWait.until(ExpectedConditions.presenceOfElementLocated(By.id("txt"))); ((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.HOME); waitFor3Sec(); driver.findElement(By.id("Apps")).click(); driver.findElement(By.id("Browser")).click(); waitFor3Sec(); List<WebElement> elements = driver.findElements(By.className("android.widget.EditText")); elements.get(0).sendKeys("https://www.meetup.com/Appium-Israel/events/233798589/"); ((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.ENTER); uiWait.until(ExpectedConditions.presenceOfElementLocated(By.id("Download"))); waitFor3Sec(); ((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.KEYCODE_APP_SWITCH); uiWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.TextView[@text='CI Sample']"))); driver.findElement(By.xpath("//android.widget.TextView[@text='MyMeetupExpample']")).click(); uiWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("txt"))); }
  • 7. Test two apps @Test public void testSecondApp() { WebDriverWait uiWait = new WebDriverWait(driver, 180); driver.findElement(By.id("btn")).click(); uiWait.until(ExpectedConditions.presenceOfElementLocated(By.id("txt"))); ((AndroidDriver)driver).startActivity("com.mtvn.mtvPrimeAndroid","com.vmn.android.me.MainActivity"); uiWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("com.mtvn.mtvPrimeAndroid:id/menu_sea rch"))); driver.findElement(By.id("com.mtvn.mtvPrimeAndroid:id/menu_search")).click(); driver.findElement(By.id("com.mtvn.mtvPrimeAndroid:id/search_query")).sendKeys("hello"); waitFor3Sec(); ((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.KEYCODE_APP_SWITCH); uiWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.TextView[@text='CI Sample']"))); driver.findElement(By.xpath("//android.widget.TextView[@text='MyMeetupExpample']")).click(); uiWait.until(ExpectedConditions.visibilityOfElementLocated(By.id("txt"))); }
  • 8. Test hybrid app and calculator @Test public void calculateTwoNumbers() { if (driver.findElement(By.id("btn")).isDisplayed()) { waitFor3Sec(); ((AndroidDriver) driver).pressKeyCode(AndroidKeyCode.HOME); driver.findElement(By.id("Apps")).click(); driver.findElement(By.id("Calculator")).click(); waitFor3Sec(); driver.findElement(By.xpath("//android.widget.Button[@text='3']")).click(); driver.findElement(By.id("plus")).click(); driver.findElement(By.xpath("//android.widget.Button[@text='2']")).click(); driver.findElement(By.id("equals")).click(); waitFor3Sec(); Assert.assertTrue(driver.findElement(By.xpath("//android.widget.EditText[@text='5']")).isDis played()); } }
  • 9.
  • 10.
  • 11. THANK YOU GIL SHEPS Automation Developer Gils@inner-active.com https://www.linkedin.com/in/gil-sheps