SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Copyright © SELA Software & Education Labs, Ltd. | 14-18 Baruch Hirsch St., Bnei Brak 51202, Israel | www.selagroup.com
Mobile CI & Appium
Oren Ashkenazy
Mail: orena@sela.co.il
Blog: http://blogs.microsoft.co.il/oren604/
What is Xamarin?
What is Continues Integration?
Getting your APK for google store
Deploy APK (Emulator)
TFS Build Template Integration
Why Appium?
Finding the objects
Appium Project Demo
WebDriver Common Commands
Android Emulators
Agenda
70%-90% Shared Code
Xamarin Intro
Continuous Integration
Create a Private Key (Java SDK):
$ keytool -genkey -v -keystore <filename>.keystore -alias <key-name>
-keyalg RSA -keysize 2048 -validity 10000
Compile The Project:
Msbuild.exe MyAwesomeApp.sln /t:PackageForAndroid
Sign the APK using (Java SDK):
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -
keystore xample.keystore MyAwesomeApp.apk publishingdoc
Zipalign the APK (Android SDK Build Tools):
zipalign –MyAwesomeApp.apk MyAwesomeApp-Aligned.apk
Store Ready – The Commands
Uninstall Previous Installation:
adb <machineName> uninstall <name of
package/application>
Install New Package:
adb <machineName> install MyAwesomeApp-
Aligned.apk
*adb = Android Debug Bridge
ADB Deploy & Install
TFS Build Template
Web/Native/Hybrid Apps
Selenium Based Framework
Cross Platform (IOS/Android/WP)
Open Source
Easy Setup & Configuration
Why Appium?
Appium Architecture
Web Driver Script
Appium Server
(Node.JS)
Automation commands are sent
via JSON
1
2Appium Sever invoke commands
on devices
3
Appium Server logs the result to
console
4
Client sends back notification to
the server
4.2 +
System Requirements
JAVA SDK
Android SDK
Appium Server
Android Device (Real/Emulator) with Android
4.2+
ADB Interface Drivers
Find Android Objects
UIAutomation Viewer (Under Android SDK
Tools)
Scans UI objects
Get Xpath hierarchy
Demo
UIAutomationViewer
Setting The Test Project
Required Packages:
MS Unit Test or Nunit
Appium WebDriver
Selenium WebDriver
Demo
Hello Appium
Test Setup – here we’ll setup the application
and driver variables
[TestInitialize]
public void TestInit()
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("device", "Android");
capabilities.SetCapability(CapabilityType.Platform, "Windows");
capabilities.SetCapability("deviceName", "H30-U10");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("platformVersion", "5.02");
capabilities.SetCapability("appPackage", "com.appName");
capabilities.SetCapability("appActivity", "com.appName.Main");
driver = new AndroidDriver(new Uri("http://127.0.0.1:4723/wd/hub"),
capabilities, TimeSpan.FromSeconds(180));
}
TestInitialize
Test Setup – here we’ll setup the application
and driver variables
[TestInitialize]
public void TestInit()
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("device", "Android");
capabilities.SetCapability(CapabilityType.Platform, "Windows");
capabilities.SetCapability("deviceName", "H30-U10");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("platformVersion", "5.02");
capabilities.SetCapability("appPackage", "com.appName");
// capabilities.SetCapability("appActivity", "com.appName.Main");
capabilities.SetCapability("app", @“C:Appscom.mobile.AppName-Signed.apk");
driver = new AndroidDriver(new Uri("http://127.0.0.1:4723/wd/hub"),
capabilities, TimeSpan.FromSeconds(180));
}
TestInitialize – app install
var tabs = driver.FindElements(By.Id("com.whatsapp:id/tab"));
foreach (var tab in tabs)
{
if (tab.Text == "CHATS")
{
tab.Click();
}
}
driver.FindElement(By.Id("com.whatsapp:id/menuitem_new_conversation")).Click();
var contacts = driver.FindElements(By.Id("com.whatsapp:id/contactpicker_row_name"));
driver.FindElement(By.Id("android:id/search_src_text")).SendKeys(“Contact");
driver.FindElement(By.Id("com.whatsapp:id/contactpicker_row_content")).Click();
driver.FindElement(By.Id("com.whatsapp:id/entry")).SendKeys("Hello");
driver.FindElement(By.Id("com.whatsapp:id/send")).Click();
TestMethod
WebDriver Basic Methods
Actions
Clear();
Click();
FindElement(string);
Array/List FindElements(string,string…);
SendKeys(string);
Submit();
Explore
GetAttribute();
GetCSSValue();
Enable();
Selected();
Size();
Text();
The need for speed…
We need fast emulators!!
AVD Configuration
Android Emulators
Questions

Weitere ähnliche Inhalte

Was ist angesagt?

Loopback presentation by tineco
Loopback presentation by tinecoLoopback presentation by tineco
Loopback presentation by tinecoStéphane Guilly
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToGlobalLogic Ukraine
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In ActionHazem Saleh
 
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
 
Google Cloud Endpointsによる API構築
Google Cloud Endpointsによる API構築Google Cloud Endpointsによる API構築
Google Cloud Endpointsによる API構築Keiji Ariyama
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache CordovaHazem Saleh
 
Android Automation Testing with Selendroid
Android Automation Testing with SelendroidAndroid Automation Testing with Selendroid
Android Automation Testing with SelendroidVikas Thange
 
Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsSylwester Madej
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Sittiphol Phanvilai
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Sauce Labs
 
Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using AppiumSaroj Singh
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itSrinivasan Sekar
 
Internet of things the salesforce lego machine cloud
Internet of things   the salesforce lego machine cloudInternet of things   the salesforce lego machine cloud
Internet of things the salesforce lego machine cloudandyinthecloud
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
 
AWSSummitDevSecOpsCodeContestReport
AWSSummitDevSecOpsCodeContestReportAWSSummitDevSecOpsCodeContestReport
AWSSummitDevSecOpsCodeContestReportdaisuke awaji
 

Was ist angesagt? (20)

Loopback presentation by tineco
Loopback presentation by tinecoLoopback presentation by tineco
Loopback presentation by tineco
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How To
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
 
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
 
Google Cloud Endpointsによる API構築
Google Cloud Endpointsによる API構築Google Cloud Endpointsによる API構築
Google Cloud Endpointsによる API構築
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova
 
Automated UI Testing Frameworks
Automated UI Testing FrameworksAutomated UI Testing Frameworks
Automated UI Testing Frameworks
 
Android Automation Testing with Selendroid
Android Automation Testing with SelendroidAndroid Automation Testing with Selendroid
Android Automation Testing with Selendroid
 
Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and Jenkins
 
BCS Selenium Workshop
BCS Selenium WorkshopBCS Selenium Workshop
BCS Selenium Workshop
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using Appium
 
Ng2 cli
Ng2 cliNg2 cli
Ng2 cli
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals it
 
Internet of things the salesforce lego machine cloud
Internet of things   the salesforce lego machine cloudInternet of things   the salesforce lego machine cloud
Internet of things the salesforce lego machine cloud
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
 
AWSSummitDevSecOpsCodeContestReport
AWSSummitDevSecOpsCodeContestReportAWSSummitDevSecOpsCodeContestReport
AWSSummitDevSecOpsCodeContestReport
 

Andere mochten auch

A3S Events Profile
A3S Events ProfileA3S Events Profile
A3S Events ProfileNihar G
 
Журнал СЕМЕЙНЫЙ СОВЕТНИК
Журнал СЕМЕЙНЫЙ СОВЕТНИКЖурнал СЕМЕЙНЫЙ СОВЕТНИК
Журнал СЕМЕЙНЫЙ СОВЕТНИКOksana Kabaeva
 
Dream flower – flats in cochin
Dream flower – flats in cochinDream flower – flats in cochin
Dream flower – flats in cochincyril153
 
Сертификат о профилактических прививках Москва 2015
Сертификат о профилактических прививках Москва 2015Сертификат о профилактических прививках Москва 2015
Сертификат о профилактических прививках Москва 2015Oksana Kabaeva
 
Session 6 - Multi Generational Workforce
Session 6 - Multi Generational WorkforceSession 6 - Multi Generational Workforce
Session 6 - Multi Generational WorkforceHr NETWORK Magazine
 
Données communautaires
Données communautairesDonnées communautaires
Données communautairesFAO
 
Manual suturas 1de4
Manual suturas 1de4Manual suturas 1de4
Manual suturas 1de4Erika Gh
 
Transient response analysis
Transient response analysisTransient response analysis
Transient response analysisasari_dear
 
MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...
MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...
MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...IAIN SEKH NURJATI CIREBON
 

Andere mochten auch (13)

A3S Events Profile
A3S Events ProfileA3S Events Profile
A3S Events Profile
 
Журнал СЕМЕЙНЫЙ СОВЕТНИК
Журнал СЕМЕЙНЫЙ СОВЕТНИКЖурнал СЕМЕЙНЫЙ СОВЕТНИК
Журнал СЕМЕЙНЫЙ СОВЕТНИК
 
[2008 2] final 2 [a]
[2008 2] final 2 [a][2008 2] final 2 [a]
[2008 2] final 2 [a]
 
Dream flower – flats in cochin
Dream flower – flats in cochinDream flower – flats in cochin
Dream flower – flats in cochin
 
Сертификат о профилактических прививках Москва 2015
Сертификат о профилактических прививках Москва 2015Сертификат о профилактических прививках Москва 2015
Сертификат о профилактических прививках Москва 2015
 
Session 6 - Multi Generational Workforce
Session 6 - Multi Generational WorkforceSession 6 - Multi Generational Workforce
Session 6 - Multi Generational Workforce
 
MPEF_Microscopy
MPEF_MicroscopyMPEF_Microscopy
MPEF_Microscopy
 
Données communautaires
Données communautairesDonnées communautaires
Données communautaires
 
Manual suturas 1de4
Manual suturas 1de4Manual suturas 1de4
Manual suturas 1de4
 
Empresas que Sobresalen
Empresas que SobresalenEmpresas que Sobresalen
Empresas que Sobresalen
 
Transient response analysis
Transient response analysisTransient response analysis
Transient response analysis
 
MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...
MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...
MODEL PEMBELAJARAN PENANAMAN NILAI-NILAI PENDIDIKAN KI HADJAR DEWANTARA(Studi...
 
Coloring Corner Guidelines - UPDATED!
Coloring Corner Guidelines - UPDATED!Coloring Corner Guidelines - UPDATED!
Coloring Corner Guidelines - UPDATED!
 

Ähnlich wie Android CI and Appium

Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
 
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QAFest
 
Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding documentAkshay Pillay
 
Appium overview session final
Appium overview session finalAppium overview session final
Appium overview session finalAbhishek Yadav
 
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der CloudMobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der CloudRudolf Grötz
 
selenium-2-mobile-web-testing
selenium-2-mobile-web-testingselenium-2-mobile-web-testing
selenium-2-mobile-web-testinghugs
 
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsSauce Labs
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with AppiumLuke Maung
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonRobert Nyman
 
Appium basics
Appium basicsAppium basics
Appium basicsSyam Sasi
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMasud Parvez
 
Telerik AppBuilder Presentation for TelerikNEXT Conference
Telerik AppBuilder Presentation for TelerikNEXT ConferenceTelerik AppBuilder Presentation for TelerikNEXT Conference
Telerik AppBuilder Presentation for TelerikNEXT ConferenceJen Looper
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In ActionHazem Saleh
 

Ähnlich wie Android CI and Appium (20)

Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
 
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
 
Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding document
 
Appium
AppiumAppium
Appium
 
Appium solution artizone
Appium solution   artizoneAppium solution   artizone
Appium solution artizone
 
Appium overview session final
Appium overview session finalAppium overview session final
Appium overview session final
 
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der CloudMobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
 
selenium-2-mobile-web-testing
selenium-2-mobile-web-testingselenium-2-mobile-web-testing
selenium-2-mobile-web-testing
 
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason Huggins
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
 
Appium basics
Appium basicsAppium basics
Appium basics
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation Test
 
Telerik AppBuilder Presentation for TelerikNEXT Conference
Telerik AppBuilder Presentation for TelerikNEXT ConferenceTelerik AppBuilder Presentation for TelerikNEXT Conference
Telerik AppBuilder Presentation for TelerikNEXT Conference
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action
 

Kürzlich hochgeladen

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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
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
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
(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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
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
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Kürzlich hochgeladen (20)

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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
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 🔝✔️✔️
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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...
 
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 ☂️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
(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...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Android CI and Appium

  • 1. Copyright © SELA Software & Education Labs, Ltd. | 14-18 Baruch Hirsch St., Bnei Brak 51202, Israel | www.selagroup.com Mobile CI & Appium Oren Ashkenazy Mail: orena@sela.co.il Blog: http://blogs.microsoft.co.il/oren604/
  • 2. What is Xamarin? What is Continues Integration? Getting your APK for google store Deploy APK (Emulator) TFS Build Template Integration Why Appium? Finding the objects Appium Project Demo WebDriver Common Commands Android Emulators Agenda
  • 5. Create a Private Key (Java SDK): $ keytool -genkey -v -keystore <filename>.keystore -alias <key-name> -keyalg RSA -keysize 2048 -validity 10000 Compile The Project: Msbuild.exe MyAwesomeApp.sln /t:PackageForAndroid Sign the APK using (Java SDK): $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 - keystore xample.keystore MyAwesomeApp.apk publishingdoc Zipalign the APK (Android SDK Build Tools): zipalign –MyAwesomeApp.apk MyAwesomeApp-Aligned.apk Store Ready – The Commands
  • 6. Uninstall Previous Installation: adb <machineName> uninstall <name of package/application> Install New Package: adb <machineName> install MyAwesomeApp- Aligned.apk *adb = Android Debug Bridge ADB Deploy & Install
  • 8. Web/Native/Hybrid Apps Selenium Based Framework Cross Platform (IOS/Android/WP) Open Source Easy Setup & Configuration Why Appium?
  • 9. Appium Architecture Web Driver Script Appium Server (Node.JS) Automation commands are sent via JSON 1 2Appium Sever invoke commands on devices 3 Appium Server logs the result to console 4 Client sends back notification to the server 4.2 +
  • 10. System Requirements JAVA SDK Android SDK Appium Server Android Device (Real/Emulator) with Android 4.2+ ADB Interface Drivers
  • 11. Find Android Objects UIAutomation Viewer (Under Android SDK Tools) Scans UI objects Get Xpath hierarchy
  • 13. Setting The Test Project Required Packages: MS Unit Test or Nunit Appium WebDriver Selenium WebDriver
  • 15. Test Setup – here we’ll setup the application and driver variables [TestInitialize] public void TestInit() { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.SetCapability("device", "Android"); capabilities.SetCapability(CapabilityType.Platform, "Windows"); capabilities.SetCapability("deviceName", "H30-U10"); capabilities.SetCapability("platformName", "Android"); capabilities.SetCapability("platformVersion", "5.02"); capabilities.SetCapability("appPackage", "com.appName"); capabilities.SetCapability("appActivity", "com.appName.Main"); driver = new AndroidDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180)); } TestInitialize
  • 16. Test Setup – here we’ll setup the application and driver variables [TestInitialize] public void TestInit() { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.SetCapability("device", "Android"); capabilities.SetCapability(CapabilityType.Platform, "Windows"); capabilities.SetCapability("deviceName", "H30-U10"); capabilities.SetCapability("platformName", "Android"); capabilities.SetCapability("platformVersion", "5.02"); capabilities.SetCapability("appPackage", "com.appName"); // capabilities.SetCapability("appActivity", "com.appName.Main"); capabilities.SetCapability("app", @“C:Appscom.mobile.AppName-Signed.apk"); driver = new AndroidDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180)); } TestInitialize – app install
  • 17. var tabs = driver.FindElements(By.Id("com.whatsapp:id/tab")); foreach (var tab in tabs) { if (tab.Text == "CHATS") { tab.Click(); } } driver.FindElement(By.Id("com.whatsapp:id/menuitem_new_conversation")).Click(); var contacts = driver.FindElements(By.Id("com.whatsapp:id/contactpicker_row_name")); driver.FindElement(By.Id("android:id/search_src_text")).SendKeys(“Contact"); driver.FindElement(By.Id("com.whatsapp:id/contactpicker_row_content")).Click(); driver.FindElement(By.Id("com.whatsapp:id/entry")).SendKeys("Hello"); driver.FindElement(By.Id("com.whatsapp:id/send")).Click(); TestMethod
  • 18. WebDriver Basic Methods Actions Clear(); Click(); FindElement(string); Array/List FindElements(string,string…); SendKeys(string); Submit(); Explore GetAttribute(); GetCSSValue(); Enable(); Selected(); Size(); Text();
  • 19. The need for speed… We need fast emulators!!

Hinweis der Redaktion

  1. Xamarin is a cross platform development tool that allows a .NET developer to develop apps that can target multiple mobile platforms. 70-90% Shared Code
  2. Continuous Integration is a software engineering practice in which an automated build compiles and optionally tests an app when code is added or changed by developers in the project's version control repository.  התהליך שאני הולך להראות לכם היום, לא מחייב אותכם לקפוץ למים להתחיל לשנות מטודולגיות. תתחילו להפעיל בילד שעובד בלילה, תוסיפו טסטים. תעבו את התהליך ואז תראו אם יש צורך ואתם בשלים.
  3. Create a Private Key – This step needs to be performed only once. A private key is necessary to digitally sign the APK. After the private key has been prepared, this step can be skipped for future release builds. Sign the APK – This step involves signing the APK with the private key that was created in the previous step. Zipalign the APK – Zipalign is an optimization process that is performed on an application. It enables Android to interact more efficiently with the APK at runtime. Xamarin.Android conducts a check at runtime, and will not allow the application to run if the APK has not been zipaligned.
  4. The Android Debug Bridge (adb) provides a Unix shell that you can use to run a variety of commands on an emulator or connected device. The command binaries are stored in the file system of the emulator or device
  5. Appium is an open source test automation tool for mobile applications. It allows you to test all the three types of mobile applications: native, hybrid and mobile web. It also allows you to run the automated tests on actual devices, emulators and simulators. Client/Server Architecture Appium is at its heart a webserver that exposes a REST API. It receives connections from a client, listens for commands, executes those commands on a mobile device, and responds with an HTTP response representing the result of the command execution. The fact that we have a client/server architecture opens up a lot of possibilities: we can write our test code in any language that has a http client API, but it is easier to use one of the Appium client libraries. We can put the server on a different machine than our tests are running on. We can write test code and rely on a cloud service like Sauce Labs to receive and interpret the commands.
  6. For every application you want to test, you must know its package name and app activity name. So to know about these attributes, you need to download a little android app on your phone. It is called apkInfo. It will show you the package name and activityname of any android app installed on your phone. Just pass these parameters here and that app will launch on your phone by automation code.
  7. For every application you want to test, you must know its package name and app activity name. So to know about these attributes, you need to download a little android app on your phone. It is called apkInfo. It will show you the package name and activityname of any android app installed on your phone. Just pass these parameters here and that app will launch on your phone by automation code.